Latest CUDA driver from deb repository breaks steam

I run ubuntu 16.04 and updated to 418.39 and cuda 10.1 today.
Suddenly steam can’t find the 32 bit libGL.

The bug below shows the issue.
https://github.com/ValveSoftware/steam-for-linux/issues/5778

I’d like to upvote this issue on the NVIDIA side. The issue is that the latest CUDA drivers no longer bundle any 32 bit compatibility libraries. This breaks software that requires 32 bit compatibility, such as steam. It would be great if the next CUDA driver could re-include these so that I can have a single Ubuntu machine that runs both CUDA and steam.

That’s not really an issue, you just have to install driver and cuda the right way:

  • add the ubuntu graphics ppa [url]https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa[/url]
  • install the driver from that (sudo apt install nvidia-driver-430)
  • download the cuda .deb
  • add the repo to your system (first three steps from install instructions on download page)
  • don’t install cuda
  • instead, run sudo apt install cuda-toolkit-10-1
2 Likes

Thanks, your solution worked. I removed 418 drivers, installed 430, and installed cuda-toolkit-10-1. Afterward, I found that I still needed to make two symlinks to get Tensorflow working (libcublas and libcudart), but after making those things were OK.

This did not work for me. On 16.04 the 430 drivers fail to boot.

Please run nvidia-bug-report.sh as root and attach the resulting .gz file to your post. Hovering the mouse over an existing post of yours will reveal a paperclip icon.
[url]https://devtalk.nvidia.com/default/topic/1043347/announcements/attaching-files-to-forum-topics-posts/[/url]

@generix

Could you please elaborate on first three steps from install instructions on download page? Which downlaod page?

Cheers

On the cuda download page, of course.:
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal
First three steps:

sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.168-418.67_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update

I just wanted to confirm, thank you.

I installed my nvidia drivers and cuda following TensorFlow’s GPU instructions here:

However, I installed 418.67 as the 410 suggested in their tutorial did not have a compatible CUDA (following their tutorial). From what you are saying, I could have achieved the same end-result if I had installed nvidia drivers from the PPA (which I did) but instead of following the CUDA installation instructions in TF’s tutorial (I added the repo, but installed cuda and libcunn explicitly as they suggest), I could have just installed cuda-toolkit-10-1? Will this also isntall libcunn (it’s specially relevant as they have some super-optimised deep learning layers)?

Thanks a lot for your help, I greatly appreciate it.

Best

cudnn comes separate either as .deb or with the machine-learning repo, it’s not bundled with cuda so it has to be installed separately regardless of the way you install cuda.
That tutorial is a bit…unfortunate. It leads to install the driver twice, one over the other.
To make it clearer:

sudo apt install cuda-10-0

is equivalent to

sudo apt install nvidia-driver-410 cuda-toolkit-10-0

In short words:

  • add the ubuntu graphics ppa
  • add the cuda .deb/repo
  • add the cudnn .deb/machine learning repo
  • install the driver from ppa
  • install cuda-toolkit , not cuda
  • install cudnn
    Afterwards, set the needed paths and symlinks according to cuda docs.
1 Like

I only had some downtime now to follow these. They work perfectly, thank you very much! I will start directing people to this thread instead of the TF installation instructions…

As an alternative solution to have both 418 driver and working steam, I installed the flatpak steam version.

Improved instructions:

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