我是 Xubuntu(和 Linux)的新手,已经使用 2 个月了,我一直依赖我的兄弟,他是 Linux 的熟练用户。
我已经下载并安装了最新的内核更新,linux-image-3.16.0-41-generic
以及它所需的所有其他东西。因此,在那之后,我的一些 Source 游戏在 下停止运行optirun
。我拥有的唯一可以运行的游戏是“Double Action: Boogaloo”和“Counter-Strike: Source”。
注意:我拥有所有《反恐精英》游戏(不包括 Nexus)、GMod 和 Portal 2。
CS:GO 的错误
~/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive$ optirun ./csgo_linux
./csgo_linux: error while loading shared libraries: libtcmalloc_minimal.so.4: cannot open shared object file: No such file or directory
GMod 的错误
~/.local/share/Steam/steamapps/common/GarrysMod$ optirun ./hl2_linux
AppFramework : Unable to load module /home/USERNAME/.local/share/Steam/steamapps/common/GarrysMod/bin/filesystem_stdio.so!
Portal 2 抛出与 CS:GO 相同的错误。
我已经bumblebee
安装nvidia-349
了(以及所有依赖项)。我已通过以下方式安装了 NVidia 驱动程序此方法,并已通过以下方式安装了 32 位库这个方法。请帮忙!
optirun
编辑:在没有英特尔集成显卡的情况下也会发生这种情况。
更新:我steam
在控制台中运行(而不是游戏本身),然后运行游戏。我在大多数日志中看到以下内容:
ERROR: ld.so: object '/home/pistol/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/pistol/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
答案1
编辑:
真正的解决办法
所有的功劳都归功于 Henrik Johansson,他制作了一本很棒的指南这里。我会简单告诉你该怎么做。
对于 Valve 游戏,请转到您最喜欢的编辑器中的可执行文件并搜索
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
并将其替换为
primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
(或者optirun
,你的选择)
这似乎会影响所有使用.sh
可执行文件的游戏。其他游戏可能以类似的方式修复。
我的解释
问题在于 Steam 如何运行命令。我最近才发现这个问题,现在知道答案了。问题似乎ld.so
与英特尔驱动程序有关(至少我是这么认为的)。Steam 无法运行optirun
/无法primusrun
正确运行(或者可能根本) 因此使用英特尔驱动程序,但这是行不通的。
下面的内容不再适用,就像xorg-edgers
现在一样graphics-drivers
。
请不要听下面这些。
经过多次在互联网上搜索和反复尝试,我可以肯定地得出结论,主要问题是 PPA xorg-edgers
。 如果您遇到类似问题,则应删除所有驱动程序xorg-edgers
,然后再ppa-purge
进行修复。
如果您不知道该怎么做,请按照以下方法操作。
安装ppa-purge
者...
sudo apt-get install ppa-purge
删除xorg-edgers
...
sudo ppa-purge ppa:xorg-edgers/ppa
最后...
sudo apt-get update
答案2
在第一种情况下,游戏会抱怨缺少libtcmalloc_minimal.so.4
库。可能 Steam 或游戏在目录中有这个库的版本。无论如何,您可以尝试从 Ubuntu 存储库安装它。我不知道它使用的是 32 位还是 64 位版本,但您可以尝试:
对于 64 位版本
sudo apt-get install libtcmalloc-minimal
或 32 位版本
sudo apt-get install libtcmalloc-minimal4:i386
在第二种情况下,它抱怨说,由于某种原因,它无法加载 steam 安装中的 filesystem_stdio.so 文件。您可以尝试重新安装 steam。