Steam Deck
Hardware | PCI/USB ID | Working? |
---|---|---|
microSD card reader | 1217:8621 |
Yes |
WiFi | 10ec:c822 |
Yes |
GPU | 1002:163f |
Yes |
Audio | 1002:1640 |
Yes |
Bluetooth | 13d3:3553 |
Yes |
Gyroscope | 28de:1205 |
Yes |
Touchpads | 28de:1205 |
Yes |
Touchscreen | 2808:1015 |
Yes |
Steam Deck controls | 28de:1205 |
Yes |
Hardware | PCI/USB ID | Working? |
---|---|---|
microSD card reader | 1217:8621 |
Yes |
WiFi | 17cb:1103 |
No |
GPU | 1002:1435 |
Yes |
Audio | 1022:15e2 |
No |
Bluetooth | 17cb:1103 |
No |
Gyroscope | 28de:1205 |
Yes |
Touchpads | 28de:1205 |
Yes |
Touchscreen | 2808:1015 |
Yes |
Steam Deck controls | 28de:1205 |
Yes |
The Steam Deck is a gaming-focused handheld PC from Valve. Since it is completely unlocked and by design has full Linux driver compatibility, it can easily be used as an all-purpose handheld PC with Arch Linux.
Installation
A USB flash installation medium can be used through the microSD card slot or the USB-C port.
While booting up the deck, hold down Volume Down
and press the Power
buttons. Choose your Arch Linux installation medium.
Firmware
As of October 2022, fwupd does not support any devices in the Steam Deck. Updates for the firmware are provided through SteamOS.
Shortcuts
- Hold down
Volume Up
and press thePower
button to access the UEFI settings, - Hold down
Volume Down
and press thePower
button to access the UEFI boot menu (called "Boot Manager" in Valve's documentation), - Hold down
⋯
("Three Dots" button under the right touchpad) and press thePower
button to access Valve's bootloader menu, - Hold down
Volume Down+Power+⋯
("Three Dots" button under the right touchpad) to reset the UEFI settings to their defaults (keep the two buttons other thanPower
held after the first blink of the LED: the LED will blink during the operation and stop once done, then release the buttons).
Advanced settings
- As opposed to regular UEFI settings available on consumer boards, there are no guardrails after following the instructions below: backup your firmware, it is possible to completely "brick" your device, which then requires an SPI chip programmer to fix.
- While undervolting will at worst "brick" your device, overclocking or overvolting should be done with the usual caveats in mind.
AMD's CBS (Custom BIOS Settings) and PBS (Platform BIOS Settings) are not accessible by default, but can be unlocked (running the resulting binary will be silent and finish with a return code of 119) to have access to undervolting and overclocking options. These options are then visible when booting into the Steam Deck firmware, but there are restrictions on the TDP settings that can be overcome using a different method of loading the UEFI form browser.
A fix is needed for AMD Van Gogh APU PowerPlay limits to scale properly after higher frequencies are set when overclocking the CPU and GPU of the APU in the BIOS after unlocking it.
Wireless
As of mainline kernel version 6.6.2, Wi-Fi and Bluetooth only work on the LCD models. They can be made to work on the OLED models by using the neptune kernel from Valve's jupiter repository.
Audio
As of mainline kernel version 6.6.2, the built-in speakers, microphone, and headphone jack only work on the LCD models. On OLED models, they can be made to work with the neptune kernel from the jupiter repository, but this additionally requires manually installing the relevant firmware and ALSA configuration files from the steamdeck-dsp and alsa-ucm-conf packages from jupiter.
- Analog PCM
- Digital
- Digital PCM
- Left Analog PCM
- Left Digital PCM
- Right Analog PCM
- Right Digital PCM
Display
Orientation
On Wayland with GDM, the display and touchscreen work correctly in all orientations, without any tweaks. Depending on the model, the orientation may default to portrait but can be changed as normal in a desktop environment's settings.
On Xorg, a manual orientation fix may be needed depending on the display manager used. If the screen defaults to portrait, it can be rotated using xrandr.
$ xrandr -o right
The touchscreen can then be mapped to the proper orientation using xinput.
$ xinput --map-to-output 'pointer:FTS3528:00 2808:1015' eDP
To have this persist on reboots, put this in a shell script and add it to your window manager startup script.
Refresh rates
The Steam Deck's display supports a wide range of refresh rates, but display managers will not auto-detect most of them.
On LCD models, only 60Hz is auto-detected, but 50Hz works well when force-enabled via KMS:
video=eDP-1:800x1280M@50
On OLED models with the Samsung display, 90Hz and 60Hz are auto-detected.
Gamut
The OLED models are billed as HDR-capable and have a much wider gamut than sRGB, but this causes sRGB-targeting content, including most games, to appear greatly oversaturated. There is no way to reconfigure the display itself to better handle sRGB content (even on SteamOS, the "vibrancy" adjustment is only handled by gamescope). Fortunately, the display's EDID exposes fairly accurate color information and as such GNOME and KDE will auto-generate an ICC profile that can be used to good effect absent per-device calibration. This profile can even be converted to a LUT via displaycal and injected into games through vkbasaltAUR.
Fan controls
The Steam Deck's fan control can be enhanced by a daemon provided in Valve's jupiter repository, but are fully functional without it.
If you are using a mainline kernel, you need patches from Valve's kernel to expose the corresponding ACPI functionality, for example by installing the user-adapted jupiter-dkmsAUR ACPI platform driver in DKMS form.
Hardware buttons
Volume up and down buttons
With acpid you can map your volume buttons.
Using PipeWire and pipewire-alsa, you can add the following to /etc/acpi/handler.sh
and then restart acpid.service
:
/etc/acpi/handler.sh
button/volumeup) case "$2" in VOLUP) amixer set Master 2%+ ;; *) logger "ACPI action undefined: $2" ;; esac ;; button/volumedown) case "$2" in VOLDN) amixer set Master 2%- ;; *) logger "ACPI action undefined: $2" ;; esac ;;
Power button
The power button is handled by systemd-logind. By default a press will shut your system down. To change this behavior to suspend on press instead, add the following option in /etc/systemd/logind.conf
and restart systemd-logind.service
:
HandlePowerKey=suspend
Mimic SteamOS behavior
Auto-login
To set your system to automatically login without password, you can use any display manager and configure it to do so, for example LightDM.
Big Picture Networking
To enable Steam Big Picture networking support, you must use NetworkManager.
Steam client integration
You can launch steam with the -steamos
launch option to enable fullscreen UI elements such as login and client updates.