![Steam 无法与开源驱动程序兼容](https://linux22.com/image/1085472/Steam%20%E6%97%A0%E6%B3%95%E4%B8%8E%E5%BC%80%E6%BA%90%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%85%BC%E5%AE%B9.png)
为了让蒸汽机正常工作,我经历了相当漫长的路程。
我使用的是 Ubuntu 15.04 和 Linux 4.0.5 内核。系统规格:
英特尔 Haswell 四核 CPU AMD Radeon 7870 显卡 三星 850 EVO SSD 16GB 内存
我能够让 steam 在 14.04LTS 中运行,但该版本还存在其他问题;即 chrome 中的 flash 问题。所以我更新到了 15.04,我的系统更稳定了(除了 steam,总是会出现一些问题...)
我尝试删除各种 lib 文件,但毫无效果。我删除并安装了 steam 几次,但似乎不起作用。
我尝试切换到专有驱动程序,但这会导致我的系统在启动时挂起。为了解决这个问题,我从系统中完全删除并清除了 fglrx。我尝试根据 ubuntu 页面说明通过命令行重新安装专有驱动程序,但遇到了同样的错误,所以我只能使用开源驱动程序。
我只能假设我的卡不再受专有驱动程序支持,这令人沮丧。
在我删除专有驱动程序之前,我遇到了与这些人相同的错误: https://github.com/ValveSoftware/steam-for-linux/issues/3820
现在我已经删除了专有驱动程序,但出现了缺少库的错误,我想这并不奇怪:
libGL 错误:无法加载驱动程序:radeonsi_dri.so libGL 错误:缺少驱动程序指针 libGL 错误:无法加载驱动程序:radeonsi libGL 错误:无法加载驱动程序:swrast_dri.so libGL 错误:无法加载驱动程序:swrast
我准备放弃了,正在认真考虑购买 Nvidia 显卡。如果有人能给我一些建议,我将不胜感激。
答案1
该问题是由 Steam 捆绑的旧版本 libstdc++ 引起的。
可能的解决方案:
(从https://github.com/ValveSoftware/steam-for-linux/issues/3273) 将 steam 运行时的 libstdc++.so.6 符号链接重定向到系统。将 XX 替换为您系统的 libstdc++ 版本。当 libstdc++ 更新时,您需要更新此项。
$ ln -sf /usr/lib/libstdc++.so.6.0.XX ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
(从http://chapeaulinux.org/forums/topic/steam-not-working-in-chapeau-22/) 在运行 steam 之前预加载系统的 libstdc++。
$ LD_PRELOAD=/usr/lib/libstdc++.so.6 ; steam
最后的解决方案也可以放在脚本中:
sudo mv /usr/bin/steam /usr/bin/steam.orig echo -e '#!/bin/sh\nexport LD_PRELOAD=/usr/lib/libstdc++.so.6\n. /usr/bin/steam.orig $*'>~/mysteam chmod +x ~/mysteam sudo ln -s ~/mysteam /usr/bin/steam
(来自搜索 how-to-fix-broken-steam-linux-client-with-radeon-graphics-driver-workaround/)创建一个脚本来使用系统版本的 libstdc++ 运行 steam。
#!/bin/bash export LD_PRELOAD='/usr/$LIB/libstdc++.so.6' #Export so all child processes are affected as well export DISPLAY=:0 #export LIBGL_DEBUG=verbose steam
将其保存为例如 run-steam.sh。您必须通过此脚本启动 steam。