Steam

来自 Alpine Linux

此页面解释了如何在 Alpine Linux 上运行 Valve 公司的流行游戏分发平台 Steam

注意: Linux 版 Steam 仅支持 Ubuntu LTS。因此,请勿向 Valve 寻求在 Alpine Linux 上使用 Steam 时出现问题的支持。

平台支持

Steam 需要 glibc 才能运行,因此无法在 Alpine Linux 上原生运行。通常的解决方法是使用容器或虚拟机。

最简单的方法是在由 Flatpak 管理的容器内运行它。

通过 Flatpak 安装

确保您已安装 Flathub 仓库。

注意: 以 # 开头的命令以 root 身份运行,以 $ 开头的命令以普通用户身份运行
 # 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
注意: 虽然您应该已经属于 users 组,但您可以运行 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

参见