Repository navigation
steam-arm v1.1
sudo bash steam-arm-install.sh
Installer is now one script. Same options as v1.0
(--help, --list, --select, --skip); .deb still builds from source with build-deb.sh.
Upgrades 1.0 in place: existing client, game library, sign-in and component choices are kept.
1.0 package can stay, or sudo apt remove steam-arm-setup removes installer package only;
Steam client, games and settings stay.
Steam overlay and MangoHud in x86 titles
Valve's FEX compatibility tool removes LD_PRELOAD before every x86 title, which takes Steam
overlay and MangoHud with it. 1.1 replaces that step with launch handler that decides per title,
with no launch options:
- Steam overlay on for Linux x86 titles. OpenGL titles: Shift+Tab.
- Vulkan titles: title
profileoverlay=vulkanadds arm64 overlay layer; controller Steam button opens it. - MangoHud:
mangohud %command%orMANGOHUD=1 %command%, OpenGL and Vulkan. - Godot 4 titles run on OpenGL renderer; Vulkan renderer freezes on splash on PanVK.
- Unity titles: Vulkan renderer (
-force-vulkan) where player carries it, else GL 4.5 report, since Unity's OpenGL core context asks for more than Panfrost's 3.1; 32-bit Unity players with Steam overlay off, as title stops when overlay attaches. - Direct3D 8 titles under Proton run through DXVK's
d3d8; wined3d draws them wrong on Mali. - Title profiles in
/etc/steam-arm/titles.conf; if handler fails, Valve's behaviour applies.
Fixed
- Every title failed to start, with
Bus error, after many game sessions:/dev/shmfilled with
segments Steam overlay left behind. Launcher now clears unmapped ones at start and every minute;
segmentssteamwebhelperstill maps are reclaimed at next client start, so restart client
after long run of sessions. - Titles drew on CPU renderer after fresh install until next client start: GL and Vulkan
forwarding is now applied within one second of client downloading its FEX tool. - Steam overlay UI crashed on every start: launcher puts client's directory on library path.
- Desktop windows had no title bar until next login; menu icon missing on fresh install.
- Installer created account from saved setting naming account absent on system. Such setting now
gets ignored with warning, and installer picks desktop user.
Known issues
- Proton ARM64 titles: MangoHud and Steam overlay each crash title at start. Leave
MANGOHUD
unset for them. - 32-bit x86 titles get GPU through OpenGL only; Vulkan in 32-bit titles falls back to CPU
renderer, so avoid-vulkanlaunch option for them. - Half-Life: Source, native Linux build: stops on loading screen on Mali-G610 test board under
every OpenGL setting tried. Proton build runs, slowly. - Remote Play: Shift+Tab goes to host PC; use controller Steam button.
Page size
Emulation half needs 4K pages: x86 code assumes them, and emulator refuses to start on 16K or
64K kernel. 1.0 installed everything on such system and failed at first title. 1.1 checks
getconf PAGESIZE before it installs anything.
| System | Page size | 1.1 does |
|---|---|---|
| Most ARM64 boards | 4K | continues as before |
| Raspberry Pi 5 | 16K by default | page-size component selects firmware's 4K kernel, then asks for reboot and second run |
| Apple Silicon under Asahi | 16K | stops: kernel stays 16K there, x86 side needs 4K virtual machine such as muvm, which this installer does not set up |
| Servers such as Grace | 64K | stops: boot 4K page kernel from distribution first |
STEAM_ARM_IGNORE_PAGESIZE=1 skips check, for system that runs x86 side inside its own 4K
environment.
page-size component
On by default, no effect outside Raspberry Pi. On Pi with 16K page kernel it:
- stops if
config.txtalready setskernel=, or ifkernel8.imgis missing, and says what to change - keeps copy of
config.txtasconfig.txt.steam-arm.bak - adds
kernel=kernel8.imgunder[all], in block marked with comment - stops and asks for reboot; second run of installer installs
Deselecting page-size on later run removes block again. Pi path is written against Raspberry
Pi firmware layout and has not run on Pi hardware; check and file edit are tested with
simulated systems, and 4K path on RK3588 board.
Desktop interface
- Power menu's Switch to Desktop runs
steamos-session-select. 1.1 provides that command; it restarts client in desktop interface. - New
desktop-modecomponent: menu entry "Steam ARM (Desktop mode)", found by searching "desktop" or "sign in". Opening it while Big Picture runs restarts client in desktop interface. - Desktop icons and tray icon are components of their own:
icon-bigpicture,icon-desktop,tray. Pick either icon, both or none. - Main entry's right-click menu opens either interface.
Icons and tray
- 1.0 made menu icon by inverting x86 Steam icon from rootfs, which fresh rootfs does not carry, so fresh install had no icon. 1.1 draws them from client's own
steam_tray.icoduring first start, once client has downloaded it: dark, grainy green disc with small squares of vivid colour, chartreuse logo for Big Picture, bone logo for desktop mode. Nothing is bundled. - Tray icon starts with client, not only at next login.
- Desktop windows get window manager's title bar at once: setup tells KWin to reload its rules after writing frame rule. 1.0 left windows without frame until next login.
Other
- Component checklist shows all twelve components without scrolling.
- Installed games are kept: installing, re-running, changing components and upgrading leave game library, sign-in and settings untouched.
Full list: CHANGELOG.md.
This project is not affiliated with, endorsed by or sponsored by Valve Corporation. Steam,
Proton, Steam Deck and Steam Frame are trademarks of Valve Corporation.