随机源游戏在内核更新后停止工作

我是Xubuntu(和Linux)的noob两个月,我一直依赖我的兄弟,他是一个流利的Linux用户。
我已经下载并安装了最新的内核更新, linux-image-3.16.0-41-generic ,以及所需的所有其他内容。 所以在那之后,我的一些源游戏停止在optirunoptirun 。 我工作的唯一游戏是“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相同的错误。

我安装了bumblebeenvidia-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. 

编辑

实际修复

所有的荣誉都归功于Henrik Johansson,他在这里做了很棒的指导。 我会告诉你该怎么做。

对于Valve游戏,请转到您喜欢的编辑器中的可执行文件并搜索

  ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@" 

并替换它

 primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@" 

(或optirun ,您的选择)

这似乎会影响所有使用.sh可执行文件的游戏。 其他游戏可以以类似的方式固定。

我的解释

问题在于Steam如何运行命令。 这是我最近刚刚连接点的问题,现在知道了答案。 似乎ld.so问题涉及英特尔驱动程序(或者我认为)。 Steam无法正确运行optirun / primusrun (或者可能根本不运行),因此使用的Intel驱动程序无效。

下面的内容不再适用,因为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 

在第一种情况下,游戏抱怨没有libtcmalloc_minimal.so.4库。 也许,Steam或游戏在目录中有他们的lib版本。 无论如何,您可以尝试从Ubuntu存储库安装它。 我现在不使用32位或64位版本,但您可以尝试:

对于64位版本

 sudo apt-get install libtcmalloc-minimal 

或32位版本

 sudo apt-get install libtcmalloc-minimal4:i386 

在第二种情况下,它抱怨由于任何原因,它无法在steam instalation中加载文件filesystem_stdio.so。 您可以尝试重新安装蒸汽。