If anyone finds an better way to install steam on arm64 please be my guest and share!
Last checked 23/05/2024 - working since this day. Good luck.
Trying to get steam installed in an easier process nothing comes easy with arm and valve against it and arch linux going back in time not wanting to adopt it… anyways… life goes on.
Add another penguin container enabling the #crostini-multi-container flag and following those steps from here:
2 - Pi Labs to Install Steam You can’t install Pi Labs App on Debian that’s why we are trying to make this process easier from the pi labs app on Ubuntu and since the Pi Foundation are Gods they will probably try to keep this script UPDATED properly for us all while Valve hates ARM for now. Apparently you can use it on the default debian penguin.
There also seems to be a long-standing bug right now with binfmt-support on Debian. The working solution of both the box86.conf and box64.conf files to put in /usr/share/binfmts/.
This ‘hack’ is what makes Wine possible on Debian ARM64 devices (Rockchips Qualcomms of this life)!
After copying the contents of these files into their respective directories, you can run the following commands to import them and verify that they are functioning correctly:
Exit termina with sudo poweroff
Go to Crosh > shell : vmc container termina penguin --privileged true
I know… it doesn’t makes sense since you already installed ptitseb boxes… but its how it works.
Start steam on terminal with: LIBGL_ALWAYS_SOFTWARE=1 steam (Its very tricky till you get it on proton 8) SET STEAM Compatibility to Proton 8 (Always the Stable version of proton) otherwise it will keep crashing.
🢁This adds steam shortcut on shelf (You will always need to start linux each system restart) sudo cp -r ~/steam/share/* /usr/share/ ; cat ~/steam/share/applications/steam.desktop sed 's#Exec=/usr/bin#Exec=/usr/local/bin#g' sudo tee /usr/share/applications/steam.desktop
You will need to set games with startup -force-opengl and proton (not experimental)
You will need to set steam to compact mode and set settings to smaller library it crashes less often.
You will need to force restart steam a few times untill all its in place.
Reset Penguin with: systemctl --user restart sommelier{,-x}@{0,1}.service
Force Shutdown Steam with: killall -9 steam steamwebhelper
Once steam is set to compact / small library mode and game is installed with -force-opengl and proton it will work. # cd /usr cd local/bin ./steam - ptitseb Boxes directory # cd /usr cd bin ./steam - steam i386 default directory # cd ~/.local/share/Steam/ ./steam.sh - steam installed directory
Advanced startup options for steam with proton on specified game RUN:
export STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata
export STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam/
~/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run ~/.local/share/Steam/steamapps/common/YOURGAME/YOURGAME.exe
Thats you done with the installation Go Play Now! GO! GO! GO!
🚦Other Startup Options for Troubleshooting
GALLIUM_DRIVER=llvmpipe yourapplication, can run 4.5 applications on the CPU.
GALLIUM_DRIVER=softpipe yourapplication, can run 3.3 on the CPU, slower.
GALLIUM_DRIVER=virpipe yourapplication, can connect to virglrenderer’s virgl_test_server.
LIBGL_ALWAYS_SOFTWARE=1
DISPLAY (This sets the X11 Display instance, and defaults to :0)
WAYLAND_DISPLAY (This sets the Wayland Display instance, and defaults to wayland-0)
GDK_BACKEND (This sets the default display environment for gtk3/4 applications. It can be either x11 or wayland)
CLUTTER_BACKEND (This sets the default display environment for clutter applications. It can be either x11 or wayland)
Run Games with launch options: -force-opengl and set a stable proton
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1 #game
-soft
-gl -nofbo
-soft -sw -w 640 -h 480
-gl
-dev -sw
For all games set settings to -force-opengl and maybe install proton experimental like always… after installing steam perform a steam restart bugs may follow and retry is key keep this in mind.
- Troubleshooting fix solutions and more problems than solutions:
Winetricks » Fixes your steam hability to play games install winetricks from NicoD script Reinstall Steam » rm -rf ~/.local/share/Steam/ Shutdown Steam » systemctl --user restart sommelier{,-x}@{0,1}.service sudo poweroff » does the trick too lspci: not found - sudo apt install pciutils -y; sudo apt show pciutils Can’t find ‘steam-runtime-check-requirements’ It means most likely that your binfmts isnt enabled this is a must have! For some sanity:sudo apt install gnome-system-monitor -y ; gnome-system-monitor
steam-runtime-launcher-service keeps crashing on startup, disabling
Some stupid interface glitch that I couldnt yet figure… but it starts ocasionally - most likely is kernel panfrost drivers missing repositories… best to re-do the whole guide.
-480p - Run tenfoot in 480p rather than 1080p
-720p - Run tenfoot in 720p rather than 1080p
-accesscode -
-all_languages - show longest loc string from any language
-batterytestmode - rapidly cycle battery percentages for testing
-bigpicture - Start in Steam Big Picture mode
-blefw -
-cafeapplaunch - Launch apps in a cyber cafe context
-candidates - Show libjingle candidates for local connection as they are processed
-ccsyntax - Spew details about the localized strings we load
-cef-delaypageload - Enable early-out for known page loads
-cef-disable-breakpad - disables breakpad in crash dumps
-cef-disable-d3d11 - disable D3D11 usage in CEF
-cef-disable-delaypageload - Disable early-out for known page loads
-cef-disable-gpu-compositing - Disable GPU accelerated compositing in browsers
-cef-disable-gpu - Disable GPU usage in CEF (force software rendering/compositing)
-cef-disable-hang-timeouts - disables GPU and renderer hang timeouts
-cef-disable-js-logging - disables console and log file logging of JS console events
-cef-disable-occlusion - disables Chromium window occlusion testing on Windows
-cef-disable-renderer-restart - Disable auto-restart of renderer process for existing browsers
-cef-disable-sandbox - disables sandboxing in CEF
-cef-disable-seccomp-sandbox - disables CEF seccomp-bpf sandbox on Linux
-cef-enable-debugging - enables Chromium remote debugging, defaulting to localhost:8080
-cef-enable-gpu-debugging - Enable GPU debugging in Chromium, costs a glGetError() call after every command
-cef-enable-samesite-by-default-cookies - Treat unspecified samesite as samesite=lax
-cef-force-32bit - forces usage of 32-bit steamwebhelper when available
-cef-force-gpu - Force enable GPU acceleration
-cef-force-sandbox - force sandboxing in CEF
-cef-full-memory-crash-report - enables full crash dumps
-cef-ignore-certificate-errors - allow self-signed certificates
-cef-in-process-gpu - runs CEF GPU processing as thread of browser process
-cef-no-linux-angle - Don't use ANGLE for rendering backend on Linux
-cef-single-process - runs CEF processes in single process
-cef-use-shell-exec - Launch CEF process via sub-shell
-cef-verbose-js-logging - enables verbose logging of JS console events
-cef-verbose-logging - enables verbose logging from CEF
-cef-winxp - force running the WinXP compatible CEF browser
-clientui -
-community - Set the community URL
-complete_install_via_http - Run installation completion over HTTP by default
-console -
-controllertypeoverride -
-debugbutton - Show debug button in content frame header
-debug_steamapi - enables logging of Steam API functions
-dev -
-disable-winh264 - disables loading winh264.dll
-disablehighdpi - disables high-DPI support in CEF
-disablepartnerlicenses - disable automatically granted partner licenses
-dumpvideostream - Dump the game stream as an elementary video file
-enable-desktop-gl-fallback -
-enable-keyring - enables CEF usage of the Chromium keyring
-enablealloobesteps -
-fasthtml - Enable fast child html for any platform
-flushconfig -
-forcecontrollerappid - Force a Specific AppID for Steam Controller Config - Prevents context/app switching from changing configuration
-forcedeckcontroller -
-forcedesktopscaling - Scale the desktop UI
-forceservice - Run Steam Client Service even if Steam has admin rights
-forcevgui -
-friendsui -
-fs_log - Log file system accesses
-fs_logbins - Log the binaries we load during operation
-fs_target - Set target syntax
-fulldesktopres - Run tenfoot in full desktop resolution rather than 1080p, overrides -720p as well.
-fullscreen - Set BPM to fullscreen
-fullscreenopengl - Use the full screen OpenGL render for the UI
-gamepadui - Start in gamepadui mode
-help - Set the help/support URL
-hidelibmenu -
-html-perf-monitor - Draws html perf data
-init_universe -
-language - Set Steam client UI language
-login - Automatically logs in user
-lognetapi - logs all P2P networking info to log/netapi_log.txt
-log_voice - writes voice chat data to the logs/voice_log.txt file
-master_ipc_name_override -
-musiccrawltrack - Add menu to crawl track and print result to console
-musicdbforcerebuild - Forces a rebuild and recrawl of the music database
-net_fake_state - Set initial value for net_fake_state
-net_start_wifi_disabled - Set the initial value for wifi enabled to false. (Useful when emulating SteamDeck)
-no-cef-sandbox - disables sandboxing in CEF
-no-dwrite - forces CEF to use GDI text even if DWrite support is available
-no-shared-textures - forces overlay to avoid sharing texture handles with game process
-nobigpicture - Start in regular mode (force Big Picture mode off)
-noconsole -
-nocrashmonitor -
-nofasthtml - Disables new fast child hwnd direct in vgui hwnd rendering path
-nofriendsui -
-nointro - Skip intro movie
-noshaders - Disable the shader manager
-offlinemode - Always attempt to start in offline mode
-oldtraymenu - use old tray menu instead of browser-based menu
-openalldevtools - Open Chrome devtools on launch for every HTML window
-opendevtools - Open Chrome devtools for shared JS context (offscreen window) on launch
-opengl - Use the OpenGL render for the UI
-openoverlaydevtools - Open Chrome devtools on creation of any overlay browsers
-overlaytestmode - Forces overlay testmode mode for debugging
-perfectworld - Identifies processes that were launched by the Perfect world launcher
-pid - Pid that we should be watching for
-private_ip_override -
-quicklogin - Set the base used to construct quick login URLs
-rememberpassword - If logging in user with credentials specified on the command line, proceed as if 'remember my password' had been enabled
-showallbetas - Disable client beta filtering
-silent - Silent startup mode (tray mode only)
-single_core - Force Steam to run on your primary CPU only
-skipstreamingdrivers - Skip streaming driver checks
-steamos -
-store - Set the store URL
-storebeta - 0
-system-composer - Force the use of the system browser composer
-tcp - forces connection to Steam backend to be via TCP - deprecated, will be replaced by websockets only for TCP soon
-tenfoot - Start in Steam Big Picture mode
-testbutton - Show test button on main menu
-testssa - force display of SSA
-teststoragedata - Enable test storage data
-toggle-overlay-html-mode - Disables new faster overlay HTML path (or enables if on a branch it's not on by default for)
-udpforce - forces connection to Steam backend to be via UDP - deprecated, won't exist for too long
-unhidefriendsui -
-userchooser - Sends the user to the User Chooser even if they have 0 or 1 accounts
-vgui - Start in vgui mode
-vguifocus - Print out details of which panel has keyboard focus
-vguimessages - set to see debug vgiui2 messages
-voicerelay - Only allow 'relay' connections for voice (testing).
-vrdisable - Disable VR - never even try to load OpenVR DLLs
-vrforce - Always perform Hmd status check even if we crashed the last time we tried
-vronly -
-vrskip - Skip VR initialization entirely no matter who asks for it
-websocket - forces connection to Steam backend to be via WebSocket
-websocketignorecertissues - says it's ok to ignore cert validation issues if using WebSocket connections, for dev use only
-windowed - Run Steam tenfoot mode in a window rather than a fullscreen borderless window
countrycode = -