切换到 nvidia 显卡后,Steam 无法在 Ubuntu 18.04 中启动

切换到 nvidia 显卡后,Steam 无法在 Ubuntu 18.04 中启动

我是 Linux 新用户,刚刚在 Ubuntu 18 上安装了 Steam。在原生显卡上运行时,Steam 可以从终端和应用程序图标启动。当切换到 nvidia 显卡时,所有驱动程序(据称)都已正确安装,但 steam 无法再启动。我尝试重新安装 steam 并尝试了几种类似问题的解决方案,但都不起作用。我该如何解决这个问题?

当我在终端上运行 steam 时,输出是:

Running Steam on ubuntu 18.04 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
/home/carlosavila/.steam/ubuntu12_32/steam
[2019-12-29 14:22:57] Startup - updater built Dec 16 2019 16:48:42
SteamUpdateUI: An X Error occurred
X Error of failed request:  GLXBadContext
SteamUpdateUI: An X Error occurred
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  155 (GLX)
Minor opcode of failed request:  3 (X_GLXCreateContext)
Value in failed request:  0x0
Serial number of failed request:  48
xerror_handler: X failed, continuing
Major opcode of failed request:  155 (GLX)
Minor opcode of failed request:  6 (X_GLXIsDirect)
Serial number of failed request:  49
xerror_handler: X failed, continuing
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2019-12-29 14:22:57] Checking for update on startup
[2019-12-29 14:22:57] Checking for available updates...
[2019-12-29 14:22:57] Downloading manifest: client-download.steampowered.com/client/steam_client_ubuntu12
[2019-12-29 14:22:58] Download skipped: /client/steam_client_ubuntu12 version 1576550254, installed version 1576550254
[2019-12-29 14:22:58] Nothing to do
[2019-12-29 14:22:58] Verifying installation...
[2019-12-29 14:22:58] Performing checksum verification of executable files
[2019-12-29 14:22:59] Verification complete

输出为glxinfo | grep "version"

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.6.0 NVIDIA 390.116
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 390.116
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.116
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

答案1

问题是 Nvidia 弃用了.deb驱动程序包中的 32 位库,而 steam 客户端是 32 位二进制文​​件,因此它依赖于 32 位库(需要说明的是,问题不在于驱动程序,而在于库)。有几种方法可以解决这个问题,“理论上”必须推荐的解决方案是下载驱动程序.run并在安装时启用 32 位库,但在我看来,安装它.run很繁琐(而且我从几年前就没有这样做过,所以我真的不知道它今天会如何工作)。

我的经验建议是安装图形驱动程序 ppa(https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa) sudo add-apt-repository ppa:graphics-drivers/ppa,此 ppa 包含 nvidia 驱动程序以及 64 位和 32 位版本的库。它应该是实验性的,但对我来说它确实很好用。

您唯一需要关注的是,一旦安装了 ppa:graphics-drivers,由于您已经有了 nvidia 驱动程序,您将需要“强制版本”才能安装 ppa:graphics-drivers(即使它与您已经在使用的 nvidia-390 相同)。我建议使用 synaptic 包管理器,因为您可以在应用之前告诉 synaptic 您想要做的一切(因为您可能想要在此过程中更改多个库)。此外,在 synaptic 中,您可以转到架构过滤器并搜索nvidia过滤,i386以便您可以安装每个 32 位 nvidia 库(默认情况下不会安装,您需要安装它们)。

答案2

此命令__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia steam对我有用。但重启后,它就无法正常工作了。

请参阅我的完整答案在其他帖子中

相关内容