Steam
此页面解释了如何在 Alpine Linux 上运行 Valve 公司的流行游戏分发平台 Steam。
平台支持
Steam 需要 glibc 才能运行,因此无法在 Alpine Linux 上原生运行。通常的解决方法是使用容器或虚拟机。
最简单的方法是在由 Flatpak 管理的容器内运行它。
通过 Flatpak 安装
确保您已安装 Flathub 仓库。
# apk add flatpak $ flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo $ flatpak --user install com.valvesoftware.Steam
安装后,可以使用 Steam 的 .desktop 文件或在命令行启动 Steam
$ flatpak run com.valvesoftware.Steam
故障排除
我的控制器未被检测到
默认情况下,Steam 没有读取控制器的权限。可以通过安装来自官方 Steam 包的 udev 规则来修复此问题,但 udev 规则也作为 Alpine 软件包提供。
# apk add steam-devices
这些 udev 规则依赖于 TAG+="uaccess"
,因此仅在使用 Elogind 时才有望可靠地工作。
SteamVR 无法启动
SteamVR 可能无法开箱即用,并会给出各种错误。Steam 尝试通过在 SteamVR 二进制文件上设置正确的 capabilities 来自行修复此问题,但这在 Flatpak 中不起作用。相反,我们将需要手动执行此操作。
# setcap CAP_SYS_NICE+ep ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
然后重启 Steam。
在 Flathub 仓库 中有一个关于此问题的 issue。
Steam - 错误:OpenGL GLX 扩展不被显示器支持
添加 Mesa gallium 驱动并重启您的系统。
# apk add mesa-dri-gallium
eventfd:打开文件过多
由于允许打开的文件描述符数量较少,Proton 游戏可能会在启动后不久崩溃。可以通过禁用 esync 来解决此问题,但许多游戏在没有 esync 的情况下性能会明显下降。相反,应该增加用户限制。为了做到这一点,您将需要 PAM 和启用 PAM 登录。
将以下内容添加到 /etc/security/limits.conf
@users hard nofile 524288
groups
来检查。重启并运行 ulimit -Hn
以验证新的限制是否已应用。
dbus-launch:没有那个文件或目录
为您的会话设置 dbus。
通过 Proton 启动的 Steam 游戏在创建窗口前崩溃
与其仅使用 Steam 内置菜单来安装和选择 Proton 版本,不如尝试在您的系统上安装适用于 Proton 的 flatpak 社区构建版本。有几个版本,具体取决于您期望的稳定性,Flathub 中提供的实验版本名为“com.valvesoftware.Steam.CompatibilityTool.Proton-Exp”。在您安装了选择的版本后,像往常一样进入 Steam 为游戏指定兼容性工具。安装的社区构建版本现在将成为一个选项。选择它并尝试再次启动游戏。
作为最后的手段,您可以尝试安装 proton-ge-custom,但请注意,为了让 Steam 能够检测到它,您需要通过 Nix 安装 Steam,因为 Flatpak 利用了高度隔离。然而,这可能会以牺牲您的 隐私 为代价。
Steam 用 x86/split lock 检测条目刷屏 dmesg
将以下行添加到 /etc/sysctl.conf
kernel.split_lock_mitigate = 0
Steam 启动时卡在 steamwebhelper 弹窗
如果发生这种情况,并且 ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/logs/steamwebhelper.log 显示您缺少 X 服务器或 DISPLAY,则表示您的 DISPLAY 未出现在激活环境中。有关更多信息,请参阅 https://github.com/ValveSoftware/steam-for-linux/issues/10554
Sway:进入您的 sway 配置文件并将 DISPLAY 添加到以下行,然后重启
exec dbus-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
有关此行的更多信息,请参阅 Alpine Wiki 上关于 Sway 的条目
Hyprland:在 ~/.config/hypr/hyprland 的配置文件中添加一个 exec-once 来设置 DISPLAY。与 Sway 类似,您可能已经有一行设置了其他变量。如果是这样,请将 DISPLAY 添加到该行。该行应类似于以下内容
exec-once = dbus-update-activation-environment DISPLAY