protonscr

Steam does not work on 64-bit nvidia drivers and apt won't let me install both :i386 and :amd64 driers simultaneously

steamclosed NVIDIA driversDistro Family: Ubuntu
ValveSoftware/steam-for-linux#7773 · opened 2021-04-29 by mtsoltan · updated 2021-04-29 · 6 comments · github
Mmtsoltan 2021-04-29 github

Your system information

  • Steam client version (build number or date): appid(steam)/version(1618256785)
  • Distribution (e.g. Ubuntu): ubuntu 20.04 64-bit (kernel -> 5.4.0-72-generic)
  • NVIDIA graphics driver: Tried both nvidia-driver-460:amd64 and nvidia-driver-465:amd64
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

Launching steam after updating graphics driver to 465 segfaults.
Rolling back to 460 still segfaults (does not fix the issue).

Steam Launch Response

I googled it and people are saying steam, being the 32-bit application it is (I'm not sure why when there's literally 0 harm into providing a 64-bit version, it's 2021 not 1999!) would only run on a 32-bit graphics driver. Now I don't like to believe rumors, so I'm filing an issue instead.

However, if that is indeed the case, it's highly unlikely that I'd be able to get 99% of my other software (including the 64-bit games available on steam to run on a 32-bit driver).

Steps for reproducing this issue:

  1. Update driver to 465.
  2. Run steam.
Mmtsoltan 2021-04-29 github

Sorry if this reply sounds a little toxic, but,

https://github.com/ValveSoftware/steam-for-linux/issues/179#issuecomment-267790879

It's horrible to think that over 90% of steam users who don't live under a rock with a pentium processor play 32-bit games. This line of thinking is like saying "We will not drop our iframe-based layout in favor of xhr-based UI because less than 10% of the people using the site are doing things that do not require javascript."

It doesn't work this way.

You just have to offer a 64-bit version (with 64-bit GUI, and exclusive 64-bit game support), and allow an optional 32-bit "dlc" that supports 32-bit games and requires 32-bit headers and libraries. You can't just force everyone to have 32-bit components that they don't need because they don't play the dead 32-bit games you don't plan to discontinue.

Edit: Steam is the only 32-bit application remaining on my OS (and has been the only one for years). I'm sure most people who use steam will agree to that statement as well. Since it will need to change to 64-bit at 2038 anyway, why not change it today? I see no reason not to.

Kkisak-valve maintainer 2021-04-29 github

Hello @mtsoltan, Ubuntu making it difficult or cryptic to install multilib nVidia drivers is a distro packaging issue, not a Steam client issue.

With regards to the driver packaging, the nVidia proprietary driver requires that the running kernel module, 64 bit userspace, and 32 bit userspace have exactly the same version to work properly. On Ubuntu, the 32 bit userspace libraries are in libnvidia-gl-465:i386 (where 465 is the driver series), not in nvidia-driver-465.

If you already tried adding libnvidia-gl-465:i386 and apt refused, then please share the output of apt policy libnvidia-gl-465 libnvidia-gl-465:i386 to ponder.

With regards to a 64 bit client, that request is being tracked at #3518.

Ffelix-clark 2021-04-29 github

I'm not the issue submitter, but as far as I can tell I'm experiencing identical symptoms. i.e. trying to update to 465 broke steam with similar errors, and purging the drivers and reverting back to 460 doesn't fix it.

If I try to install libnvidia-gl-465:i386 I get the following message:

Package libnvidia-gl-465: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-465

I have installed libnvidia-common-465.

With regards to the 460 driver versions, it appears that the 64 and 32 bit versions cannot be installed at the same time. If I run sudo apt install libnvidia-gl-460 libnvidia-gl-460:i386 I get the following:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libnvidia-gl-460 : Breaks: libnvidia-gl-460:i386 (!= 460.73.01-0ubuntu1) but 460.73.01-0ubuntu0.20.04.1 is to be installed
 libnvidia-gl-460:i386 : Breaks: libnvidia-gl-460 (!= 460.73.01-0ubuntu0.20.04.1) but 460.73.01-0ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

It seems like these packages are mutually exclusive. The result of apt policy libnvidia-gl-460 libnvidia-gl-460:i386 is:

libnvidia-gl-460:
  Installed: (none)
  Candidate: 460.73.01-0ubuntu1
  Version table:
     460.73.01-0ubuntu1 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
     460.73.01-0ubuntu0.20.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages
     460.32.03-0ubuntu1 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
     460.27.04-0ubuntu1 600
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
        600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64  Packages
libnvidia-gl-460:i386:
  Installed: (none)
  Candidate: 460.73.01-0ubuntu0.20.04.1
  Version table:
     460.73.01-0ubuntu0.20.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/restricted i386 Packages

Hope this helps.

Kkisak-valve maintainer 2021-04-29 github

Hello @felix-clark, you've encountered #5778 and that's an issue with the third party repository. Apt is refusing to install the mismatched versions between nVidia's CUDA repo and Ubuntu's repo. It also doesn't like downgrading packages to auto-resolve the issue. You should be able to resolve the confict by explicitly asking for the matching package version with something like sudo apt install libnvidia-gl-460=460.73.01-0ubuntu0.20.04.1 libnvidia-gl-460:i386=460.73.01-0ubuntu0.20.04.1. This will most likely not play nicely with CUDA's meta packages, but as noted in that issue report, you should be able to install all the individual CUDA components without the meta package.

If libnvidia-gl-465 (64 bit) is coming for the same CUDA repo, that's the same repo issue, but less obvious. In that case, you may want to check if https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa is right for you.

Mmtsoltan 2021-04-29 github

Yes. It's a cuda thing. Ubuntu's version of 465 is not out yet, so the upgrade to 465 came from the cuda package, which is not compatible with i386 versions and broke steam. Rolling back to ubutnu's 460 allowed me to reinstall the 460:i386 drivers and get steam working. Thanks for the help.

But seriously though, half the problem is on nvidia's side (that the cuda version's dependency matching is a mess and does not allow you to have i386 libraries) and half of it is on your side (that no 64 bit version of steam exists, even for the people who don't want to play 32-bit games)... Like seriously, if I wanted to play 32bit games, I'd probably be using windows.

It's very painstaking to have to use docker / manually manage dependencies with a bash script to be able to use cuda and steam, and when updates come, I have to be extra careful to not break everything (like this time I had to uninstall cuda).

Would still be helpful to have a 64bit version of steam for the people that want it (esp. linux users who have to enable multiarch and stuff). Wouldn't expect it to be out tomorrow but would appreciate if it was at least considered.

Thanks for the help. Feel free to reference #5778, which seems to be a general version of this, and close.
Cheers.

Kkisak-valve maintainer 2021-04-29 github

Closing as a duplicate of #5778 / #3518.