因此,我昨天得到了 Ubuntu,并热情地开始安装所有 Linux 支持的 Steam 游戏。其中只有两个可以运行,其余的立即崩溃回 Steam,没有错误消息,只有 Portal 除外,它显示一条消息,说它必须处理 OpenGL。我相信这个问题是由我的显卡驱动程序引起的。我有一台 Radeon 6670。我需要向您提供哪些信息,以便您尝试帮助让适当的驱动程序和 OpenGL 正常工作?
答案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。