Steam/游戏特定故障排除
首先查看 Steam/故障排除。
本页面假定您熟悉 Steam#目录结构、Steam#启动选项、环境变量、Steam 运行时 和 共享库。GAME 伪变量用于指代游戏目录。当文本显示“使用 FOO=bar 运行游戏”时,这意味着您要么更新启动选项,要么使用环境变量从命令行运行游戏。
贡献
- 使用“游戏目录”或
GAME伪变量来指代游戏目录。 - 链接错误报告和解决方法的来源。
其他来源
以下链接提供了更多针对各种游戏的修复和调整,否则将超出本文的目的
对于使用 Proton 运行的游戏,您可以查看 ProtonDB,其中列出了许多特定游戏的有用用户报告。您可以按 Linux 发行版和硬件过滤搜索到的报告。用户还会描述他们是否必须应用调整。
- ProtonDB 众包 Linux 兼容性报告。
常用步骤
OpenSSL 1.0 设置
一些 Steam 游戏是针对 OpenSSL 1.0 构建的。(FS#53618)
安装 lib32-openssl-1.0AUR 并使用 LD_LIBRARY_PATH=/usr/lib/openssl-1.0 运行游戏。
缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3
安装 lib32-libcurl-compat 并使用 LD_PRELOAD=libcurl.so.3 运行游戏。
Steam Link
目前,Steam Link 不适用于 Wayland。当连接到在 Wayland 上运行的 Steam 主机时,您只会看到空白屏幕甚至闪烁。因此,您必须禁用 Wayland,例如
/etc/gdm/custom.conf
WaylandEnable=false
并在继续之前重启登录管理器。
Source 引擎游戏中出现方块或不可见符号、特殊字符和西里尔字母
任何特殊字符都可能在游戏、主菜单和游戏控制台中产生方块或空白标记。实际上,除拉丁字符外的任何字符都无法正常工作。问题在于 Bitstream Vera Sans 被配置为拉丁无衬线字体的系统主要默认字体。
首先,确保已启用每用户字体自定义文件,即存在以下文件
/etc/fonts/conf.d/50-user.conf
接下来,在您的 fontconfig 目录中创建 fonts.conf 文件,内容如下,或者如果文件已存在,则仅将别名部分附加到文件中
~/.config/fontconfig/fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>Verdana</family>
<family>Arial</family>
<family>Albany AMT</family>
<family>Luxi Sans</family>
<family>Nimbus Sans L</family>
<family>Nimbus Sans</family>
<family>Helvetica</family>
<family>Lucida Sans Unicode</family>
<family>BPG Glaho International</family>
<family>Tahoma</family>
</prefer>
</alias>
</fontconfig>
PipeWire & FMOD
如果您正在使用 PipeWire,并且在使用 FMOD 作为音频后端的游戏中没有声音,那么您可能需要 pipewire-alsa。此类游戏包括 Project Zomboid、Don't Starve 和 Unrailed。
如果这影响到您,您将在日志中看到类似于以下内容。
[00:00:01]: FMOD Error: An invalid object handle was used. [00:00:10]: FMOD Error: Can't play event dontstarve/HUD/click_mouseover: An invalid object handle was used.
Source 1 游戏中出现 tcmalloc.cc 错误
如果像 Counter-Strike Source、Portal、Team Fortress 2 这样的游戏在启动时崩溃并出现以下错误
src/tcmalloc.cc:278] Attempt to free invalid pointer 0x9e13ad0
~/.local/share/Steam/steamapps/common/Team Fortress 2/hl2.sh: line 72: 6280 Aborted (core dumped) ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
安装 lib32-gperftoolsAUR,并将崩溃的游戏指向正确的库,使用
LD_PRELOAD=/usr/lib32/libtcmalloc_minimal.so
来自此 steam 社区帖子。
Unity 游戏崩溃
使用 Unity 的游戏,例如 Papers Please、Vampire Survivors,期望安装 PulseAudio,如果未安装,则在运行时会静默崩溃并出现 SIGSEGV。您也可以将 PipeWire 与 pipewire-pulse 一起使用。
Split lock 检测/缓解
Split lock 检测是对开发人员的警告,而缓解措施旨在降低性能,以鼓励开发人员编写更好的代码。这导致在各种游戏场景下性能显着降低[1],包括 Counter-Strike Source 引擎游戏和使用 BattleEye 反作弊的游戏。
自内核 5.19 起,默认启用 split lock 检测[2]。修复方法是完全禁用缓解或检测。检测可以通过添加 split_lock_detect=off 内核参数 来禁用,而缓解可以在运行时使用 split_lock_mitigate=off 来禁用。
sysctl 切换标志。此外,GameMode 可用于在运行时切换此内核参数。
游戏
7 Days To Die
如果游戏启动时崩溃,请将以下内容添加到 Steam 启动选项
LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 %command% -force-glcore
如果游戏无法识别您屏幕的分辨率,请使用游戏启动器启动游戏,并选中Unity 屏幕选择器选项以更正分辨率。这将为您提供一个 GUI,您可以在其中选择游戏启动时使用的正确屏幕。
如果这没有帮助,请尝试在启动器选项中的游戏引擎中选中相应选项,以 32 位 模式运行游戏。
如果在启动器选项中选中 GLCore 选项,将有助于提高游戏性能。
.dll 模组。但是,这需要覆盖您的 Proton 前缀。使用 Protontricks 访问 7 Days 正在使用的前缀的 winecfg,转到库,并添加 winhttp 作为覆盖。这至少适用于 Harmony DLL 模组。Age of Wonders 3
如果游戏启动时启动失败,您需要创建一个 pthread_yield.so 文件。在文本编辑器中执行以下操作
extern int sched_yield(void);
int pthread_yield()
{
return sched_yield();
}
然后将文件另存为 pthread_yield.c,然后在终端中在包含该文件的目录中发出以下命令
gcc -m32 -shared -fPIC pthread_yield.c -o pthread_yield.so
将 pthread_yield.so 复制到 AOW3 游戏文件夹中,然后编辑 AoW3Launcher.sh 文件并添加以下内容
export LD_PRELOAD="pthread_yield.so"
在文件底部但在 exec ./AoW3Launcher 之前执行此操作,之后游戏应正常启动。
Alien Isolation
缺少 libpcre.so.3 和 libidn.so.11
$ ln -s /usr/lib/libpcre.so 'GAME/lib/x86_64/libpcre.so.3' $ ln -s /usr/lib/libidn.so 'GAME/lib/x86_64/libidn.so.11'
将 ./lib/x86_64 附加到您的 LD_LIBRARY_PATH。[3]
缺少 libcrypt.so.1
安装软件包 libxcrypt-compat。 [4]
Amnesia: The Dark Descent
依赖项: [5]
游戏手柄无法工作
游戏附带的 libSDL2 版本似乎已过时,可能尚不支持您的游戏手柄。只需删除或重命名 <install_dir>/game/lib64/libSDL2-2.0.so.0,链接器将回退到使用 /usr/lib 中的最新版本。
Amnesia: Rebirth
如果您在启动时遇到弹出窗口,显示 Fatal Error: Fmod could not be initialized!! 并立即关闭游戏,并且您正在使用 pipewire,如果尚未安装,请安装 这些软件包:pulseaudio-alsa、lib32-libpulse 和 lib32-alsa-plugins。重启并重新打开游戏。
And Yet It Moves
依赖项
游戏无法启动
当游戏拒绝启动并打印以下错误消息之一时
readlink: extra operand ‘Yet’
Try 'readlink --help' for more information.
This script must be run as a user with write priviledges to game directory
打开 GAME/AndYetItMovesSteam.sh 并用双引号将以下行中的 ${BASH_SOURCE[0]} 括起来。
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
Anomaly Warzone Earth
离开全屏
没有游戏内设置可以实现此目的,但可以使用 Alt+Enter 切换全屏。
无限加载
在游戏可执行文件旁边创建文件 loadfix.c:src
#define _GNU_SOURCE
#include <dlfcn.h>
#include <semaphore.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL;
int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout)
{
if (abs_timeout->tv_nsec >= 1000000000)
{
//fprintf(stderr, "to: %lu:%lu\n", abs_timeout->tv_sec, abs_timeout->tv_nsec);
((struct timespec *)abs_timeout)->tv_nsec -= 1000000000;
((struct timespec *)abs_timeout)->tv_sec++;
}
return _realSemTimedWait(sem, abs_timeout);
}
__attribute__((constructor)) void init(void)
{
_realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait");
}
使用 gcc -m32 -o loadfix.so loadfix.c -ldl -shared -fPIC -Wall -Wextra 编译
使用 LD_PRELOAD=$LD_PRELOAD:./loadfix.so %command% 启动
游戏手柄无法工作
您必须启用键盘控制并将游戏手柄映射到按键。
Steam 配置:steam://controllerconfig/91200/1498735506
Aquaria
鼠标指针卡在一个方向
如果鼠标指针卡在一个方向,请确保 GAME/usersettings.xml 包含 <JoystickEnabled on="0" />。
如果这不能解决问题,请尝试拔下您已插入的任何操纵杆或操纵杆适配器设备。
ARK: Survival Evolved
游戏无法启动,显示带有无法读取文本的文本窗口
使用 MESA_GL_VERSION_OVERRIDE=4.0 MESA_GLSL_VERSION_OVERRIDE=400 运行游戏。
灰色水面
下载 TheCenter 地图,并将该地图中的 Water_DepthBlur_MIC.uasset 复制到 TheIsland 中,如 此处[死链接 2024-07-30 ⓘ] 所述。
Ragnarok 使用 TheIsland 的纹理,因此相同的步骤也修复了 Ragnarok 上的问题。
启动时出现段错误
由游戏打包的 libopenal 引起。使用系统 libopenal 通过使用 LD_PRELOAD=/usr/lib/libopenal.so.1 运行游戏来解决段错误。
加入游戏时崩溃
将 steam 设置为“离线模式”并重试
Audiosurf 2
错误。无法加载歌曲 <filename> ,返回持续时间为零
如果您在日志中看到此错误,请安装 pulseaudio-alsa。
BADLAND: Game of the Year Edition
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
Barony
损坏/不正确的纹理
使用以下启动选项
LD_PRELOAD="$LD_PRELOAD ./libSDL2-2.0.so.0 ./libSDL2_ttf-2.0.so.0 ./libSDL2_image-2.0.so.0" %command%
此问题是由 SDL 版本比游戏捆绑的版本更新引起的,此解决方法只是让游戏使用捆绑的库,如 此处 所述。
BATTLETECH
游戏在打开工作室鸣谢后冻结(开场动画不播放)
尝试安装 libbsd(如 Paradox 论坛 中建议的那样)。
游戏无法启动
尝试删除 BATTLETECH/BattleTech_Data/plugins/x86_64/libc.so.6,这应该会使游戏再次运行。
Beat Cop
“BeatCop.x86_64”没有响应
运行 BeatCop.x86 而不是 BeatCop.x86_64。
Binding of Isaac: Rebirth
没有声音
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
调整游戏选项中的音频级别。
BioShock Infinite
全屏模式下游戏在错误的显示器上启动
添加以下启动选项
--eon_force_display=1
更多各种修复和调整可以在 此处 找到
音频爆裂声
将启动选项更改为
PULSE_LATENCY_MSEC=60 %command%
有关该变量的讨论可以在 Proton issue #1209 中找到。较低的值保持较低的音频延迟,但仍可能发生爆裂声;较高的值更有可能消除爆裂声,但允许更高的音频延迟。
BLACKHOLE
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
Black Mesa
安装 lib32-gperftoolsAUR 以获取 32 位版本的 libtcmalloc_minimal.so.4,这是需要的 来源。
Block'hood
启动时白屏
启动游戏时,可能只显示一个白屏,没有界面,也无法玩游戏。添加 “-screen-fullscreen 0” 到启动选项。
The Book of Unwritten Tales
依赖项
- lib32-jasperAUR
- lib32-libxawAUR[损坏的链接:未找到软件包]
如果游戏无法启动,请取消选中:属性 > 启用 Steam 游戏中社区。
已知该游戏在打开设置时以及可能在玩游戏期间或之前会发生段错误。来自 Steam 讨论 的一种解决方法是将游戏的 RenderSystem_GL.so 替换为 Debian 存储库中的一个。为此,请下载 此 deb 文件,并使用 dpkg 解压它
$ dpkg -x libogre-*.deb outdir
现在将 GAME/lib/32/RenderSystem_GL.so 替换为从 .deb 软件包中提取的那个。
BRAIN/OUT
如果游戏无法启动并显示错误消息“invalid app configuration”。更改目录到游戏文件夹
$ cd ~/.steam/steam/steamapps/common/BrainOut/
直接运行游戏
$ java -jar brainout-steam.jar
您需要让 steam 在后台运行。
The Book of Unwritten Tales: The Critter Chronicles
请参阅 #The Book of Unwritten Tales。
为了防止游戏在片尾字幕处崩溃,请按照 此处 所述更改片尾字幕图像的大小。
Borderlands 2
从其他平台迁移存档
Borderlands 2 不支持跨平台 Steam 云同步,您必须在平台之间手动复制文件。存档位置可以在 此处 找到。确保您的用户可以访问这些文件。
使用 Ctrl 键
默认情况下,Borderlands 2 不允许使用 Ctrl 键。游戏似乎正在访问键码而不是键符号,因此 xmodmap 无效。一种解决方法是使用 setkeycodes 将 Ctrl 扫描码映射到其他键,如 Map scancodes to keycodes#Using setkeycodes 中所述。我使用 setkeycodes 0x1d 56(以 root 身份)在启动游戏之前将 Ctrl 映射到 Alt,并使用 setkeycodes 0x1d 29 恢复默认值。
登录 SHiFT
开箱即用,您将无法登录 SHiFT,因为游戏期望证书位于 /usr/lib/ssl 中,这是 Ubuntu 存储证书的位置。但是,Arch 使用 /etc/ssl。要解决此问题,请使用 SSL_CERT_DIR=/etc/ssl/certs 运行游戏。
游戏几乎立即崩溃
游戏在启动后立即在 libopenal 中崩溃。
可能的解决方案 0:使用 -nostartupmovies 标志运行游戏。它不再在 libopenal 中因一般保护错误而崩溃。
可能的解决方案 1:截至 lib32-openal 版本 1.18.0-1,游戏会立即崩溃。可能的解决方案是将 lib32-openal 降级到 1.17.2-1,或者使用 LD_PRELOAD='$HOME/.steam/root/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1' 启动游戏。
如果终端中出现如下消息
[ 671.617205] Borderlands2[2772]: segfault at 0 ip (null) sp 00000000ff9a462c error 14 in Borderlands2[8048000+235a000]
以下更改可能会有所帮助(来源)
LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%
可能的解决方案 2:如 #Steam native runtime 中所述,以 steam-native 身份启动 steam。如果即使在安装了 steam-native-runtime 元软件包后,游戏仍然无法启动,则您可能缺少某些库。您可以在 #Debugging shared libraries 中描述的方式找到这些缺少的库。
Borderlands: The Pre-Sequel
请参阅 #Borderlands 2。
键盘无法工作
这可能会发生在某些窗口管理器上,例如 dwm。尝试不同的 窗口管理器,或安装 wmname 并运行
$ wmname LG3D
有关更多信息,请参阅 Java#模拟另一个窗口管理器。
无法通过 Steam 启动
如果游戏在 Steam 中显示为 正在运行,但在您启动时同步后关闭,请尝试在游戏目录中创建一个 steam_appid.txt 文件,内容为 261640。这应该可以解决问题,让您可以直接从游戏目录启动游戏。如果这不起作用,请尝试使用 steam-native-runtime。
Celeste
Steam 界面覆盖缺少文本
-gldevice:Vulkan
混沌引擎
将您的 启动选项 设置为
LD_PRELOAD="/usr/lib32/libpng16.so.16" %command%
如果在 steam-native 的终端输出中看到此类错误
/home/$USER/.local/share/Steam/steamapps/common/Chaos engine/TheChaosEngineSteam: /home/$USER/.local/share/Steam/steamapps/common/Chaos engine/lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib32/libpng16.so.16) /home/$USER/.local/share/Steam/steamapps/common/Chaos engine/TheChaosEngineSteam: /home/$USER/.local/share/Steam/steamapps/common/Chaos engine/lib/libz.so.1: version `ZLIB_1.2.3.4' not found (required by /usr/lib32/libpng16.so.16)
然后链接系统 libz.so
cd ~/.local/share/Steam/steamapps/common/Chaos\ engine/lib mv libz.so.1 libz.so.1.old ln -s /lib/libz.so.1
都市运输 2
对话框无法正确显示
您将无法读取或看到任何内容,并且您的日志中将有此信息
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: non-double matrix element Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: wrong number of matrix elements
错误 FS#35039 的解决方法在 这里 提供 (替换 /etc/fonts/conf.d/10-scale-bitmap-fonts.conf)。
城市:天际线
游戏无法启动
如果您将 $XDG_DATA_HOME 设置为 $HOME/.local/share 以外的其他内容,Cities Skylines 会将一些文件放在 $XDG_DATA_HOME/Paradox Interactive 中,并将一些硬编码在 ~/.local/share/Paradox Interactive 中。取消设置此变量以解决此问题。
纹理无法正确渲染
使用 UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes 运行游戏。
当在内容管理器中启用 Node Controller 或 Intersection Marking tool 时,游戏在加载画面崩溃
如果在加载存档或开始新游戏时,启用上述一个或两个模组导致游戏崩溃,但在禁用这两个模组的情况下工作正常,请安装 mono。
城市:天际线 II
与前作不同,没有 Linux 版本,因此请勾选该框以强制使用 Proton Experimental。
道路纹理透明、建筑物隐形和图形伪影
要修复配备 AMD GPU 系统的这些主要图形问题,请使用 RADV 而不是 AMDVLK 启动 Steam,如 Vulkan 页面上所述。
文明 V
使用 LD_PRELOAD=/usr/lib32/libopenal.so.1 %command% 运行游戏。[6] 如果 /usr/lib32 中没有 libopenal.so.1,您可能需要在确保 multilib 已启用后安装 lib32-openal。
对于旧版本的 PulseAudio (<12.0),请使用 LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6:/usr/lib32/libopenal.so.1' %command%。[7]
如果您遇到严重的延迟(低于 1fps)或游戏在启动时崩溃,请尝试将以下路径添加到 LD_PRELOAD:'/usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1 /usr/$LIB/libgpg-error.so ./libcxxrt.so /usr/lib32/libstdc++.so.6 /usr/lib32/libopenal.so.1'。[8][`死链` 2021-05-17 ⓘ]
使用 PulseAudio 时声音断断续续
请参阅 PulseAudio/Troubleshooting#Laggy sound。
高核心数 CPU 上的段错误
Civ V 的 Linux 版本存在一个错误,当在逻辑核心数 >8 的 CPU 上运行时,会导致段错误。这包括许多常见的 CPU,尤其是 Ryzen 7 和 i7 系列部件。要诊断此问题,请检查 dmesg 的输出
dmesg | grep -E "Civ5XP.*segfault"
一种解决方案是运行 taskset -c 0-7 steam steam://rungameid/8930,这限制了游戏可以访问的核心数量[9]。在启动选项中运行此命令很方便
LD_PRELOAD=/usr/lib32/libopenal.so.1 taskset -c 0-7 %command%
另一种解决方案是在 config.ini 中将 MaxSimultaneousThreads 设置为 16,该文件存储在游戏目录中。[10]
片头动画后游戏崩溃,并显示“无法加载纹理 (LoadingBaseGame.dds)” / 启动时配置重置
此问题是由于游戏以不区分大小写的方式调用某些文件而导致的。
解决方案是将游戏安装在不区分大小写的文件系统(如 VFAT)上,或安装在 ciopfsAUR 的挂载点上。
仅仅游戏在不区分大小写的文件系统中是不够的,位于 "~/.local/share/Aspyr/Sid Meier's Civilization 5" 的配置/数据目录也需要位于不区分大小写的文件系统或挂载点中。如果数据目录位于区分大小写的文件系统中,则游戏将无法正常工作,并且可能会观察到配置不断重置等症状。
Steam 界面覆盖无法工作
可以通过在启动选项中预加载界面覆盖渲染器来修复不可见的 Steam 界面覆盖
LD_PRELOAD='/home/USERNAME/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' %command%
在 __memcpy_ssse3 期间崩溃
这似乎是一个内存对齐错误,可以通过使用 -mstackrealign 编译库来纠正。GDB 也可以用于按原样运行它,并使用以下启动选项
LD_PRELOAD=/usr/lib/libcurl.so.4 /bin/gdb -windows -batch -return-child-result -nx -eval-command="run" -exec=%command%
文明:太空
如果您在启动时遇到立即崩溃/关闭的情况,请确保您已安装以下软件包
您还需要提供 libtbb.so.2 的旧版本 lib32-tbb。要获取它
- 从 Ubuntu 归档下载 libtbb2 deb 软件包。
- 将
libtbb.so.2从libtbb2_4.2_20130725-1.1ubuntu1_i386.deb/data.tar.xz/usr/lib解压到游戏目录中。
请注意,如果您全局安装了 32 位 libtbb.so.2,您将需要使用以下命令运行游戏
- 使用
LD_PRELOAD='./libtbb.so.2'运行游戏。
强制它使用此版本。此版本还可以解决具有以下回溯的崩溃问题
#0 0x08b71d06 in FireGrafix::DynamicsLock<Graphics::BuildingSkinnedDataDynamicConsts>::DynamicsLock(Graphics::SurfaceSet**, FireGrafix::SurfaceSetPoolAllocator*, unsigned short) () #1 0x08c25ffc in cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS::HandleBuildingShaderSkinned(Graphics::FGXShaderPackageInstanceView*, FireGrafix::FGXModelNode*, FGXVector4*) () #2 0x08c25f34 in cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS::UpdateNode(Graphics::FGXShaderPackageInstanceView*, FireGrafix::FGXModelNode*, FGXVector4*) () #3 0x08c25e2c in FireGrafix::FGXModelRenderByNodeSSExample_Shadow<cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS, 2, FireGrafix::FGXModelRenderEndSuperclass>::RenderNode(unsigned int*, FireGrafix::FGX_SPIV_GENERIC*, FireGrafix::FGXModelNode*, FGXVector4*) () #4 0x08c24ff5 in cvLandmarkVisSystem::LandmarkRenderJob::Execute(unsigned int) () #5 0x093d26d9 in Platform::JobTask::execute() () #6 0xf749f3c0 in ?? () from /usr/lib32/libtbb.so.2 #7 0xf7497551 in ?? () from /usr/lib32/libtbb.so.2 #8 0xf7495fc3 in ?? () from /usr/lib32/libtbb.so.2 #9 0xf7491b7e in ?? () from /usr/lib32/libtbb.so.2 #10 0xf7491db7 in ?? () from /usr/lib32/libtbb.so.2 #11 0xf78f4346 in start_thread () from /usr/lib32/libpthread.so.0 #12 0xf7716026 in clone () from /usr/lib32/libc.so.6
文明 VI
尽管有原生的 #Civilization VI Linux 版本,但许多用户报告使用 #Civilization VI Windows 版本 性能更好。
文明 VI Linux 版本
可以使用 steam-native 运行,或者使用启动选项 LD_PRELOAD='/usr/lib/libfreetype.so.6:/usr/lib/libbrotlicommon.so.1:/usr/lib/libbrotlidec.so.1' %command%,并转到 *属性 > 兼容性*,勾选“强制使用特定的 Steam Play 兼容性工具”并选择“Steam Linux Runtime”。
如果您正在使用 Wayland,您可能还需要设置 QT_QPA_PLATFORM=xcb,因为游戏的启动器使用的 Qt 版本仅支持 Xorg(请参阅 Wayland#Qt),另一种方法是用 Arch Linux 提供的 Qt 替换捆绑的 Qt [11]。某些游戏版本似乎还需要添加 SDL_VIDEODRIVER=x11,否则将拒绝启动并显示错误消息“An unrecoverable error has occurred, and Civilization VI cannot continue.”(发生了一个无法恢复的错误,文明 VI 无法继续。)
按照 #OpenSSL 1.0 设置 进行操作。
确保禁用 Steam Workshop 模组,因为某些模组可能会在加载后引起问题。
Steam 界面覆盖无法工作
自从引入新的启动器以来,Steam 界面覆盖在此游戏中不起作用。要使其再次工作,只需按照 #Launcher unable to load page 中所述跳过启动器即可。
如果启动时立即段错误
这是一个奇怪的极端情况,即使在最好的情况下也很少发生(并且重现它的先决条件未知),但崩溃看起来会像这样
- 启动时立即段错误,在创建任何窗口之前
- 游戏创建
~/.local/share/aspyr-media/Sid Meier's Civilization VI/AppOptions.txt - 当在 gdb 下运行游戏时,字符串
AppHost::BugSubmissionPackager::BugSubmissionPackager出现在回溯输出中- 要在 gdb 下运行,首先启动一个 shell 并切换到游戏目录。
- 然后
echo 289070 > steam_appid.txt(否则游戏将无法在 Steam 本身之外启动) - 然后运行类似
gdb -ex run -ex bt -ex quit --args ./Civ6 ./Civ6的命令 - 输出末尾的相关信息应如下所示
Thread 3 "Civ6" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe5d06700 (LWP 12315)]
0x000000000201121e in AppHost::BugSubmissionPackager::BugSubmissionPackager(unsigned long, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)4> const&, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)0> const&, AppHost::ModuleVersionInfo const&) ()
#0 0x000000000201121e in AppHost::BugSubmissionPackager::BugSubmissionPackager(unsigned long, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)4> const&, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)0> const&, AppHost::ModuleVersionInfo const&) ()
#1 0x000000000200c796 in AppHost::_INTERNAL::SetupFXSPlatform(AppHost::AppEnvironment const*, AppHost::AppOptions*)
()
#2 0x000000000200fea0 in AppHost::RunApp(int, char**, AppHost::Application*) ()
#3 0x000000000200f9bc in AppHost::RunApp(char*, AppHost::Application*) ()
#4 0x0000000001112d98 in WinMain ()
#5 0x00000000010bdab0 in ?? ()
#6 0x00000000010bfb31 in ThreadHANDLE::ThreadProc(void*) ()
#7 0x00007ffff473e08a in start_thread () from /usr/lib/libpthread.so.0
#8 0x00007ffff38f747f in clone () from /usr/lib/libc.so.6
如果以上所有情况都适用于您,则修复方法非常简单。编辑 ~/.local/share/aspyr-media/Sid Meier's Civilization VI/AppOptions.txt 并将读取 EnableBugCollection 1 的行更改为 EnableBugCollection 0。
据推测,此修复程序将阻止任何自动错误报告到达 Aspyr(如果您将来遇到崩溃/错误),但至少可以使游戏正常启动。
如果崩溃并显示错误 “undefined symbol FT_Done_MM_Var”
如果游戏崩溃并显示
./GameGuide/Civ6: symbol lookup error: /usr/lib/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var
解决方案是将启动选项设置为
LD_PRELOAD=/usr/lib/libfreetype.so.6 %command%
如果游戏最终变成灰色空白屏幕
解决方案是禁用模组。
如果在“加载”屏幕后计算机变得无响应
这可能是由于 amdgpu 驱动程序因视频内存不足而崩溃导致的。如果运行集成显卡(例如 AMD Renoir),请尝试在 BIOS 中分配更多内存。
多显示器和 wayland:分辨率不匹配
Wayland 没有定义主显示器,因此游戏将显示任意显示器的可用分辨率;它可能不具有相同的大小,并且鼠标可能会偏移。解决方案是将 Xwayland 显示器设置为主显示器。
要查找 Xwayland 显示器列表:xrandr --listmonitors
要将(例如)XWAYLAND4 显示器设置为主显示器:xrandr --output XWAYLAND4 --primary
启动器窗口很大(缩放错误)
如果启动器窗口很大(有时比屏幕还大),则缩放比例不正确。将 QT_AUTO_SCREEN_SCALE_FACTOR=0 添加到启动选项,下次启动时启动器应可用。
启动器无法加载页面
启动器经常显示类似 Error loading page 的错误。可以通过编辑游戏启动配置 ~/.local/share/Steam/steamapps/common/Sid Meier's Civilization VI/Civ6 并将行 ./GameGuide/Civ6 更改为 ./Civ6Sub 来绕过启动器。
文明 VI Windows 版本
要玩 Windows 版本的 Civ VI,首先您必须 强制使用 Proton。然后,您需要绕过通过 proton 存在错误的启动器。要跳过启动器,请右键单击游戏,单击 *属性*,并设置以下 *启动选项*
eval $( echo "%command%" | sed "s/2KLauncher\/LauncherPatcher.exe'.*/Base\/Binaries\/Win64Steam\/CivilizationVI.exe'/" )
发条人
需要 lib32-libidn (由 steam-native-runtime 引入)。
英雄连 2
确保您已安装 lib32-gconfAUR[`链接失效`: 未找到软件包]。
缺少 libpcre.so.3 和 libidn.so.11
就像 #异形:隔离 一样,您需要将 /usr/lib/libpcre.so 符号链接到 GAME/lib/arch/libpcre.so.3,并将 /usr/lib/libidn.so 符号链接到 GAME/lib/arch/libidn.so.11,否则游戏将无法启动。
哥萨克 3
没有声音
使用 steam-runtime,例如将 启动选项 设置为
~/.steam/root/ubuntu12_32/steam-runtime/run.sh %command%
使用 primus 时屏幕闪烁
在启动选项中设置 PRIMUS_SYNC=2。
反恐精英:起源 (CS:S)
不可见的符号、特殊字符和西里尔字母
请检查 #Source 引擎游戏中方块或不可见的符号、特殊字符和西里尔字母
反恐精英:全球攻势 (CS:GO)
游戏无法启动并崩溃,显示黑屏
此问题是在内核更新到 5.17 后发现的:游戏无法正常启动。
一种可能的解决方法是更改 ~/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/panorama/videos,将其重命名为 videos.bak,然后将 -novid 添加到启动参数。游戏将失去主游戏界面的背景,但可以正常运行。
游戏在错误的屏幕上启动
如果发生这种情况,请进入全屏窗口化或窗口化模式,并将窗口拖动到正确的显示器。然后返回全屏模式,游戏现在应该在正确的显示器上。
如果您有辅助显示器,则可能在菜单中无法到达屏幕下部的一部分。如果在 Gnome 上,您可以尝试打开概览(Super 键),然后将游戏拖到另一个显示器再拖回来。
如果您不在 Gnome 上,或者来回拖动窗口不起作用,您可以尝试 安装 wmctrl 并运行此命令,其中 X 和 Y 是窗口的偏移量,H 和 W 是大小。
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,X,Y,H,W
示例:辅助显示器:在左侧 2560x1600,游戏显示器:在右侧 2560x1440)。
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,2560,0,1600,1200
这里 X 和 Y 为 0,2560,用于将窗口移动到右侧的显示器,H 和 W 1600,1200 设置为与游戏内分辨率匹配。
声音播放略有延迟
请参阅 PulseAudio/Troubleshooting#Laggy sound 以获取可能的解决方案。
鼠标在游戏中无法工作
如果您的鼠标在主菜单中工作,但在游戏中不工作,请使用 SDL_VIDEO_X11_DGAMOUSE=0 运行游戏。 [12] 如果仍然不起作用,请在游戏内设置中关闭“原始输入”。
亮度滑块无法工作
安装 安装 xorg-xrandr 并运行 xrandr 以找出您连接的显示器输出的名称。
编辑 GAME/csgo.sh 并添加以下行(调整 *output_name*)
# gamma correction xrandr --output output_name --gamma 1.6:1.6:1.6 # play with values if required STATUS=42 while [$STATUS -eq 42]; do ... done # restore gamma xrandr --output output_name --gamma 1:1:1 exit $STATUS
麦克风无法工作
CS:GO 使用默认的 PulseAudio 声卡设备,忽略 Steam 设置中的配置。
首先找出你的麦克风的源名称(应该以 alsa_input. 开头)。
$ pacmd list-sources
然后设置默认设备(根据你的名称进行更改)
$ pacmd set-default-source device_name
还要降低麦克风音量到 60%,否则你会听到恼人的背景噪音,并且别人很难听清你在说什么(根据你的名称进行更改)
$ pacmd set-source-volume device_name 0x6000
鼠标无响应或移动缓慢
设置启动选项为
vblank_mode=0 %command%
适用于几乎所有其他游戏。
插入游戏控制器后,游戏启动时崩溃
- 解决方案是在启动选项中添加
-nojoy:csgo-osx-linux issue #1757
- 另一个解决方案:删除启动视频:csgo-osx-linux issue #2659
一些文本丢失或位置错误
生成 en_US.UTF-8 区域设置将解决问题。
AMD Radeon RX 6000 系列显卡卡在地图加载 “Initializing World”/“Loading Resources” 界面
当使用 amdgpu 驱动时,一些用户 [13] 遇到地图加载时间超过一分钟并卡在 “Initializing World” 或 “Loading Resources” 的问题。你可以尝试以下解决方法
创建文件
/etc/udev/rules.d/70-amdgpu-mclk.rules
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="manual", ATTR{device/pp_dpm_mclk}="1 2 3"
这将禁用最低内存时钟状态 “0”。
立即激活,使用命令
# udevadm control --reload && udevadm trigger
Creeper World 3: Arc Eternal(爬行者世界3:永恒之弧)
游戏无法启动
搜索 Player.log(可能在 ~/.config/unity3d/Knuckle Cracker LLC/Creeper World 3/ 中)
如果 Player.log 中的某处显示
FMOD failed to get number of drivers ... An error occured that was not supposed to. Contact support.
Unity 可能是 pulse audio 库存在问题。
删除或重命名 /usr/lib, /usr/lib32, ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/, ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/ 中所有 libpulse-simple* 文件的实例。
CrossCode(圣剑传说)
如果启动时出现 FontConfig 错误
... Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'translate' Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'selector' Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'xmlns:its' Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'version' Fontconfig warning: "/etc/fonts/fonts.conf", line 9: unknown element "description" Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "its:rules" Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: unknown element "its:translateRule" Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'translate' Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'selector' Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'xmlns:its' Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'version' Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 8: unknown element "description" Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 4: unknown element "its:rules" Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 5: unknown element "its:translateRule" ...
从 这里 下载最新版本的 nwjs,并将其内容提取到你的 CrossCode 目录中,覆盖原有文件。
请务必将 nw 重命名为 CrossCode。
此解决方案经证实可用于 CrossCode 1.2 和 nwjs 0.41.2,并且基于 这篇 Steam 帖子
启动期间崩溃:X server 可能已消失
如果游戏在启动时崩溃,日志以如下行结尾
[19142:19142:0315/222104.782993:ERROR:chrome_browser_main_extra_parts_x11.cc(62)] X IO error received (X server probably went away)
在启动选项中添加 --disable-gpu(如这篇 Steam 帖子中所述)。
Crusader Kings II(十字军之王2)
没有音频
SDL 默认使用 PulseAudio,因此要将其与 ALSA 一起使用,你需要设置 SDL_AUDIODRIVER=alsa 环境变量。
启动窗口尺寸异常
你可以通过在 ~/.paradoxinteractive/Crusader Kings II/settings.txt 中设置 fullscreen=yes 使全屏模式成为默认模式。
DLC 未检测到
如果启动器中的 DLC 选项卡不可选,请将游戏目录中的 DLC 目录重命名为 dlc。
游戏启动时间过长
如果你使用的是 nvidia 显卡,请确保已启用 DRM 内核模式设置。
游戏完全无法启动
如果游戏在 3.3 补丁(游戏变为 64 位专属)后停止启动,请安装 onetbb。
Crypt of the NecroDancer(节奏地牢)
闪屏后崩溃
如果从终端启动 Steam,则会发生以下错误。
FMOD ERROR: UpdateFMOD SystemUpdate: This command failed because System::init or System::setDriver was not called.
安装 pulseaudio-alsa 可以解决此错误。
游戏完全无法启动 (Wayland)
在 Wayland 上,目前(截至 2024 年 5 月)需要在你的启动选项中添加 SDL_VIDEODRIVER=x11。如果你没有添加任何启动选项,还要在启动选项的末尾添加 %command%。游戏应该可以正常启动。
The Curious Expedition(奇异探险队)
游戏卡在加载界面
此游戏附带的 Electron 版本对于 Arch Linux 来说太旧了。
安装 electron 并使用 electron resources/app.asar 运行游戏。
Death Road To Canada(加拿大死亡之路)
没有音乐
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
Deus Ex: Mankind Divided(杀出重围:人类分裂)
按照 #OpenSSL 1.0 设置 进行操作。
如果你使用 Bumblebee,请将你的 启动选项 设置为
LD_PRELOAD="$LD_PRELOAD:libpthread.so.0:libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optirun %command%
如果游戏无法激活,并且你正在运行 systemd-resolved 和 Proton,请按照 Steam/Troubleshooting#Games running with Proton 5.13+ have no Internet connectivity 中的说明操作。
Dirt(尘埃)
按照 #OpenSSL 1.0 设置 进行操作。
Dirt Rally(尘埃拉力赛)
运行 beta 版本:右键单击游戏,然后点击属性… > 测试,输入代码:“feraldirtsupport” 并点击检查代码,最后,选择 feral_support_branch 作为版本。
要使用原生库,需要安装 gconfAUR 和 libldap24AUR。
如果你使用 Wayland,请使用 SDL_VIDEODRIVER=x11 启动游戏。同样,如果你使用 PipeWire,请使用 SDL_AUDIODRIVER=pulseaudio 启动游戏 - 其他后端也可能有效,但默认后端无效。
由于链接方式的更改,游戏可能无法正确加载其捆绑的依赖项。要解决此问题,你可以使用 LD_LIBRARY_PATH="GAME/lib/x86_64/" 运行游戏,或者将库从 GAME/lib/x86_64/* 符号链接到 GAME/lib/*。[14]
如果你使用 AMD Zen 3 或更新的 CPU,游戏也可能会发生段错误。要修复此问题,你可以拼凑一个小型的共享库来替换 mprotect 函数,并确保分配的内存具有 PROT_READ 访问标志。[15]。这是一个例子
$ cat game.c
#include <sys/mman.h>
#include <unistd.h>
#include <sys/syscall.h>
int mprotect(void *addr, size_t len, int prot) {
if (prot == PROT_EXEC) {
prot |= PROT_READ;
}
return syscall(__NR_mprotect, addr, len, prot);
}
然后你可以编译库并将共享对象移动到游戏库
$ gcc game.c -shared -o game.so $ mv game.so GAME/lib/
之后,你可以将 LD_PRELOAD=game.so 添加到游戏启动选项。
Divinity: Original Sin - Enhanced Edition(神界:原罪 - 加强版)
当使用 Bumblebee optirun 或 primusrun 时,游戏无法启动
编辑 GAME/runner.sh 以使用 primusrun
LD_LIBRARY_PATH="." primusrun ./EoCApp
游戏无法在 mesa 上运行
这是一个已知 bug,他们无意修复它,请参阅这个 bug。
解决方法[16][死链 2024-07-30 ⓘ] (参见分步指南)
获取以下文件:https://bugs.freedesktop.org/attachment.cgi?id=125302 并将其重命名为 divos-hack.c
然后执行
$ gcc -s -O2 -shared -fPIC -o divos-hack.{so,c} -ldl
将 divos-hack.so 复制到游戏文件夹。
对于 GOG 版本,转到所述游戏文件夹并使用以下命令运行 Divinity
$ allow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so" ./runner.sh
对于 steam 版本,打开控制台,使用以下命令更改到 divinity 目录
$ cd ~/.steam/steam/steamapps/common/Divinity Original Sin Enhanced Edition
启动 steam 并转到游戏的首选项,然后打开 “设置启动选项” 对话框。在那里,放入以下内容
allow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so:$LD_PRELOAD" %command%
然后只需启动游戏。
Doki Doki Literature Club(心跳文学俱乐部!)
Linux 版本随 Windows 版本一起发布,但只能通过 Steam Play 安装。
可以使用此启动选项启动原生版本:./DDLC.sh # %command%
Don't Starve Together(饥荒联机版)
如果启动时在 libX11.so.6.4.0 中崩溃,则问题很可能是 SDL1.3 中的一个 bug。不幸的是,DST 是静态链接的,我们无法使用 LD_PRELOAD 来用更新的版本替换 libSDL。该 bug 已报告给开发者,但一个可能的解决方法是修补 XGetICValues() 以避免在错误地给定空参数时崩溃。
Dota 2
依赖项
安装/将 RADV 设置为默认 Vulkan 应用程序
Valve 建议使用 RADV (Mesa) 而不是 AMDVLK (AMD),请参阅 Vulkan 以了解安装和设置默认值。
在 OpenGL 和 Vulkan 之间切换(推荐)
在游戏启动选项下添加以下标志
对于 OpenGL:-gl
对于 Vulkan:-vulkan
游戏内字体无法辨认
使用 MESA_GL_VERSION_OVERRIDE=2.1 运行游戏。
libpangoft2 错误
- 安装 pango 软件包。
- 删除
GAME/game/bin/linuxsteamrt64中的libpango-1.0.so和libpangoft2-1.0.so。 - 如果你正在使用 Bumblebee,请将
LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optiru添加到你的 启动选项。
游戏无法启动
如果你从终端运行游戏,并且虽然没有显示错误,但请尝试禁用:Steam > 设置 > 游戏中 > 启用 Steam 社区游戏中界面。
显然,游戏 #The Book of Unwritten Tales 存在相同的问题。它还描述了一个在 Dota 2 中未经测试的解决方法。
游戏在错误的屏幕上运行
游戏无法启动,并显示 libxcb-dri3 错误消息
在最近的 Mesa 更新之后,Dota 2 停止工作。错误消息是
SDL_GL_LoadLibrary(NULL) failed: Failed loading libGL.so.1: /usr/lib32/libxcb-dri3.so.0: undefined symbol: xcb_send_fd
游戏没有音频
这可能是因为 Dota 2 尝试通过 ALSA 输出音频,而 ALSA 已被 PulseAudio 接管。尝试安装 pulseaudio-alsa 并将游戏内音频输出设置为 “默认”。
Steam Overlay(Steam 覆盖层)
Steam 分发了一个与最新的 xorg libxcb 不兼容的 libxcb 副本。请参阅 [17], [18]。
清除或禁用着色器缓存以进行故障排除
要清除着色器缓存,请删除 steam 着色器缓存目录下的 570 (Dota 的应用程序 ID) 文件夹,例如
/home/gaben/steam/steamapps/shadercache/
要禁用着色器缓存,请将以下内容添加到 dota 的启动选项
-vulkan_disable_steam_shader_cache
中文提示和玩家名称未显示
中文提示和玩家名称中的中文字符显示为方块字符。
问题是由字体软件包引起的:ttf-dejavu, ttf-liberation 和 ttf-ms-fontsAUR。
中文输入法问题
Dota2 与 IBus 兼容。
Devil Daggers(恶魔匕首)
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
Drox Operative(卓克斯军团)
如果游戏启动失败,并显示 “Couldn't find Database/database.dbl!”,请手动解压 assets。 assets003.zip 将覆盖之前文件中的一些文件。
$ cd "~/.steam/root/steamapps/common/Drox Operative/Assets" $ unzip assets00[123].zip
Dungeon Souls(地牢之魂)
对于 AMD 显卡,除非你像这样启动游戏,否则游戏会在启动时崩溃
R600_DEBUG=mono %command%
Dying Light(消逝的光芒)
游戏启动时崩溃
游戏可以通过 Steam 设置 “强制使用特定的 Steam Play 兼容性工具” > “Steam Linux Runtime” 运行。
Dynamite Jack(炸弹杰克)
需要 lib32-sdlAUR。
声音问题
在 64 位 Arch Linux 上运行时,运行 Dynamite Jack 时可能会出现 “噼啪声和嘶嘶声”。这可能是由于未设置 STEAM_RUNTIME=0 引起的。(但是,即使设置了 STEAM_RUNTIME=0,游戏有时仍可能以此问题启动。退出并重新启动游戏似乎可以解决此问题。)
游戏无法启动
如果使用 STEAM_RUNTIME=0 运行 steam,Dynamite Jack 可能无法启动。检查 steam 错误消息中是否有以下消息
/home/$USER/.steam/root/steamapps/common/Dynamite Jack/bin/main: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory
从 multilib 安装 lib32-sdlAUR,Dynamite Jack 应该可以启动。
Empire Total War(帝国:全面战争)
奇怪的无法辨认的字体
打开 ~/.local/share/feral-interactive/Empire/preferences,然后找到 UsePBOSurfaces 并将其从 1 更改为 0。
Euro Truck Simulator 2(欧洲卡车模拟2)
仅显示黑屏
在游戏启动时选择安全模式。
Firewatch(看火人)
如果 Firewatch 启动但没有显示任何内容,请尝试使用以下命令运行 Steam
`STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam`
Football Manager 2014(足球经理2014)
此游戏在 XFS 或 reiserfs 文件系统上安装时无法运行。解决方法是在 ext4 文件系统上安装。
FORCED(强力基友)
需要 lib32-glu。
此游戏具有 32 位和 64 位二进制文件。出于某种原因,即使在 64 位 Arch Linux 上,Steam 也会启动 32 位二进制文件。当手动启动 64 位二进制文件时,游戏会启动,但无法连接到 Steam 帐户,因此你无法玩游戏。因此,请安装 32 位依赖项,并从 Steam 启动游戏。
For the King(为了吾王)
使用 steam-native
启动时显示黑页。需要告知使用 Steam 附带的 libSDL2
添加到游戏的 Steam 启动选项
LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 %command%
但请注意,这会产生禁用 Steam 覆盖层的副作用。
使用 steam-runtime
开箱即用。
为了获得完整体验,请通过 steam-runtime 而不是 steam-native 运行 FTK。
FTL: Faster than Light(FTL:超越光速)
兼容性
安装后,FTL 可能由于 “Text file busy” 错误而无法运行(在 Steam 中表现为你的头像边框先变绿然后又变回蓝色)。解决此问题的最简单方法是重新启动系统。重新登录后,FTL 应该可以运行。
FTL 中的 Steam Overlay 覆盖层功能异常,因为它不是一个 3D 加速游戏。因此,桌面通知将可见。如果在全屏模式下玩游戏,这些通知在某些系统中可能会抢占焦点,并将您切换回窗口模式,且无法在不重新启动游戏的情况下返回全屏模式。Steam 上的 FTL 二进制文件没有 DRM 保护,因此可以在 Steam 未运行的情况下运行游戏,所以在某些情况下,这可能是最佳选择 - 只需确保您通过 GAME/data/ 中的启动器脚本而不是 $arch 目录中的 FTL 二进制文件启动 FTL 即可。
开源视频驱动程序问题
如果您正在使用开源视频卡驱动程序,FTL 可能无法运行。 有两种解决方案:安装专有视频驱动程序或删除(如果您不确定,请重命名)GAME/data/amd64/lib 目录下的库 “libstdc++.so.6”。 这适用于 64 位系统。 如果您使用的是 32 位系统,则必须删除(重命名)位于 GAME/data/x86/lib 中的相同库。
启动时出现伪影,OpenGL 问题
使用开源驱动程序,ATI 显卡(适用于 Radeon 显卡),游戏可能会在屏幕上显示伪影。 使用 MESA_GL_VERSION_OVERRIDE=3.0 %command% 运行游戏
游戏开发大亨
游戏无法启动
您可能会收到关于缺少 libudev.so.0 的错误。
使用 LD_PRELOAD=/usr/lib/libudev.so.1 运行游戏。
Garry's Mod
游戏无法启动
当出现关于缺少 client.so 的错误时,请尝试以下操作
$ cd ~/.steam/root/steamapps/common/GarrysMod/bin/ $ ln -s libawesomium-1-7.so.0 libawesomium-1-7.so.2 $ ln -s ../garrysmod/bin/client.so ./
如果错误提示缺少 libgconf-2.so.4 的库,请安装 lib32-gconfAUR[损坏的链接:未找到软件包]。
大多数菜单工作正常,但带有复选框的菜单(局域网多人游戏,已加载游戏列表)完全无法工作。 这是菜单代码中的一个错误。
如果您喜欢默认菜单样式并且不介意使用 hacky 解决方案:Simon311 编写了代码并提供了修复说明。
如果您不在乎默认菜单样式,并且想要更稳定但功能不完整的解决方案,Facepunch 开发人员 robotboy655 编写了一个新菜单。
尝试加入服务器后游戏崩溃
在加入服务器、下载资源等过程中,游戏似乎会卡住,过一段时间后,可能在“发送客户端信息”部分期间,游戏崩溃,通常没有任何错误消息。错误没有提供太多信息,但是,Garry's mod 的进程被终止了。
当加入具有许多插件的服务器(特别是 DarkRP 服务器)时,此问题更频繁发生。
该问题似乎与 GPU 性能较弱有关,并且游戏从服务器超时,因此如果 GPU 是问题所在,将图形设置降低到最低应该可以解决问题。
该问题似乎与 RAM 使用量有关,一旦您达到大约 2GB 的 RAM 使用量,游戏就会崩溃。 具有许多插件的服务器具有更高的 RAM 使用量,将图形设置降低到最低会降低 RAM 使用量并缓解崩溃。
使用实验性的 x86-64 分支可能有助于缓解此问题,但是请记住,某些插件在使用此分支时可能会返回错误。
诸神会注视着你
按照 #OpenSSL 1.0 设置 进行操作。
GRID Autosport
按照 #OpenSSL 1.0 设置 进行操作。
尝试玩游戏时黑屏
使用 LC_ALL=C.UTF-8 运行游戏。
枪炮世界
如果您遇到问题,请查看错误日志
~/.config/unity3d/Muse Games/GunsOfIcarusOnline/Player.log
版本 `CURL_OPENSSL_4' 未找到(/usr/lib/libdebuginfod.so.1 需要)
安装软件包 lib32-libcurl-compat 并在您的 shell 环境的 LD_PRELOAD 中包含 'libcurl.so.4',如下所示
export LD_PRELOAD=$LD_PRELOAD libcurl.so.4
砍杀
尝试加载游戏时崩溃
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
黑客进化
需要 lib32-sdl2_mixer。
半条命
文本不可见
半条命使用微软字体来显示文本,请参阅 微软字体 以了解安装方法。
半条命 2 和 эпизоды
西里尔字体问题
这个问题可以通过删除 “Helvetica” 字体来解决。
锤击城堡
游戏无法通过 Steam 启动
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
没有声音
锤击城堡打开时弹出一个弹窗:“声音错误”——“无法初始化 OpenAL,将不会播放声音。 请尝试更新您的 OpenAL 驱动程序。”
锤击城堡使用的 OpenAL 默认使用 PulseAudio。 要更改它,请将以下行添加到 /etc/openal/alsoft.conf
drivers=alsa,pulse
这样,锤击城堡将使用 ALSA。 此解决方案在 这里 找到。
丰收:巨型遭遇战
依赖项
- lib32-sfmlAUR[损坏的链接:未找到软件包]
- lib32-libjpeg6-turbo
- lib32-nvidia-cg-toolkit
- lib32-gtk2
- lib32-libvorbis
- lib32-openal
兼容性
如果游戏拒绝启动并使您进入库安装程序循环,请运行 Harvest 可执行文件而不是 run_harvest 脚本。
hatoful boyfriend 鸽子男友
日文文本不可见
安装 wqy-microhei 和 wqy-microhei-lite。
HEARTBEAT
如果启动时出现 FontConfig 错误
遵循 #CrossCode 中描述的相同过程。
HuniePop
游戏启动时崩溃
安装 lsb-release。
光明之魂
控制器无法工作
安装 lib32-sdl2AUR 并使用 LD_PRELOAD=libSDL2.so 运行游戏。
请参阅以下 Steam 社区讨论
建议运行 next_update 分支以获取新的修复程序,但是目前存在 libcurl segfault 错误,导致在没有特殊解决方法的情况下无法启动。
缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
罗马:全面战争 - 重制版
开源驱动程序的加载屏幕卡顿
安装 vulkan-swrast,然后在系统重启后将游戏启动器中的渲染器选项更改为 llvmpipe。
完成后,加载屏幕场景将得到修复,并且对于开源驱动程序应正常加载。
Imperator: Rome
Paradox 启动器在启动后冻结或崩溃。 将您的启动选项设置为
LD_PRELOAD=/usr/lib/libc.so.6 %command%
如果屏幕每隔约 3 秒冻结一次,请运行
# chmod o-rx /dev/input/
玩游戏后,使用以下命令撤消它
# chmod o+rx /dev/input/
The Impossible Game
依赖项
The Inner World
需要 java-commons-codecAUR 以获得声音支持。
按住 Tab 键。
过场动画
游戏有过场动画。 它在您在后院开始实际游戏之前直接以过场动画开始。 要观看这些过场动画,您需要使用 Oracle 的 Java 而不是 OpenJDK。
此外,您还需要软件包 ffmpeg-compat-55AUR。
Steam Overlay 覆盖层似乎存在问题。 尝试直接使用 GAME/TIW_start.sh 运行游戏。
请注意,过场动画会在新窗口中打开。 因此请注意这一点,并切换到新窗口以欣赏影片。
有关详细信息,请参阅 Steam 论坛。
Insurgency
游戏无法启动
设置以下启动选项
LD_PRELOAD='/usr/$LIB/libstdc++.so.6:/usr/$LIB/libgcc_s.so.1:/usr/$LIB/libxcb.so.1:/usr/$LIB/libgpg-error.so' %command%
Interloper
需要 alsa-lib。
游戏无法启动
由于与 Steam Runtime 的 libasound.so.2 不兼容,游戏有时可能会发生段错误。
Invisible Apartment
需要 qt5-multimedia。
游戏无法启动
如果通过 Steam 启动游戏无法运行,请尝试直接在游戏目录中运行 ./ia1。
Joe Danger 2: The Movie
需要 lib32-libpulse。
兼容性
仅在直接从 Humble Bundle 获取游戏并安装 lib32-libpulse 后,游戏才能正常工作。
Kerbal Space Program
请参阅 Kerbal Space Program。
Killing Floor
无法更改屏幕分辨率
如果尝试在游戏中修改分辨率导致您的桌面环境崩溃,请编辑 ~/.killingfloor/System/KillingFloor.ini
[WinDrv.WindowsClient] WindowedViewportX=width WindowedViewportY=height FullscreenViewportX=width FullscreenViewportY=height MenuViewportX=width MenuViewportY=height [SDLDrv.SDLClient] WindowedViewportX=width WindowedViewportY=height FullscreenViewportX=width FullscreenViewportY=height MenuViewportX=width MenuViewportY=height
窗口模式
取消选中选项菜单中的全屏,然后按 Ctrl+g 停止鼠标捕获。
声音断断续续
KillingFloor 自带 OpenAL 库 GAME/System/openal.so。
备份它,安装 openal 或 lib32-openal(如果使用 64 位系统)。
然后将安装的系统库(/usr/lib32/libopenal.so.1 或 /usr/lib/libopenal.so.1)符号链接到 openal.so。
Left 4 Dead 2
缺少中文字体
L4D2 查找 文泉驿 字体以渲染中文文本。 您可以安装提供该字体的软件包,例如 wqy-zenhei 或 ttf-ms-fontsAUR,或者配置 后备字体
/etc/fonts/local.conf (or ~/.config/fontconfig/fonts.conf)
...
<match target="pattern">
<test qual="any" name="family">
<string>WenQuanYi Zen Hei</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Source Han Sans CN</string>
</edit>
</match>
...
游戏光线太暗
游戏内环境光线太暗的原因各不相同,其中之一是未启用独立显卡。
根据多个 Steam 指南,请使用 支持 32 位库 的 Nvidia GPU 运行此游戏。
Lethal League
需要 lib32-glew1.10。
Life is Strange
需要 sdl2_image librtmp0 libidn11 libxcrypt-compat lib32-libxcrypt-compat gconfAUR。
Little Racers STREET
安装 sdl2_mixer。
移动/备份 GAME/lib64/libSDL2_mixer-2.0.so.0。
将 /usr/lib/libSDL2_mixer-2.0.so.0 符号链接到 GAME/lib64/libSDL2_mixer-2.0.so.0。
漫漫长夜
游戏无法启动
64 位版本启动失败。 可以使用游戏目录中的 32 位版本 tld.x86,或者像这样启动 64 位版本
LD_PRELOAD=~/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 ./tld.x86_64
游戏启动,但一些覆盖层文本丢失,并且过场动画显示黑屏
除了上面的命令,还要将以下内容添加到 Steam 启动命令中
-screen-fullscreen 0 -screen-width WIDTH_PIXELS -screen-height HEIGHT_PIXELS
例如,如果您的屏幕分辨率为 1280x720,并且正在从终端(在包含二进制文件的目录中)启动 x64 版本,则完整命令将是
LD_PRELOAD=~/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 ./tld.x86_64 -screen-fullscreen 0 -screen-width 1280 -screen-height 720
从 Steam 启动,完整的游戏启动选项将是
LD_PRELOAD=~/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 %command% -screen-fullscreen 0 -screen-width 1280 -screen-height 720
过场动画仍然是黑屏
关闭显示选项中的垂直同步,和/或将质量选项中的后期特效设置为低,和/或将全局质量选项降低一个档次。
光标消失
转到选项 > 控制,并将鼠标锁定设置为解锁。
仅当您使用(不可见的)鼠标导航时,该选项才可见。 当使用控制器导航时,它不会显示。 一种解决方案是先使用控制器转到选项 -> 控制,然后再切换到鼠标并尝试盲点设置。
侠盗猎车手 V
BattleEye 连接问题
参见 #BattlEye。
修改启动选项以包含 PROTON_BATTLEYE_RUNTIME
PROTON_BATTLEYE_RUNTIME=~/.local/share/Steam/steamapps/common/Proton\ BattlEye\ Runtime/ %command%
在线模式中游戏崩溃
如果您在 GTA Online 中遇到崩溃(例如,在创建新角色时),请设置以下启动选项
PROTON_NO_ESYNC=1 WINEDLLOVERRIDES=winedbg.exe=d %command%
使用 NVIDIA GPU 的图形问题
尝试启动选项: -force-glcore42 -force-clamped
魔法对抗2
无限期卡在启动界面
如果命令 "ip -s link" 的输出长度超过 4096 个字符,游戏将无法启动。这是因为在函数 bitsquid::network_info(char*) 中,他们查询网络信息时,没有正确处理这种情况。有关参考,请参见 此图片。已向上游(Pieces Interactive)报告,但魔法对抗2似乎不再维护。
一个临时的解决方法是包装您的 ip 二进制文件,如下所示
#!/bin/sh
if [ "$*" = "-s link" ]; then
echo "<paste a smaller subset of the normal output>"
else
/path/to/your/real/ip "$@"
fi
忍者印记
声音错误
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
地铁:最后的曙光
在使用 AMD Catalyst 驱动程序的 GNOME 多显示器设置中,游戏不允许您更改其分辨率。一个临时的解决方法是禁用侧显示器。Jason 在 unencumbered by facts 设法使用单个显示服务器使其在他的多显示器设置上工作,但他使用的是 Nvidia。
地铁:2033 Redux
没有声音
没有图像
尝试在 ~/.local/share/Steam/steamapps/common/Metro 2033 Redux/user.cfg 中设置 r_fullscreen off。
中土世界:暗影魔多
漂浮的头
使用 __GL_ShaderPortabilityWarnings=0 运行游戏。
骑马与砍杀:战团
Wayland 下出现段错误(核心已转储)
使用 Xorg 代替,或强制会话使用 xcb 作为 QT_QPA_PLATFORM。
DLC 选择器
需要构建 qt5-tools。
启动时崩溃
设置启动选项为
LD_LIBRARY_PATH="." %command%
一起移动吧
没有声音
安装 lib32-libpulse。删除文件 "Move or Die/Love/linux32/libogg.so.0"
小小星球大冲撞
需要 lib32-openal。
启动时崩溃
如果小小星球大冲撞在 X64 系统上启动时崩溃,请通过将 GAME/run_steam.sh 替换为以下脚本来强制启动 32 位可执行文件
#!/bin/sh ./multiwinia.bin.x86
参见 [19]。
自然选择2
需要 sndio,此外,您还必须执行
$ ln -s /usr/lib/libsndio.so x64/libsndio.so.6.1
在 NS2 目录的根目录下。这是因为 NS2 使用了旧版本的 sndio,但幸运的是它仍然与新版本兼容。
为了更简洁的解决方案,可以尝试通过环境变量 SDL_AUDIODRIVER 设置使用的音频驱动程序。例如,SDL_AUDIODRIVER=sndio 或 SDL_AUDIODRIVER=alsa。
环境变量 SDL_VIDEODRIVER 不能设置为 wayland。如果仍然不起作用,请尝试将 SDL_VIDEODRIVER 设置为 x11。
无人深空
启动时黑屏
编辑 ~/Steam/SteamApps/common/No Man's Sky/Binaries/SETTINGS/TKGRAPHICSSETTINGS.MXML 并将 FullScreen 设置为 false,将 Borderless 设置为 true。
启动时白屏
如果您遇到白屏,看起来游戏似乎冻结了,但实际上并没有。按住 e 继续。
核子王座
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
OneShot
游戏启动失败
此问题发生的原因是游戏使用了过时的库。转到游戏目录并删除 libdrm.so.2、libGLdispatch.so.0、libstdc++.so.6、librt.so.1、libcrypt.so.1 和 libcrypto.so.1.1。这些文件通常在系统上已经安装了等效的版本。
文件 _______ 将不会运行
可执行文件 _______ 从 Documents 文件夹运行时可能会失败。它也存在于游戏目录中,并且可以从那里运行。
在 Wayland 上游戏启动失败
使用 GDK_BACKEND=x11 运行游戏。
缺氧
世界生成卡住
当区域设置使用逗号而不是点来分隔小数时,会发生此问题。
在 steam 中设置启动选项为 LANG=C.UTF-8 %command%。[20]
图形错误、损坏和瓷砖上的线条
这是使用 Zink MESA 驱动程序的结果。如果您全局启用了它,请为此游戏专门禁用它并正常启动它。
পেনুম্বরা: অভারচার
依赖项
窗口模式
没有游戏内选项可以更改为窗口模式,您必须编辑 ~/.frictionalgames/Penumbra/Overture/settings.cfg 来激活它。
找到 FullScreen="true" 并将其更改为 FullScreen="false",之后游戏应该以窗口模式启动。
传送门2
游戏无法启动
几个与 OpenGL 相关的错误(例如 PROBLEM: You appear to have OpenGL 1.4.0, but we need at least 2.0.0! 或 libGL error: driver pointer missing)是由传送门2捆绑了一个旧的 libstdc++ 文件引起的。此错误在使用开源 Radeon 驱动程序 (radeonsi) 时尤其常见。
libstdc 的问题可以通过使用 LD_PRELOAD='/usr/$LIB/libstdc++.so.6' 运行游戏来解决。
分辨率过低
当游戏以分辨率过低而无法进入游戏设置时,使用 -windowed 标志在窗口模式下运行游戏。
缺少非拉丁字体
现象是传送门中没有菜单。传送门和传送门2 使用 Helvetica,将以下行添加到 ~/.config/fontconfig/fonts.conf
<match target="pattern">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Source Han Sans CN</string>
</edit>
</match>
您可以将 "Source Han Sans CN" 替换为您喜欢的且已存在的字体。
监狱建筑师
使用 PulseAudio 或 Pipewire 时出现 ALSA 错误
错误
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
通过安装
根据 PulseAudio#ALSA。
或者,如果通过 Steam 运行游戏,您可以强制游戏通过 proton 运行,这可以解决其他音频错误。
您可以通过 steam 打开游戏的属性来执行此操作,并在“通用”下勾选“强制使用特定的 Steam Play 兼容性工具”,然后从下面的下拉列表中选择一个 proton 版本
游戏仅以安全模式启动
如果游戏无法启动,但 steam 认为它正在运行,则可能是 Paradox 启动器运行不正常。
如果是这种情况,您会发现一些进程在后台运行
ps -ef|grep paradoxlauncher
全部杀死它们,然后按如下方式修改游戏启动选项
LD_PRELOAD=/usr/lib64/libc.so %command%
最终,如果以上选项不起作用,则可以选择跳过它
./PrisonArchitect %command%
注意:即使我们使用另一个可执行文件来启动游戏,也必须在命令末尾添加 %command% 以欺骗 Steam。
僵尸毁灭工程
没有声音
将 /usr/lib 添加到 LD_LIBRARY_PATH 的前面。
在游戏中,转到选项并将所有音频设置为适当的音量。
红衫
如果您使用 PulseAudio,则需要 lib32-libpulse。
泰坦复仇
需要 libxtst 和 lib32-libxtst。
古墓丽影:崛起
在 X 会话中运行。
游戏无法启动
如果在 X 会话中运行不可用或不首选,另一种替代方法是执行以下操作
touch /usr/local/bin/pulseaudio chmod 755 /usr/local/bin/pulseaudio
然后在文件 /usr/local/bin/pulseaudio 中 - 您将需要以下内容
#!/bin/sh exit 0
在此之后,根据一些游戏测试人员的说法,发现游戏已在 Linux 上加载。
雨中冒险
请参阅 #缺少 libcurl.so.4 或未找到版本 CURL_OPENSSL_3。
摇滚破坏者DX:导演剪辑版
需要 lib32-libcaca。
黑道圣徒3
无法保存自定义显示设置
尽管游戏设置菜单允许选择自定义显示设置,但游戏可能在保存它们时遇到问题。
在这种情况下,请在游戏的 display.ini 文件中手动调整这些设置,文件位于
"${HOME}/.local/share/Steam/steamapps/common/Saints Row the Third/display.ini"
此文件中的注释很好地解释了所有设置和可接受的值。
游戏中屏幕分辨率不正确
当游戏在多显示器环境下启动时,可能会发生这种情况,其中一些显示器已旋转等,因此游戏错误地检测到可用的屏幕分辨率。
在这种情况下,请在 display.ini 文件中调整 ResolutionWidth 和 ResolutionHeight 选项。此外,必须设置选项 VerifyResolution = false。
黑道圣徒4
更新到新的 Nvidia 驱动程序后游戏启动失败
使用附加到 LD_PRELOAD 的 /usr/lib32/libGLX_nvidia.so 运行游戏。
游戏在使用 mesa 驱动程序时导致 GPU 锁死
当尝试在使用开源驱动程序的某些 AMD 硬件上玩黑道圣徒4时,可能会导致 GPU 锁死: Bug 93475。
一种解决方法是使用 R600_DEBUG=nosb 运行游戏。
英雄萨姆3:BFE
没有音频
尝试运行
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/ # ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/
如果这不起作用,请尝试按照 Steam 社区 的建议调整 ~/.alsoftrc(英雄萨姆3:BFE 使用 OpenAL 输出声音)。如果您未使用 Pulse Audio,您可能需要编写以下配置
~/.alsoftrc
[general] drivers = alsa [alsa] device = default capture = default mmap = true
SJ-19 学会爱
如果游戏在启动时崩溃并在 Steam 的输出中出现此错误
/home/username/.local/share/Steam/steamapps/common/SJ-19 Learns To Love/sj-19-linux/sj-19-learns-to-love.x86_64: error while loading shared libraries: libsteam_api.so: cannot open shared object file: No such file or directory
右键单击 steam 中的游戏,选择属性,并在启动选项中设置此项
LD_LIBRARY_PATH=./sj-19-linux %command%
杀戮尖塔
如果游戏无法启动或在启动时崩溃,请安装 xorg-xrandr。
如果游戏崩溃并出现 xrandr 堆栈跟踪
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.lwjgl.opengl.XRandR.findPrimary(XRandR.java:326) at org.lwjgl.opengl.XRandR.ScreentoDisplayMode(XRandR.java:315)
这很可能是由于 LWJGL 中的已知错误 导致的。解决方法是将 xrandr 配置更改为仅包含分辨率(例如:2560x1440_60.00 应变为 2560x1440。
如果游戏不移动接收器输入,您可以编辑以下文件以允许接收器移动
~/.alsoftrc
[pulse] allow-moves=yes
火柴人大乱斗
如果游戏无法启动,请尝试附加 PROTON_USE_WINED3D=1 %command% 以强制使用 WINE direct3D。为此,您必须安装 wine。
Songbringer
Wayland 启动错误
安装 glfw 并使用 LD_PRELOAD=/usr/lib/libglfw.so.3 运行游戏。
太空海盗和僵尸
需要 lib32-openal。
没有音频
尝试运行
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/ # ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/
如果这不起作用,请尝试按照 Steam 社区的建议调整 ~/.alsoftrc(英雄萨姆3:BFE 使用 OpenAL 输出声音)。如果您未使用 Pulse Audio,您可能需要编写以下配置
~/.alsoftrc
[general] drivers = alsa [alsa] device = default capture = default mmap = true
星尘
依赖项
游戏崩溃
随附的 x86 版本的星尘在 x64 上无法使用游戏自己的 libSDL* 文件,并且崩溃并输出一些奇怪的信息。
要解决此问题,只需从游戏目录中删除三个文件 libSDL-1.2.so.0、libSDL_image-1.2.so.0、libSDL_mixer-1.2.so.0。
分裂
需要 glu。
史丹利的寓言
游戏无法启动
正如 Steam 商店页面中所讨论的,从游戏文件夹中删除 bin/libstdc++.so.6。
影子战术:将军之刃
依赖项
星露谷物语
无法移动或输入文本
在游戏中,您被困在床上,因为您无法移动角色,或者在开始新游戏时无法在输入字段中输入文本。这是游戏捆绑的 SDL2 库的一个错误。
安装 sdl2AUR。
修改此配置行
~/.steam/steam/steamapps/common/Stardew\ Valley/MonoGame.Framework.dll.config
<dllmap dll="SDL2.dll" os="linux" cpu="x86-64" target="./lib64/libSDL2-2.0.so.0"/>
改为这样(目标开头句点被删除)
~/.steam/steam/steamapps/common/Stardew\ Valley/MonoGame.Framework.dll.config
<dllmap dll="SDL2.dll" os="linux" cpu="x86-64" target="/lib64/libSDL2-2.0.so.0"/>
钢铁风暴:烈火复仇
以黑屏启动
游戏默认尝试以 1024x768 的分辨率在全屏模式下启动,这在某些设备上不起作用(例如带有 Intel hd4000 视频的 Samsung Series9 笔记本电脑)。
使用 -window 标志在窗口模式下运行游戏。然后在游戏中更改分辨率。
群星
没有窗口打开,只有声音
在使用部分 AMD GPU 和 mesa 组合时会发生这种情况,在 ~/.local/share/Paradox Interactive/Stellaris/settings.txt 中设置 multi_sampling=0。
在某些窗口管理器(例如 Xmonad)中,您应该设置 fullScreen=no。
立即崩溃到桌面
Steam 使用 Proton 而不是 Linux Runtime
要诊断,请在终端中运行 Steam 并启动 Stellaris。忽略任何提及 "LD_PRELOAD" 的错误,并查找此错误
/home/me/.local/share/Steam/steamapps/common/Stellaris/dowser.exe: /home/me/.local/share/Steam/steamapps/common/Stellaris/dowser.exe: cannot execute binary file
如果您看到该错误,则解决方案是强制 Steam 为 Stellaris 使用 Linux runtime
- 右键单击 Stellaris 并选择“属性...”
- 选择“兼容性”选项卡。
- 选择“强制使用特定的 Steam Play 兼容性工具”。
- 选择“Steam Linux Runtime 1.0 (scout)”
缺少 libnss_sss.so.2
Stellaris 似乎需要 32 位的 libnss_sss.so.2 才能运行。您可以运行以下命令来确认这是否是您的问题
# strace ~/.local/share/Steam/steamapps/common/Stellaris/stellaris 2>&1 | grep sss
并查看您是否得到类似以下的输出
# openat(AT_FDCWD, "/usr/lib32/tls/i686/sse2/libnss_sss.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
如果这确实是您的问题,请从 Ubuntu 的存储库下载 libnss-sss 软件包 [21],从下载的软件包中提取 libnss_sss.so.2,并将其放置在 ~/.local/share/Steam/steamapps/common/Stellaris。游戏现在应该可以正常加载。
在 Wayland 上游戏立即崩溃到桌面
将 SDL_VIDEODRIVER=x11 附加到您的启动选项。
启动器是空白的
这是在 Machine Age 扩展之后 Linux 上经常出现的问题。如果这种情况发生在您身上,请备份您所有的自定义帝国和存档(位于 $XDG_DATA_HOME/Paradox Interactive/Stellaris/ 和云存档位于 $XDG_DATA_HOME/Steam/userdata/(your_user_ID)/281990/remote/)。如果您没有安装其他 Paradox 游戏,请删除 $XDG_DATA_HOME/ 下的 Paradox Interactive 文件夹。
如果您安装了其他 Paradox 游戏,则不要删除整个 Paradox 文件夹。只需删除 Stellaris 文件夹和 launcher-v2 文件夹。
尝试再次运行游戏。启动器应该在重新下载后正常打开。一旦游戏正常启动,关闭游戏并将您的帝国和存档放回您之前取出的文件夹中。
史蒂芬香肠卷
没有声音
如果使用 原生库 并且安装了 libpulse,Unity 可能会尝试使用该库进行声音并失败。要测试这是否是问题,请尝试删除 libpulse 或重命名名为 libpulse-simple* 的软件包文件。要查看哪些 libpulse 文件相关,请运行
$ pacman -Qql libpulse | grep /usr/lib/libpulse-simple
/usr/lib/libpulse-simple.so /usr/lib/libpulse-simple.so.0 /usr/lib/libpulse-simple.so.0.1.0
如果重命名其中任何一个文件对您有效,您可以继续执行以下说明(恢复您刚刚做的任何重命名)。浏览到游戏的目录
$ cd "$HOME/.steam/root/steamapps/common/Stephen's Sausage Roll"
并创建一个子目录,我们可以用它来保存 0 字节的类似库文件
$ mkdir noload/
使用 touch 创建我们希望动态链接器跳过的上述文件的 0 字节版本,例如
$ touch noload/{libpulse-simple.so,libpulse-simple.so.0,libpulse-simple.so.0.1.0}
libpulse-simple.so.0 文件。在您创建了这些 0 字节文件之后,您现在可以尝试直接运行游戏二进制文件,告诉动态链接器使用我们的 0 字节文件
$ LD_LIBRARY_PATH="noload/:$LD_LIBRARY_PATH" ./Sausage.x86_64
如果一切都按预期工作,请将 noload/ 前置到您的 LD_LIBRARY_PATH。
同样,这应该有效,因为 Steam 会检查相对于游戏目录的 noload/ 目录。动态链接器应该遵守 $LD_LIBRARY_PATH 变量,并且无法加载必要的 libpulse 文件。然后游戏应该回退到普通的 ALSA。
超级兄弟:剑与巫术 EP
依赖项
- lib32-glu
- 如果您使用 PulseAudio,则需要 lib32-libpulse
游戏捆绑了一个过时的 libstdc++ 版本,这阻止了游戏启动。 [22] 当您从终端运行 Steam 和 S&S 时,可以观察到以下情况
libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast
要解决此问题,请删除 GAME/lib/libstdc++.so.6*。之后,游戏将使用来自 Steam 的 libstdc++。
System Shock 2
当使用原生客户端运行时,您会收到这些错误
C:\windows\system32\winedevice.exe: symbol lookup error: /usr/lib32/libX11.so.6: undefined symbol: xcb_wait_for_reply64 C:\windows\system32\wineboot.exe: symbol lookup error: /usr/lib32/libX11.so.6: undefined symbol: xcb_wait_for_reply64
只需删除或重命名它附带的 libxcb 库
mv /mnt/olhdd/steam/steamapps/common/SS2/lib/libxcb.so.1{,.old}
mv /mnt/olhdd/steam/steamapps/common/SS2/lib/libxcb.so.1.1.0{,.old}
游戏无法启动
如果您遇到游戏无法启动的情况,请执行以下操作
从主 steam common 文件夹中的 "SS2/Bin" 文件夹剪切并粘贴 libsteam_api.so,并将其转移到 "SS2" 主游戏文件夹,而不是子文件夹 "SS2/bin"
剪切并粘贴后,将 LD_PRELOAD='/usr/$LIB/libxcb.so.1' %command% 放入启动选项
一旦所有这些都已实施,在 Steam 上点击播放后,游戏应该可以工作了。
分辨率修复
您可能会在此游戏的 Steam 版本中遇到一些分辨率问题,全屏模式下无法正常工作。执行以下操作
在 SS2 文件夹中打开 cam.cfg,您可能需要在游戏文件夹中使用搜索模式搜索它
根据您的分辨率放置 game_screen_size 1024 768 或 game_screen_size 1920 1080,并将 game_full_screen 1 放入 cam.cfg 文件的底部。
然后转到 cam_ext.cfg,并在显示设置旁边,在使用 use_d3d_display 选项旁边放置一个分号前缀,使其看起来像这样 ;use_d3d_display,然后它应该正常工作,不会超出屏幕,并且应该在活动主屏幕内保持全屏。
Sven Co-op
游戏中没有声音 (FMOD ex 错误代码 60)
如果使用 pipewire,请确保您已安装 lib32-pipewire
Tabletop Simulator
游戏中不显示 CJK 字符
安装 wqy-microhei 和 wqy-microhei-lite。
Team Fortress 2
截至 2023 年 9 月的更新,游戏将没有正确版本的 tcmalloc,并且将在启动期间静默崩溃。
按照 #tcmalloc.cc error in Source 1 games 中概述的修复方法进行操作
HRTF 设置
假设 HRTF(头部相关传输函数)已在操作系统中正确设置,除非您禁用原始处理,否则 HRTF 将不会启用。为此,请将此添加到您的 autoexec
dsp_slow_cpu 1
为了获得最佳效果,还要更改以下内容
snd_spatialize_roundrobin 1 dsp_enhance_stereo 0 snd_pitchquality 1
加载画面冻结
如果您是非英语(口语)用户,您必须在 locale.gen 中启用 "en_US.UTF-8"!之后生成一个新的 locale。
没有音频
如果您的系统中没有 PulseAudio,则会发生这种情况。如果您想使用 ALSA,您需要使用 SDL_AUDIODRIVER=alsa 直接启动 Steam 或游戏(来自 SteamCommunity)。
如果仍然无效,您可能还需要设置环境变量 AUDIODEV。例如 AUDIODEV=Live。使用 aplay -l 列出可用的声卡。
纹理加载缓慢
如果您正在使用 Chris' FPS Configs 或任何其他 FPS 配置,您可能已将 mat_picmip 设置为 2。这会产生多个线程用于纹理加载,这可能会在 Linux 上,尤其是在替代内核上导致更多的抖动和延迟。尝试将其设置为 -1,默认值。
在集成 Intel Atom/BayTrail HD Graphics 上加载画面时出现“Invalid color format”错误
将以下内容添加到游戏启动选项: -force_vendor_id 0x10DE -force_device_id 0x1180
这些选项欺骗游戏引擎,使我们拥有 Nvidia GPU,而不是 Intel/AMD。
鼠标灵敏度错误
TF2 附带旧版本的 libSDL2.so。按照 mastercomfig 的指南有助于使用 Steam Runtime 而不是使用捆绑的 libSDL2 版本,并通过使用 Distribution 附带的版本来更新 Steam Runtime。
Terraria
请参阅 发布公告 的已知问题与解决方法部分。
输入问题
此问题的症状是:静止站立后移动时,您的角色速度似乎会发生变化,如果穿着跑鞋,它们不会激活。使用物品进行二段跳时,有时即使您只跳了一次,也会进行二段跳。上下绳索似乎很慢/断断续续。
解决方案是预加载系统 SDL2 库:LD_PRELOAD='/usr/$LIB/libSDL2-2.0.so:/usr/lib32/libSDL2-2.0.so' 更多信息:Terraria 论坛[死链接 2021-05-17 ⓘ]
This War of Mine
游戏无法启动
发生这种情况是由于与较新版本的 lib32-curl 不兼容。要解决此问题,请将您的 启动选项 设置为
LD_PRELOAD=./libcurl.so.4 %command%
Steam 原生声音故障
捆绑的 libOpenAL 可能无法正常工作,尝试将 /usr/lib32/libopenal.so 符号链接到 GAME/libOpenAL.so。
Ticket to Ride
依赖项
- lib32-gstreamer0.10-baseAUR[链接失效:找不到软件包]
- lib32-pangox-compatAUR
由于 lib32-gstreamer0.10-base 很难构建,您可以为此软件包使用 multilib-alucryd 存储库
The Tiny Bang Story
缺少 libGLEW.so.1.6
# ln -s /usr/lib32/libGLEW.so.1.10.0 /usr/lib32/libGLEW.so.1.6
古墓丽影 (2013)
游戏立即关闭
古墓丽影非常依赖 Steam runtime,最简单的解决方案是使用 runtime 运行它。
如果这不能解决问题,请查找主可执行文件的共享库依赖项。进入您的 steam 文件夹并执行
$ ldd steamapps/common/Tomb\ Raider/bin/TombRaider | grep found
注意所有缺少的库,并尝试从标准存储库和 AUR 安装它们。如果在那之后您仍然缺少库,您可以在网上搜索它们并下载相应的打包 .rpm x86 (32 位) 文件,并将它们提取到 steamapps/common/Tomb\ Raider/lib/i686/ 中,以提供缺少的库。再次运行 ldd,看看您是否安装了所有必要的库。如果没有更多缺少的库,并且添加的库的版本、体系结构和 32/64 位字长正确,并且放置在链接器的搜索路径之一上,那么游戏应该可以工作。
另一种替代方法是在启动选项中执行以下操作
LD_LIBRARY_PATH="$HOME/.local/share/Steam/steamapps/common/Tomb Raider/lib/i686:$LD_LIBRARY_PATH" %command%
Steam 控制器在游戏中无法工作
如果您的 Steam 控制器被正确识别和配对,但在游戏中仍然无法工作,请尝试以下操作
- 在 Steam 中,非 Big Screen 模式下,转到设置 > 帐户 > Beta 参与 > 更改...,然后在下拉选择框中选择 Steam Beta Update
- 重启 Steam
- 转到 Big Screen 并启动古墓丽影
正确识别意味着您可以控制桌面鼠标和 Big Picture 模式下的 Steam,并且控制器显示在 Big Picture 设置中。
Failed to Initialize Direct3D
这可能在切换显示器时发生。
您需要手动编辑首选项文件(位于 ~/.local/share/feral-interactive/Tomb Raider/ 中),并将 ExclusiveFullscreen 选项更改为 0。在此之后,您应该能够成功启动游戏(之后您可以退出并将该选项恢复为 1 以恢复全屏)。
如果存在任何使用 TUN 设备的活动 VPN,Linux 版古墓丽影将无法启动。这是因为它对 getifaddrs() 的返回值做出了不正确的假设。它调用 getifaddrs() 的唯一原因是获取版本 1 UUID 的 MAC 地址,并在 getifaddrs() 完全不返回接口时回退到不同的算法。
下面列出了一种针对这种情况的可选解决方案,它可以修复古墓丽影对 getifaddrs() 输出所做的假设(请参阅 tomb_raider_vpn_fix/releases 获取原始代码)
#include <stdio.h>
#include <errno.h>
#include <ifaddrs.h>
int getifaddrs(struct ifaddrs **ifap) {
fprintf(stderr, "\n\n\n---------------- dummied out getifaddrs()!\n\n\n");
*ifap = NULL;
return 0;
}
void freeifaddrs(struct ifaddrs *ifap) {
/* do nothing */
}
使用以下命令编译它
$ gcc -m32 -fPIC -shared file_name.c -o file_name.so -ldl -Wall
然后使用以下启动选项
env LD_PRELOAD=$LD_PRELOAD:path/to/file_name.so %command%
Torchlight 2
Libfreetype/libfontconfig 不兼容
如果您在启动游戏(例如 Torchlight 2 或 Civilization IV)时遇到问题,这可能是因为您使用的 libfontconfig 版本比游戏当前支持的版本更新。
右键单击 Steam 中的游戏,并将以下内容设置为其启动选项
LD_PRELOAD=/usr/lib/libfreetype.so.6 %command%
然后尝试启动游戏。
或者,重命名或删除这两个文件将强制它使用您的系统库
Torchlight 2/game/lib/libfreetype.so.6 Torchlight 2/game/lib64/libfreetype.so.6
区域设置不兼容
一些用户报告说,如果您在您的区域设置中没有 en_US.UTF8,Torchlight 2 将无法工作。
仔细检查您是否已在 Steam 安装要求 中生成了所需的区域设置。
Tower Unite
图形故障
这是一个已知问题,发生的原因是开发人员尚未将着色器移植到 Linux。为了最大限度地减少故障并使游戏可玩,请将 -opengl4 添加到您的 启动选项,并在游戏设置中将海洋质量设置为“土豆”,效果质量设置为“低”。
城镇 / 城镇 Demo
需要 Java。
Transistor
启动时崩溃 / FMOD 绑定崩溃 / 音频问题
使用以下命令运行游戏
LD_PRELOAD='/usr/lib/libstdc++.so.6:/usr/lib/libgcc_s.so.1:/usr/lib/libxcb.so.1:/usr/lib/libasound.so.2'
否则,通过 shell 运行游戏并为 FMOD 设置正确的音频设备,如 [23] 中所述。
另外,请查看此线程 [24]。
Transmissions: Element 120
依赖项
故障排除
确保您已安装所有库。除了 Steam runtime 要求的标准集之外,游戏还需要一些额外的库。指示这一点的典型错误消息是
AppFramework : Unable to load module vguimatsurface.so!
要查找缺少的依赖项,请进入游戏目录并运行
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so
查找显示 not found 的条目。
Transport Fever 2
游戏无法启动
重命名或删除游戏目录中的以下文件(~/.steam/steam/steamapps/common/Transport Fever 2),如 [25] 中所述
- libstdc++.so.6
- libstdc++.so.6.0.25
Trine 2
声音
如果声音播放断断续续,请尝试
/etc/openal/alsoft.conf
drivers=pulse,alsa frequency=48000
分辨率
如果在使用双显示器设置时游戏分辨率不正确,并且您看不到整个窗口,请编辑 ~/.frozenbyte/Trine2/options.txt 并将选项 ForceFullscreenWidth 和 ForceFullscreenHeight 更改为您想要玩游戏的显示器的分辨率。
海岛大亨 5
启动时只有声音,屏幕空白
使用 MESA_GL_VERSION_OVERRIDE=4.0 MESA_GLSL_VERSION_OVERRIDE=400 运行游戏。
Unbound: Worlds Apart
如果您的控制器无法工作,请尝试在您的库中选择游戏,点击右侧的齿轮图标,然后点击属性、控制器,并在下拉菜单中选择禁用 Steam 输入。
Unity of Command
需要 lib32-pango。
方块
如果显示方块而不是文本,请尝试删除 GAME/bin/libpangoft2-1.0.so.0。
没有音频
如果您收到此错误
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so
尝试运行
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/ # ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/
Unity3D
基于 Unity3D 引擎的游戏,例如War For The Overworld 或 Pixel Piracy,可能需要软件包 lsb-release 才能识别到它们在 Linux 上运行并正常工作。
区域设置
用 C# 制作的游戏通常在某些区域设置(例如俄语、德语)中存在问题,因为开发者没有指定与区域无关的数字格式。这可能导致某些游戏屏幕仅部分加载、在线功能出现问题或其他错误。
为了解决这个问题,请使用 LC_ALL=C.UTF-8 运行游戏。
受影响的游戏:FORCED, Gone Home, Ichi, Nimble Quest, Syder Arcade。
Unity 5 声音问题
Unity 5 中的声音系统已更改,为了能够玩用它创建的游戏,您很可能必须安装并运行 PulseAudio。
另一种解决方案是禁用 Steam 运行时:在游戏的启动选项中,写入:LD_LIBRARY_PATH="" %command%
另一种解决方案是使用 pulsenomoreAUR 阻止 Unity 尝试使用 PulseAudio。安装完成后,使用以下内容作为启动选项 :/usr/bin/pulsenomore %command%
受影响的游戏:Kerbal Space Program, SUPERHOT, ClusterTruck
全屏模式下游戏在错误的显示器上启动
不支持显示器选择的 Unity 游戏很可能会在错误的显示器上启动游戏。
问题在于 Unity 游戏将默认参数 <pref name="UnitySelectMonitor" type="int">-1</pref> 写入游戏配置文件。
这将导致游戏在非主显示器上启动。
当将值更改为相应游戏的 <pref name="UnitySelectMonitor" type="int">0</pref> 时,游戏将在正确的(主)显示器上启动。
Unity 游戏配置文件通常位于 ~/.config/unity3d/CompanyName/ProductName/prefs。
受影响的游戏:Cities: Skylines, Tabletop Simulator, Assault Android Cactus, Wasteland 2, Tyranny, Beat Cop。
请注意,某些游戏不支持设置该参数,它将被简单地忽略。Pillars of Eternity、Kentucky Route Zero、Sunless Sea 就是这种情况。
中文/日文/韩文显示错误
安装 wqy-microhei 和 wqy-microhei-lite。然后
#fc-cache -fv
游戏没有响应
将以下行添加到您的启动选项
SDL_DYNAMIC_API=/usr/lib/libSDL2-2.0.so %command%
在 Wayland 上没有窗口打开
请参阅 Unity3D#No window opens: Desktop is 0 x 0 @ 0 Hz。
Unrest
需要 fluidsynth。
Volgarr the Viking
删除游戏目录中的 lib 目录以消除 libGL 错误。
战争雷霆
没有音频
如果在启动游戏后没有音频,请安装 pulseaudio-alsa。
空白屏幕
如果在启动时出现绿色或空白屏幕,请使用 MESA_GL_VERSION_OVERRIDE=4.1COMPAT 运行游戏。[26][死链 2023-07-30 ⓘ] [27][死链 2020-04-03 ⓘ]
启动器无法自动关闭
通过 Steam 运行时,必须设置启动选项,否则战争雷霆启动器在游戏退出时不会自动关闭。这样做会阻止它在 Steam 社区上报告为正在运行的游戏,更重要的是阻止它在后台占用 CPU 和 RAM。在 Steam 上的战争雷霆的启动选项/参数中放入 XMODIFIERS="" %command%。
Victor Vran
启动失败
游戏可能会在启动时崩溃,并打印以下(或类似的)控制台信息
Auto configuration failed 4034673992:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory
将以下行添加到您的启动选项
OPENSSL_CONF=/dev/null %command%
战锤 40,000:战争黎明 II
依赖项
启动脚本没有指向 libasound.so.2 的正确方向。
要修复它,请打开 GAME/DawnOfWar2.sh 并替换以下行
HAS_LSB_RELEASE=$(command -v lsb_release)
if [ -n "${HAS_LSB_RELEASE}" ] && [ "$(lsb_release -c | cut -f2)" = "trusty" ]; then
LD_PRELOAD_ADDITIONS="/usr/lib/x86_64-linux-gnu/libasound.so.2:${LD_PRELOAD_ADDITIONS}"
fi
替换为
LD_PRELOAD_ADDITIONS="/usr/lib64/libasound.so.2:${LD_PRELOAD_ADDITIONS}"
废土 2
如果废土 2 在您尝试启动时立即退出,则可能是系统文件描述符不足。要增加描述符限制,请编辑 /etc/security/limits.conf 并添加行
* hard nofile 524288
然后重启以使新限制生效,废土 2 现在应该可以启动,并且此设置也可能修复其他游戏。
We Were Here
启动时卡在黑屏或徽标
将 -screen-fullscreen 0 添加到启动选项。[28]
Worms W.M.D
游戏包含一个脚本,其中包含在 Run.sh 脚本中的次要解决方法,但是,仅此解决方法通常不起作用。游戏似乎正在尝试使用依赖于过时库的库。它还依赖于 libcurl-gnutls。游戏不太可能在现代系统上运行或再次由开发者更新。
因此,需要编辑脚本。目前(2024 年 2 月),以下内容在系统上有效,但这可能随时更改(根据需要编辑 STEAM_RUNTIME 和 WORMSWMDINSTALLDIR)
Run.sh
#!/bin/bash
export LOGFILE=${HOME}/wormswmd.log
export LC_ALL=C.UTF-8
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime
export WORMSWMDINSTALLDIR=${HOME}/.steamapps/steamapps/common/WormsWMD
export LD_PRELOAD="$(
printf "%s " "$WORMSWMDINSTALLDIR"/lib/libQt5*.so* \
${HOME}/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
${HOME}/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libwrap.so.0 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libpulse.so.0 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libjson.so.0 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libpulsecommon-1.1.so \
lib/libicuuc.so.56
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64 >> $LOGFILE
现在游戏应该可以使用“Play Worms W.M.D (Run.sh)”选项从 Steam 运行。
您也可以尝试直接运行 Worms W.M.Dx64,但这不太可能起作用,因为上述原因,或者从终端运行脚本 Run.sh 以查看如果上述脚本对您不起作用,它当前缺少哪些库。
如果游戏在播放介绍影片后崩溃,请将 Steam Runtime dbus 库添加到游戏的库目录(但这已经包含在示例 Run.sh 中的 LD_PRELOAD 中)
$ ln -s ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/*dbus* ~/.steam/steam/steamapps/common/WormsWMD/lib
另请参阅 Steam 社区讨论 [29]、[30] 和 [31]。
Steam 覆盖层目前似乎无法工作,可能是游戏仍在查找一些不兼容的库。
在某些系统上,存在地形错误,其中地形中的孔洞未正确渲染,蠕虫可能会意外地穿过地形掉落。这些错误会使游戏在许多情况下无法玩,并且没有已知的修复方法。
巫师 2:国王刺客
依赖项
游戏无法启动
当 SDL 设置为使用 wayland 时,游戏将无法启动。您可以通过在 steam 中添加以下启动选项,仅让游戏在 x11 中运行
$ SDL_VIDEODRIVER=x11 %command%
如果游戏无法运行,请启用错误消息
$ LIBGL_DEBUG=verbose ./witcher2
Wizardry 6: Bane of the Cosmic Forge
需要 DOSBox。
要修复启动时的崩溃,请打开 GAME/dosbox_linux/launch_wizardry6.sh 并
- 注释掉行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs - 将以
exec ./dosbox开头的行更改为exec dosbox
World of Goo
更改分辨率
要更改游戏分辨率,请编辑 GAME/properties/config.txt 中的 Graphics display 部分。例如
<!-- Graphics display --> <param name="screen_width" value="1680" /> <param name="screen_height" value="1050" /> <param name="color_depth" value="0" /> <param name="fullscreen" value="true" /> <param name="ui_inset" value="10" />
X3: Terran Conflict
游戏启动时崩溃
游戏可能会在启动时崩溃,因为它链接到 libz 版本 1.2.9,而 Arch Linux 中此库的最新版本更高。在这种情况下,终端中会出现以下消息
./X3TC_config: lib/libz.so.1: version 'ZLIB_1.2.9' not found (required by /usr/lib32/libpng16.so.16
重命名或删除 lib/libz.so.1 可能会有所帮助。
X Rebirth
游戏启动时崩溃
游戏可能会在启动时崩溃,因为它链接到游戏的 shadergl 函数。在 .../steamapps/common/X Rebirth/shadergl/shaders/common.fh 文件中执行以下操作。
--- ./common.fh.orig +++ ./common.fh
@@ -574 +574 @@ - /* OUT_COLOR.rgb *= 0.0001; OUT_COLOR.rgb += half3(specstr);/**/ \ + /* OUT_COLOR.rgb *= 0.0001; OUT_COLOR.rgb += half3(specstr);*/ \
@@ -622 +622 @@ - /* OUT_COLOR.rgb *= 0.0001; OUT_COLOR.rgb += LightColor.xyz/ 10;/**/ \ + /* OUT_COLOR.rgb *= 0.0001; OUT_COLOR.rgb += LightColor.xyz/ 10;*/ \
实施此解决方法后,游戏应正常加载。
XCOM
依赖项
- librtmp0
- sdl2_image(启用游戏内键盘功能需要)
启动时挂起
如果您正在运行 混合图形 系统,请尝试
__GL_THREADED_OPTIMIZATIONS=0 primusrun %command%
Intel HD 上的图形故障
XCOM: Enemy Unknown 可能无法识别 Steam 运行时附带的 SDL2 共享库。检查二进制文件是否找到所有必需的文件,并在必要时安装缺少的软件包 (sdl2AUR 和 sdl2_image)。
ldd binaries/linux/game.x86_64
XCOM 2
无法使用 steam native 启动
需要 libgconf-2.so.4,这在 arch 存储库中不可用,从 steams 运行时加载它似乎有效。
LD_PRELOAD="$HOME/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libgconf-2.so.4" %command%
无法启动,需要命令行启动选项
如果在游戏文件夹中具有 libgconf-2.so.4 但游戏仍然无法工作,请将以下内容放入启动选项中。
LD_LIBRARY_PATH=./lib/x86_64/:../lib/x86_64/ %command% -allowconsole
如果以上 Steam 命令对您不起作用,则以下方法可能会作为替代方案起作用。
LD_LIBRARY_PATH=/usr/lib:$HOME/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/:$HOME/.steam/steam/steamapps/common/XCOM\ 2/lib/x86_64/ %command%
反作弊
反作弊软件是现代游戏的常见组件。有许多反作弊实现,其中大多数针对 Windows。有些可能无需任何进一步配置即可工作。请查阅 are we anti cheat yet,以获取使用反作弊的游戏的全面且众包的列表及其与 GNU/Linux 或 Wine/Proton 的兼容性。
BattlEye
BattleEye 是侠盗猎车手 Online 使用的跨平台反作弊软件。本机运行时二进制文件可以直接从 Steam 商店安装。