[Guide] Steam Installation Tutorial - Aarch64 ARM64 🎮

Steam Installation Tutorial

On most x86 systems all you need to do is… download steam.deb from steamgames.com and install it easy peazy BUT for arm64… its a different fun game.

For this tutorial I opted by using nala so please do:

sudo apt install nala aptitude -y #do your operations with nala instead of apt
(It’s faster - It’s modern - It’s graphically easier - Has better debug)
If this command doesn’t work try the legacy installation:

#Legacy Installation
sudo apt update && sudo apt install git aptitude make python3-pip python3-apt python3-debian pandoc -y 
git clone https://gitlab.com/volian/nala.git
cd nala
sudo make install
sudo nala update && sudo nala upgrade -y
cd

Installing Dependencies

First we need to install some dependencies that are required by Steam. Use the following lines:
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

sudo dpkg --add-architecture armhf && sudo nala update && sudo nala install aptitude -y
sudo aptitude install zenity libllvm12:armhf linux-libc-dev:armhf git cmake mpg123 mpg123:armhf 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 libsdl1.2-dev:armhf libsdl-mixer1.2:armhf libpng16-16:armhf libcal3d12v5:armhf libsdl2-net-2.0-0:armhf libopenal1:armhf libsdl2-image-2.0-0:armhf libvorbis-dev:armhf libcurl4:armhf libjpeg62:armhf  libudev1:armhf libgl1-mesa-dev:armhf  libx11-dev:armhf libsmpeg0:armhf libavcodec58:armhf libavformat58:armhf libswscale5:armhf libsdl2-image-2.0-0:armhf libsdl2-mixer-2.0-0:armhf gcc-arm-linux-gnueabihf cmake git cabextract mesa-va-drivers:armhf libgtk2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl1.2debian:armhf libopenal1:armhf libvorbisfile3:armhf libgl1:armhf libjpeg62:armhf libcurl4:armhf libasound2-plugins:armhf libglu1-mesa -y
sudo nala update && sudo nala install mesa-va-drivers:armhf libgtk2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl1.2debian:armhf libopenal1:armhf libvorbisfile3:armhf libgl1:armhf libjpeg62:armhf libcurl4:armhf libasound2-plugins:armhf libc6-dev-armhf-cross git cmake gcc-arm-linux-gnueabihf libllvm12:armhf libncurses6:armhf libc6:armhf libx11-6:armhf libgdk-pixbuf2.0-0:armhf libstdc++6:armhf libsdl2-2.0-0:armhf libsdl1.2-dev:armhf libsdl-mixer1.2:armhf libpng16-16:armhf libcal3d12v5:armhf libsdl2-net-2.0-0:armhf libvorbis-dev:armhf libudev1:armhf libgl1-mesa-dev:armhf  libx11-dev:armhf libsmpeg0:armhf libavcodec58:armhf libavformat58:armhf libswscale5:armhf libsdl2-mixer-2.0-0:armhf cabextract libappindicator1 libnm0 libtcmalloc-minimal4 binfmt-support liblttng-ust-dev libcairo2:armhf libgmp10:armhf libvulkan1:armhf libudev-dev:armhf libsdl2-dev libpng-dev:armhf libcups2:armhf libcups2 -y && sudo nala upgrade -y

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

cd /usr/lib/arm-linux-gnueabihf/
sudo ln -s  libpng16.so libpng12.so.0

sudo rm /usr/include/drm/drm_fourcc.h && sudo rm /usr/include/drm/lima_drm.h && sudo apt -y --fix-broken install && sudo aptitude upgrade -y

echo 'export STEAMOS=1
export STEAM_RUNTIME=1
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1' | sudo tee /etc/profile.d/steam.sh

#if you have a high resolution screen use this instead
#echo 'export GDK_SCALE=2' | sudo tee -a /etc/profile.d/steam.sh
source /etc/profile.d/steam.sh

~/box86/install_steam.sh

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

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


Final Steps we need for ChromiumOS (FydeOS/openFyde):

Steam on ARM64 trick:

#create steam entry on the shelf 
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

sudo cp -r ~/steam/share/* /usr/share/ && sudo cat ~/steam/share/applications/steam.desktop && sudo sed 's#Exec=/usr/bin#Exec=/usr/local/bin#g' && sudo tee /usr/share/applications/steam.desktop

#start steam with this:
/usr/local/bin/steam

Best debug is by Zenity:

sudo aptitude install zenity -y
#select n then Y and start steam with
/usr/local/bin/steam
#re-do the process with
rm ~/.local/share/Steam -rf

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.

Enhancing Gaming Experience

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


Alternatively if you can use the NicoD Script (Optional might not work of 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

3 Likes