32-bit packages for 460.27

It appears as if I currently have a choice of running either CUDA or Steam on my machine, because CUDA 11 requires a version of the driver that is only available from your site, and Steam requires the 32-bit libraries, which you’re not currently hosting, as far as I can see.

nvidia-smi
Fri Jan  1 13:37:24 2021       
+---------------------------------------------------------------------------------+
| NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2     |
+---------------------------------------------------------------------------------+


apt install libnvidia-gl-460:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libnvidia-gl-460:i386 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  libnvidia-common-460

E: Package 'libnvidia-gl-460:i386' has no installation candidate


steam
Running Steam on ubuntu 20.10 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
Can't find 'steam-runtime-check-requirements', continuing anyway
/home/james/.local/share/Steam/ubuntu12_32/steam -nominidumps -nobreakpad
[2021-01-01 13:40:51] Startup - updater built Oct 28 2020 23:34:22
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
SteamUpdateUI: An X Error occurred
X Error of failed request:  BadValue (integer parameter out of range for operation)
^C

Do you have plans to release the 32 bit versions at any time?

The cuda bundled driver doesn’t provide the 32bit compatibility libs and never will. You’ll have to use the normal graphics driver and install just the cuda toolkit:

  • purge anything nvidia/cuda
  • install the driver using the Software&Updates application
  • download the cuda .deb
  • add the repo to your system
  • follow the steps from install instructions on downloadpage but omit the last one
  • i.e don’t install cuda
  • instead, run sudo apt install cuda-toolkit-11-2

Well, i’ve managed to bork something quite impressively then.

I’ve purged everything nvidia/cuda related, rebooted to make sure that i’m using nouveau, and then installed the 455 versions from my distro repos, and now it just doesn’t work at all. Everything’s showing as 455, and modinfo on all of the loaded modules shows 455, but now whenever I run nvidia-settings or nvidia-smi it errors out complaining about a module mismatch and this appears in my dmesg:

[ 369.644663] NVRM: API mismatch: the client has the version 455.38, but
NVRM: this kernel module has the version 460.27.04. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version

I have no idea where it’s still finding 460.27 for, but it’ll show up, i’m sure.

Please try removing anything nvidia again, then use
dpkg -l |grep nvidia
to find stray packages to manually remove.

I have CUDA (installed from the Nvidia repository) and Steam working on driver 465.19.01! The appropriate files can be obtained by using the extract only option provided by the installer e.g. ./NVIDIA-Linux-x86_64-465.19.01.run -x

The i386 library files are in a folder named “32”. This is probably safer than installing libraries not from official sources. The appropriate files seem to be:

/usr/lib32/libEGL*
/usr/lib32/libGLESv*
/usr/lib32/libGLX*
/usr/lib32/libnvidia-egl*
/usr/lib32/libnvidia-gl*
/usr/lib32/libnvidia-tls*

Obviously, the library files have to match the installed driver version. There are some symlinks that should be created:

cd /usr/lib32
sudo ln -s libEGL_nvidia.so.465.19.01 libEGL_nvidia.so.0
sudo ln -s libGLESv1_CM_nvidia.so.465.19.01 libGLESv1_CM_nvidia.so.1
sudo ln -s libGLESv2_nvidia.so.465.19.01 libGLESv2_nvidia.so.2
sudo ln -s libGLX_nvidia.so.465.19.01 libGLX_indirect.so.0
sudo ln -s libGLX_nvidia.so.465.19.01 libGLX_nvidia.so.0

You will probably need to run this for the system to detect the new libraries:

sudo ldconfig