Ubuntu 14.04 Bumblebee/Optimus 使用 steam 时出现错误

Ubuntu 14.04 Bumblebee/Optimus 使用 steam 时出现错误

当我运行没有 primus 或 bumblebee 的 Dota 2 时,它可以运行但很慢,当我尝试使用 optirun/primusrun 运行 steam 或 dota 时,会出现错误。

The Primusrun error:
    Game update: AppID 570 "Dota 2", ProcID 4131, IP 0.0.0.0:0
ERROR: ld.so: object '/home/aleks/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/aleks/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

malloc: unknown:0: assertion botched
free: called with unallocated block argument
last command: (null)
Aborting...Aborted (core dumped)
Game removed: AppID 570 "Dota 2", ProcID 4131 
Installing breakpad exception handler for appid(steam)/version(1411443970)     

答案1

您无需在启动选项 ( primusrun %command%) 中添加 primusrun 命令,而是可以primusrun在 .steam 目录中的游戏目录中添加 shell 脚本。每个游戏似乎都有自己的 shell 脚本。例如,CS:GO 有:“ .steam/steam/SteamApps/common/Counter-Strike Global Offensive/csgo.sh

找到 dota2 的脚本并更改以下行:

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

到:

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

您应该能够照常启动游戏,但将使用 primusrun。

相关内容