[Guide] Steam Installation Tutorial for Arm64 🕹️

  • Steam is possible on Debian Bullseye penguin on ARM64 devices
  • Steam is working with this guide! It has been a really hard to get this working hope this lasts!
  • All works under the standard debian penguin! Not yet tested via ubuntu lxc container. 12/12/2023.
  • If anyone finds an better way to install it please be my guest and share!


Follow the process step by step this aint rocket science here.

First we need to install some dependencies that are required by Steam. Use the following lines for indulgency:

Find your DRK version here - https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md
Find updated dependencies here - https://github.com/neofeo/BOX86-BOX64-WINEx86-TUTORIAL

crosh ctrl alt t, type: shell
vmc container termina penguin --privileged true

sudo dpkg --add-architecture armhf && sudo apt update && sudo apt install aptitude -y

#sudo apt install gcc-arm-linux-gnueabihf libc6 binfmt-support cmake nano lsof gedit git cabextract neofetch -y && neofetch

sudo aptitude install -y zenity build-essential git cmake cabextract gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libnm0 libtcmalloc-minimal4 liblttng-ust-dev libcairo2 libgmp10 libvulkan1 libudev-dev libc6 libx11-6 libgdk-pixbuf2.0-0 libgtk2.0-0 libstdc++6 libsdl2-2.0-0 mesa-va-drivers gdebi-core libsdl1.2-dev libsdl-mixer1.2 libpng16-16 libcal3d12v5 libsdl2-net-2.0-0 pciutils libopenal1 libsdl2-image-2.0-0 libvorbis-dev libcurl4 osspd pulseaudio libjpeg62 libudev1 libgl1-mesa-dev libsnappy1v5 libx11-dev libsmpeg0 libmyguiengine3debian1v5 libsdl2-mixer-2.0-0 libnss3 libdbus-glib-1-2 libudev1 libnspr4 libc6-dev-armhf-cross linux-libc-dev-armhf-cross g++-arm-linux-gnueabihf libgudev-1.0-0 libusb-1.0-0 libglvnd0 libmaliit-glib-dev libdrm-dev libgles2-mesa-dev libnm-dev libvulkan-dev binfmt-support libinstpatch-1.0-2 libjack-jackd2-0 libegl1-mesa cmake cabextract p7zip-full libncurses6 libsdl2-dev unzip libgles-dev mesa-va-drivers libsdl-mixer1.2 libpng16-16 libsdl2-net-2.0-0 libopenal1 libsdl2-image-2.0-0 libjpeg62 libudev1 libgl1-mesa-dev libx11-dev libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libvulkan1 libgl1-mesa-glx libgles2-mesa libsdl2-2.0-0:arm64 libsdl2-2.0-0 libsdl2-mixer-2.0-0:arm64 libgtk3-nocsd0 libnss3 libnm0 libdbus-glib-1-2 libudev1 libnspr4 libgudev-1.0-0 libxtst6 libsm6 libice6 libusb-1.0-0 libmodplug1 libmpg123-0 libopusfile0 libreadline8 libsamplerate0 libsdl2-mixer-2.0-0 libvorbisfile3 nano lsof gedit cabextract neofetch && sudo apt install --reinstall libgl1-mesa-glx libva-x11-2 -y && sudo ldconfig && sudo aptitude upgrade -y && sudo apt -y --fix-broken install

git clone --depth 1 https://github.com/ptitSeb/box64
git clone --depth 1 https://github.com/ptitSeb/box86
cd ~/box64; mkdir build; cd build; cmake ../ -DRK3588=1; make -j$(nproc); sudo make install
cd ~/box86; mkdir build; cd build; cmake ../ -DRK3588=1; make -j$(nproc); sudo make install; cd

#cd /usr/lib/arm-linux-gnueabihf/ && sudo ln -sfv libpng16.so.16 libpng12.so.0 && cd

#Hold a beer it will take a while.

🚦sudo nano .profile (Optional)

sudo nano .profile

export SDL_VIDEODRIVER=wayland
export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
export WAYLAND_DISPLAY=wayland-0
export GDK_BACKEND=wayland,x11
export XDG_SESSION_TYPE=wayland
export XDG_DATA_HOME="$HOME/.local/share:/root/.local/share:/usr/local/share/:/usr/share/"
export XDG_DATA_DIRS="$HOME/.local/share:/root/.local/share:/usr/local/share/:/usr/share/"
export DISPLAY=:0
export XSOCKET=/tmp/.X11-unix/X1
export _JAVA_AWT_WM_NONREPARENTING=1
🚦sudo nano .bashrc (Optional)

sudo nano .bashrc

export STEAMOS=1
export STEAM_RUNTIME=1
export DBUS_FATAL_WARNINGS=0
#export LIBGL_ALWAYS_SOFTWARE=1
#export GALLIUM_DRIVER=virpipe
#GALLIUM_DRIVER=virpipe BOX64_LOG=1 BOX86_LOG=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/local/bin/steam -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"

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)!

sudo nano /usr/share/binfmts/box86.conf

package box86
interpreter /usr/local/bin/box86
magic \x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00
mask \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff

sudo nano /usr/share/binfmts/box64.conf

package box64
interpreter /usr/local/bin/box64
magic \x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00
mask \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff

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
image

sudo update-binfmts --import box86.conf
sudo update-binfmts --import box64.conf
sudo update-binfmts --enable
sudo update-binfmts --display
sudo systemctl restart systemd-binfmt

Output must say enabled in all 3 otherwise restart the container: sudo poweroff.


Install steam now:

~/box86/install_steam.sh
🚦Another method

Testing an alternative to ~/box86/install_steam.sh

wget https://repo.steampowered.com/steam/archive/stable/steam_latest.deb
sudo apt install --no-install-recommends -y ./steam_latest.deb

Without this steam wont work neither games will start so you MUST install:

sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list && sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list && wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg && wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg && sudo aptitude update && sudo aptitude upgrade -y

sudo apt install box86-generic-arm box64-arm64 -y

wget https://github.com/neofeo/BOX86-BOX64-WINEx86-TUTORIAL/raw/main/boxer/boxer2.sh && chmod +x boxer2.sh && ./boxer2.sh

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.


image
🢁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)

/usr/local/bin/steam
/steam/bin/steam
/home/$user/.local/share/Steam/

#GALLIUM_DRIVER=virpipe BOX64_LOG=1 BOX86_LOG=1 BOX86_NOVULKAN=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"
#GALLIUM_DRIVER=llvmpipe BOX64_LOG=1 BOX86_LOG=1 BOX86_NOVULKAN=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"
#GALLIUM_DRIVER=softpipe BOX64_LOG=1 BOX86_LOG=1 BOX86_NOVULKAN=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"
#LIBGL_ALWAYS_SOFTWARE=1 BOX64_LOG=1 BOX86_LOG=1 BOX86_NOVULKAN=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"
#–use-egl-surfaceless --use-gles steam://open/minigameslist "$@"
#setarch -L linux32 steam -no-browser -noreactlogin -no-cef-sandbox steam://open/minigameslist
#LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=virpipe BOX64_LOG=1 BOX86_LOG=1 BOX86_NOVULKAN=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"
steam --reset

Run Games with launch options: -force-opengl and set a stable proton
-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.


Enhancing Gaming Experience

echo 'vm.max_map_count = 2147483642' >> /etc/sysctl.d/99-sysctl.conf
sysctl -p 

- 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

Problem without solution plz Help!


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.

systemctl --user restart cros-garcon.service
systemctl --user restart sommelier{,-x}@{0,1}.service
systemctl --user daemon-reload

Working drivers for steam on multi-arch
sudo aptitude install libc6 libx11-6 libgdk-pixbuf2.0-0 libgtk2.0-0 libstdc++6 libsdl2-2.0-0 mesa-va-drivers libsdl1.2-dev libsdl-mixer1.2 libpng16-16 libcal3d12v5 libsdl2-net-2.0-0 libopenal1 libsdl2-image-2.0-0 libvorbis-dev libcurl4 osspd pulseaudio libjpeg62 libudev1 libgl1-mesa-dev libsnappy1v5 libx11-dev libsmpeg0 libboost-filesystem1.81.0 libboost-program-options1.81.0 libavcodec58 libavformat58 libswscale5 libmyguiengine3debian1v5 libboost-iostreams1.81.0 libsdl2-mixer-2.0-0 libnss3 libnm0 libdbus-glib-1-2 libudev1 libnspr4 libgudev-1.0-0 libusb-1.0-0 libappindicator1 -y

sudo aptitude install sudo vim make cmake git wget gnupg libx11-dev libgl-dev libvulkan-dev libtcmalloc-minimal4 libnm0 zenity alsamixergui libsdl2-dev unzip libgles-dev libx11-dev libvulkan-dev libsdl2-dev libgl-dev libc6-dev libgles-dev libsdl2-dev -y


If on other lxc containers sometimes reinstalling google guest-tools where aptitude uninstalls and such is helpfull:
sudo aptitude install cros-garcon cros-host-fonts cros-notificationd cros-sftp cros-sommelier bash-completion bzip2 cros-sommelier-config curl dbus-user-session dbus-x11 file fuse git gnupg iputils-ping iptables less libxss1 man-db pulseaudio udev unzip usbutils vim wget xz-utils cros-apt-config cros-logging cros-sommelier-config cros-sudo-config cros-systemd-overrides cros-wayland gtk2-engines-pixbuf libgtk2.0-0 libgtk-3-0 gtk2-engines-murrine -y

Manually Installing Steam by Script (Nice alternative - just avoid)

Lets make our ~/box86/install_steam.sh script

sudo nano install_steam.sh

#!/bin/bash

# create necessary directories
mkdir -p ~/steam; mkdir -p ~/steam/tmp; cd ~/steam/tmp

# download latest deb and unpack
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb; ar x steam.deb; tar xf data.tar.xz; rm ./*.tar.xz ./steam.deb; mv ./usr/* ../; cd ../ && rm -rf ./tmp/

echo "#!/bin/bash
export STEAMOS=1; export STEAM_RUNTIME=1; export DBUS_FATAL_WARNINGS=0
~/steam/bin/steam $@"> steam

# make script executable and move
chmod +x steam; sudo mv steam /usr/local/bin/

/bin/bash ./install_steam.sh


Fyde oficial tutorial: https://fydeos.io/docs/knowledge-base/recipes/install-box64-steam-wine-on-arm64-device/#an-zhuang-steam


— Nico.D Gaming Script

Alternatively if you can use the NicoD Script (Optional might not work on ChromiumOS):

    _   __ _               ____     ______                   _                  
   / | / /(_)_____ ____   / __ \   / ____/____ _ ____ ___   (_)____   ____ _    
  /  |/ // // ___// __ \ / / / /  / / __ / __ `// __ `__ \ / // __ \ / __ `/    
 / /|  // // /__ / /_/ // /_/ /  / /_/ // /_/ // / / / / // // / / // /_/ /     
/_/ |_//_/ \___/ \____//_____/   \____/ \__,_//_/ /_/ /_//_//_/ /_/ \__, /      
    __     _                        _____              _         __/____/       
   / /    (_)____   __  __ _  __   / ___/ _____ _____ (_)____   / /_            
  / /    / // __ \ / / / /| |/_/   \__ \ / ___// ___// // __ \ / __/            
 / /___ / // / / // /_/ /_>  <    ___/ // /__ / /   / // /_/ // /_              
/_____//_//_/ /_/ \__,_//_/|_|   /____/ \___//_/   /_// .___/ \__/              
                                                     /_/                        
git clone https://github.com/NicoD-SBC/armbian-gaming.git
cd armbian-gaming
/bin/bash ./armbian-gaming.sh

More info here: https://github.com/NicoD-SBC/armbian-gaming


Steam on Ampere ARM64: https://github.com/AmpereComputing/Steam-on-Ampere
Better tutorial: https://ivonblog.com/en-us/posts/linux-phone-box86-steam/


🚦Alternative Box Steam Installation Method
sudo dpkg --add-architecture armhf && sudo apt update && sudo aptitude -y install cmake cabextract p7zip-full libncurses6:armhf libc6:armhf libx11-6:armhf libgdk-pixbuf2.0-0:armhf libgtk2.0-0:armhf libstdc++6:armhf libsdl2-2.0-0:armhf mesa-va-drivers:armhf libsdl-mixer1.2:armhf libpng16-16:armhf libsdl2-net-2.0-0:armhf libopenal1:armhf libsdl2-image-2.0-0:armhf libjpeg62:armhf libudev1:armhf libgl1-mesa-dev:armhf libx11-dev:armhf libsdl2-image-2.0-0:armhf libsdl2-mixer-2.0-0:armhf libvulkan1:armhf

sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list \
&& sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list \
&& wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg \
&& wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg \
&& sudo apt update \
&& sudo apt install box86-rk3588 box64-rk3588 -y

steam.sh

wget https://github.com/cobalt2727/L4T-Megascript/blob/master/scripts/games_and_emulators/steam.sh
~/steam.sh
# installing dependencies
sudo apt install -y libegl1-mesa:armhf libgl1-mesa-glx:armhf libgles2-mesa:armhf libsdl2-2.0-0:arm64 libsdl2-2.0-0:armhf libsdl2-mixer-2.0-0:arm64 libgtk3-nocsd0:armhf libnss3:armhf libnm0:armhf libdbus-glib-1-2:armhf libudev1:armhf libnspr4:armhf libgudev-1.0-0:armhf libxtst6:armhf libsm6:armhf libice6:armhf libusb-1.0-0:armhf libnss3 libnm0 libdbus-glib-1-2 libudev1 libnspr4 libgudev-1.0-0 libxtst6 libsm6 libice6 libusb-1.0-0 || error "Could not install steam dependencies"

echo "Installing steam.deb"
wget https://steamcdn-a.akamaihd.net/client/installer/steam.deb -O /tmp/steam.deb || wget https://repo.steampowered.com/steam/archive/stable/steam_latest.deb -O /tmp/steam.deb || error "Failed to download steam.deb"
sudo apt install --no-install-recommends -y /tmp/steam.deb || error "Failed to install steam.deb"
hash -r

sudo mkdir -p /usr/local/bin /usr/local/share/applications
# if a matching name binary is found in /usr/local/bin it takes priority over /usr/bin
export STEAMOS=1
export STEAM_RUNTIME=1
export DBUS_FATAL_WARNINGS=0
GALLIUM_DRIVER=virpipe BOX64_LOG=1 BOX86_LOG=1 BOX64_EMULATED_LIBS=libmpg123.so.0 /usr/lib/steam/bin_steam.sh -no-cef-sandbox -noreactlogin steam://open/minigameslist "$@"

rm -f /home/${USER}/Desktop/steam.desktop
rm ~/.local/share/Steam -rf

# set execution bit
sudo chmod +x /usr/local/bin/steam

# copy official steam.desktop file to /usr/local and edit it
# we can't edit the official steam.desktop file since this will get overwritten on a steam update
# if a matching name .desktop file is found in /usr/local/share/applications it takes priority over /usr/share/applications
sudo cp /usr/share/applications/steam.desktop /usr/local/share/applications/steam.desktop
sudo sed -i 's:Exec=/usr/bin/steam:Exec=/usr/local/bin/steam:' /usr/local/share/applications/steam.desktop

# remove deb
rm /tmp/steam.deb
rm -f /home/${USER}/Desktop/steam.desktop
rm ~/.local/share/Steam -rf

steam +open steam://open/minigameslist

Steam linux startup commands:

steam +open steam://open/minigameslist
steam -cef-disable-gpu
steam -no-cef-sandbox
LIBGL_ALWAYS_SOFTWARE=1 steam
steam -offline
steam --reset
steam -clearbeta
steam --flushconfig
steam -vgui
BOX86_NOVULKAN=1
DRI_PRIME=0 steam
– Reset Steam (to Reinstall it)
rm -rf ~/.cache/nvidia/GLCache
rm -rf ~/.steam/ ~/.steampath ~/.steampid
rm -rf ~/.local/share/Steam/ # to reinstall steam
rm -rf ~/.local/share/Steam/steamui
rm -rf ~/.local/share/Steam/package/beta
rm -rf ~/.local/share/Steam/ubuntu12_32/steam-runtime
rm -rf ~/.local/share/Steam/ubuntu12_32
rm -rf ~/.steam/steam/ubuntu12_32
– Clear any mistaken issues/drivers
sudo apt purge xdg-desktop-portal-* -y
sudo apt remove --purge ^nvidia-.*
sudo apt install gnome-system-tools -y
sudo apt install --reinstall libnvidia-egl-wayland1 -y
– To find and kill the process manuall
ps -A | grep steam
killall -9 steam steamwebhelper
systemctl --user restart sommelier{,-x}@{0,1}.service

Steam console parameters

🚦Steam Console Parameters
-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 =  -

— Fex-Emulator (Couldn’t make it work) :smiling_face_with_tear:

🚦Fex-Emu Installation Method

Fex-textlogo-240h

Github | Steam Instructions

Install Fex-Emu:

The process is ‘slow’ have a coffee have press Y a few times

curl --silent https://raw.githubusercontent.com/FEX-Emu/FEX/main/Scripts/InstallFEX.py --output /tmp/InstallFEX.py && python3 /tmp/InstallFEX.py && rm /tmp/InstallFEX.py

Install Steam:

wget https://repo.steampowered.com/steam/archive/stable/steam_latest.deb -O /tmp/steam.deb || error "Failed to download steam.deb"
sudo apt install --no-install-recommends -y /tmp/steam.deb || error "Failed to install steam.deb"

#Run as:
FEX_TS0ENABLED=0
LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=virpipe FEXBash steam


Debug and Errors:

Reinstall steam by typing:

rm ~/.local/share/Steam -rf
FEXBash steam

(Steam by command for the Pros):

mkdir ~/Steam && cd ~/Steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
FEXBash ./steamcmd.sh
--
steam>


3 Likes

WoW64 + Wine + WineTricks + Box64

export PAN_MESA_DEBUG=gl3
box64 ./"Hollow Knight" -force-opengl

Loads of good tips for how to handle steam on Linux that can help us too:
https://en.opensuse.org/Steam