Skip to content

steam-arm v1.1

Choose a tag to compare

@Scrumpper Scrumpper released this 29 Sep 02:52
· 25 commits to main since this release
c0ec5a6
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.

image

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
    profile overlay=vulkan adds arm64 overlay layer; controller Steam button opens it.
  • MangoHud: mangohud %command% or MANGOHUD=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/shm filled with
    segments Steam overlay left behind. Launcher now clears unmapped ones at start and every minute;
    segments steamwebhelper still 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 -vulkan launch 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:

  1. stops if config.txt already sets kernel=, or if kernel8.img is missing, and says what to change
  2. keeps copy of config.txt as config.txt.steam-arm.bak
  3. adds kernel=kernel8.img under [all], in block marked with comment
  4. 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-mode component: 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.ico during 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.