Steam Deck

出自 ArchWiki
警告: 本文讨论的是在纯 Arch Linux 上使用 Steam Deck,而不是 SteamOS。虽然后者是基于 Arch 的发行版,但它有若干软件包官方软件仓库不同,并且不被 Arch Linux 社区支持
硬件 PCI/USB ID 工作?
microSD 卡读卡器 1217:8621
Wi-Fi (LCD/Jupiter) 10ec:c822
Wi-Fi (OLED/Galileo) 17cb:1103
GPU (LCD/Jupiter) 1002:163f
GPU (OLED/Galileo) 1002:1435
音频 1022:15e2
蓝牙 (LCD/Jupiter) 13d3:3553
蓝牙 (OLED/Galileo) 17cb:1103
触摸屏 2808:1015
Steam Deck 控制器 28de:1205

Steam Deck 是 Valve 出品的一款专注于游戏的掌上 PC。由于它是完全解锁的,并且设计上具有完整的 Linux 驱动程序兼容性,因此可以轻松地将其用作运行 Arch Linux 的通用掌上 PC。

无障碍访问

固件具有黑底白字,这应该适用于 OCR。视障用户可能仍然需要有视觉的人员帮助更改固件设置或选择启动设备

可以使用键盘和鼠标,或设备的物理按钮(DPadABXY)和触摸屏进行导航。

设备顶部有一个 LED 指示灯,但不提供诊断代码。

安装

您可以从 SteamOS “桌面模式” 安装 Arch Linux,尽管这种安装方式比通过 microSD 卡槽或 USB-C 端口使用 USB 闪存安装介质更复杂。

如果您选择使用 Arch Linux 安装介质,请在启动 Deck 时按住 Volume Down 按钮并按下 Power 按钮以从中启动。

固件

安装 fwupd 以更新固件。

首先,获取更新

$ fwupdmgr refresh; fwupdmgr get-updates

然后更新您的固件

$ fwupdmgr update

对于 LCD 型号,固件 F7A0131 是第一个启用对 amd_pstate CPU 频率调节驱动程序支持的版本。

快捷键

  • 按住 Volume Up 按钮并按下 Power 按钮以访问 UEFI 设置,
  • 按住 Volume Down 按钮并按下 Power 按钮以访问 UEFI 启动菜单(在 Valve 的文档中称为“启动管理器”),
  • 按住 (右侧触控板下方的“三点”按钮)并按下 Power 按钮以访问 Valve 的启动加载程序菜单,
  • 按住 Volume Down+Power+⋯ (右侧触控板下方的“三点”按钮)以将 UEFI 设置重置为其默认值(在 LED 首次闪烁后保持按住除 Power 之外的两个按钮:LED 将在操作期间闪烁,并在完成后停止闪烁,然后松开按钮)。

音频

此文章或章节需要扩充。

原因: 使用 mainline 内核测试 OLED 型号音频,自 6.10 版本起应可正常工作。(在 Talk:Steam Deck 中讨论)

自内核版本 6.1 起,LCD 型号的内置音频即可开箱即用。

OLED 型号的内置音频需要兼容的固件、内核和 ALSA UCM 规则才能工作

  • 以下固件文件需要存在于系统中。它们可以从上游源代码编译,也可以从 Valve 的 jupiter 仓库中发布的 steamdeck-dsp 软件包中复制。
/usr/lib/firmware/amd/sof/sof-vangogh-data.bin
/usr/lib/firmware/amd/sof/sof-vangogh-code.bin
/usr/lib/firmware/amd/sof-tplg/sof-vangogh-nau8821-max.tplg
  • Neptune 内核(来自 jupiter 仓库)版本 6.1.52 或更高版本可以工作。
  • alsa-ucm-conf 1.2.11 或更高版本需要安装。然后,需要添加 sof-nau8821-max 的规则,例如通过从 steamdeck-dsp 复制 /usr/share/alsa/ucm2/conf.d/sof-nau8821-max/

您可能希望使用 Bazzite 内核来支持 OLED 型号上的音频。https://github.com/hhd-dev/kernel-bazzite

有关故障排除,请参阅 ALSAPipeWire。如果 ALSA 无法访问内置音频,请检查内核和音频固件。如果 ALSA 工作正常但 PipeWire 不工作,请检查 UCM 规则。

PipeWire

某些应用程序,特别是 Wine,会导致 OLED Deck 的内置扬声器发出音频爆裂声。当使用 pipewire-pulse 时,可以通过增加 pipewire.conf 中的最小量化大小来解决此问题

default.clock.min-quantum = 256

256 是已观察到与 Wine 配合良好的最低值。也可以使用更高、更安全的值 512 或 1024。

蓝牙

此文章或章节需要扩充。

原因: 该错误是由 2024 年 3 月左右的提交引入的,但已反向移植到所有 LTS 内核。一个看似相关的 针对 Dell XPS 13 9310 的修复 可能适用于此处,而不是链接的回退。(在 Talk:Steam Deck 中讨论)

在 OLED 型号上可能会遇到一个小的蓝牙问题:如果自启动以来蓝牙已关闭,则 内核错误 会阻止挂起。这意味着关闭蓝牙需要重启。

控制器

内置游戏控制器开箱即用,但默认处于 蜥蜴模式。在此模式下,触控板充当鼠标,并且某些按钮充当按键,而其他按钮则不执行任何操作。以下方法之一可用于重新映射控制器以进行游戏。

原始输入

在某些内核-固件-游戏组合上,Steam Deck 的控制器将检测到游戏正在尝试使用它,并从蜥蜴模式切换到模拟简单的 Xbox 兼容控制器,直到游戏退出。虽然这排除了触摸板、陀螺仪和基本 Xbox 控制器不具备的额外按钮的使用,但它无需配置,并且对于某些游戏而言,可能比更复杂的方法更受欢迎。

sc-controller

您可以将 sc-controllerAUR 用作 Steam Input 的替代方案。

如果上面列出的 C0rn3j 分支在右侧触控板仅作为操纵杆鼠标工作,或者右侧操纵杆拒绝在游戏中工作时给您带来麻烦,请尝试 kozec beta 分支

如果您希望在不使用 Steam 的情况下使用复杂的配置文件,用于非 Steam 游戏,或者作为发送双重输入的游戏的修复程序,这将非常有用。

您可以在使用 Steam 时使用它,只需确保在启动游戏之前选择您希望使用的配置文件即可。如果您想返回 Steam 驱动程序,请从其 GUI 中禁用 sc-controller,方法是使用左上角的绿色“汉堡”按钮:如果 Steam 已经打开,它将自动切换。

Steam Input

Steam Input 可以检测和重新映射 Deck 的控件,并配有陀螺仪和电容式摇杆等复杂工具。如果 Steam 用于运行游戏,则也使用它来处理控制器映射可能是可取的。

即使 Steam 不用于运行游戏,它仍然可以充当专用控制器重映射器——它将在 /dev/input 下创建一个虚拟的 Xbox 兼容控制器,该控制器遵循在 Steam 客户端中配置的映射,并且可以被任何应用程序使用。如果 Steam 的作用仅限于重新映射控件,则可以选择将其设置为永久离线模式,并且对于 Flatpak 版本,可以撤销大多数权限。

OpenSD

OpenSD 可通过 opensd-gitAUR 获得,它是 Steam Deck 的高度可配置的用户空间驱动程序。它的目标是轻量级、速度非常快,并提供一种充分利用硬件的方法。配置通过文本文件完成,并提供出色的用户手册。

显示

方向

在 Wayland 上,显示器和触摸屏在所有方向上均能正确工作,无需任何调整。根据型号,方向可能默认为纵向,但可以在桌面环境的设置中正常更改。

在 Xorg 上,可能需要手动修复方向,具体取决于所使用的显示管理器。如果屏幕默认为纵向,则可以使用 xrandr 旋转它。

$ xrandr -o right

然后可以使用 xinput 将触摸屏映射到正确的方向。

$ xinput --map-to-output 'pointer:FTS3528:00 2808:1015' eDP

为了使其在重启后仍然存在,请创建一个 自启动 脚本。

刷新率

此文章或章节需要扩充。

原因: 检查 BOE OLED 上自动检测到哪些速率,在三星和 BOE OLED 上尝试强制 KMS,尝试 EDID 编辑。(在 Talk:Steam Deck 中讨论)

Steam Deck 的显示屏支持广泛的刷新率,但显示管理器不会自动检测到大多数刷新率。

在 LCD 型号上,仅自动检测到 60Hz,但当通过 KMS 强制启用 时,50Hz 工作良好

video=eDP-1:800x1280M@50

在配备三星显示屏的 OLED 型号上,自动检测到 90Hz 和 60Hz。

色域

OLED 型号被宣传为支持 HDR,并且具有比 sRGB 宽得多的色域,但这会导致包括大多数游戏在内的以 sRGB 为目标的内容显得过度饱和。

幸运的是,显示器的 EDID 公开了相当准确的色彩信息,即使没有任何校准硬件,也可以很好地利用这些信息。

GNOMEKDE 将根据 EDID 自动生成 ICC 配置文件,该配置文件可以与各种桌面应用程序一起使用。

要为游戏设置相同的颜色校正,请在 Deck 上运行 displaycal GUI,告诉它从 EDID 生成自己的 ICC 配置文件(建议这样做,而不是重复使用 GNOME 生成的配置文件,因为后者使用较新版本的 ICC 格式),然后通过 DisplayCAL 的 3D LUT Maker 将该配置文件转换为 LUT。然后可以通过 vkbasaltAUR 将此 LUT 注入到游戏中。

据观察,上述方法在三星 OLED 上给出了出色的结果。一个更好的方法是告诉 AMDGPU 将 LUT 加载到其色彩管理管道中,但虽然这样做的技术能力正在被主流采用,但文档却很少。

风扇控制

Steam Deck 的风扇控制可以通过 Valve 的 jupiter 仓库中提供的守护程序来增强,但即使没有它也能完全正常工作。

如果您使用的是 mainline 内核,则需要来自 Valve 内核的补丁来公开相应的 ACPI 功能,例如通过安装用户适配的 steamdeck-dkmsAUR ACPI 平台驱动程序(以 DKMS 形式)。

功能键

按键 可见?1 标记?2 效果
音量减小 音量减小
音量增大 音量增大
电源 3 XF86PowerOff
选择 Tab
方向键 上
方向键 左
方向键 右
方向键 下
开始 Escape
A Enter
B Escape
X
Y
Steam
“三点”
L1
L2 鼠标右键
R1
R2 鼠标左键
R4
R5
L4
L5
  1. 该按键对于 xev 和类似工具是可见的。
  2. 物理按键上有一个符号,描述其功能。
  3. systemd-logind 默认处理此操作。

模拟 SteamOS 行为

注意: 与库存 SteamOS 安装相比,Steam 将缺少用于调整“帧率限制”和“散热功率 (TDP) 限制”的小部件。有关如何手动进行相同调整,请参阅 GamescopeAMDGPU

自动登录

要将您的系统设置为自动登录而无需密码,您可以使用任何显示管理器并将其配置为执行此操作,例如 LightDM

Big Picture 网络

要启用 Steam Big Picture 网络支持,您必须使用 NetworkManager

Steam 客户端集成

您可以使用 -steamdeck 启动选项启动 Steam,以启用全屏 UI 元素,例如登录和客户端更新。

屏幕键盘

有关如何设置屏幕键盘的信息,请参阅 KDE#Plasma MobileGNOME 屏幕键盘应用程序列表/实用工具#屏幕键盘

Steam 的屏幕键盘也完全可以工作,但 Wayland 在设计上会阻止其与其他应用程序的窗口进行交互。libextest-gitAUR 库可以注入到 Steam 中以有效地消除此边界,但这会削弱 Wayland 本身提供的安全性。

参见