Last active
August 22, 2026 07:12
-
-
Save de-wim/ba440a84f65d49955a1be15a328bd8b3 to your computer and use it in GitHub Desktop.
Script to install native aarch64 Steam on Asahi Linux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -eo pipefail | |
| export STEAMROOT=~/.local/share/Steam | |
| # Based almost entirely off of https://www.reddit.com/r/AsahiLinux/comments/1tk6zoe/steam_native_arm_aarch64_on_asahi_linux_fedora/ | |
| LATEST_ZIPFILE=$(curl -s https://client-update.steamstatic.com/steam_client_publicbeta_linuxarm64 | grep -E '"file"\s+"bins_linuxarm64_linuxarm64.zip' | cut -d '"' -f4) | |
| echo Downloading latest Steam aarch64 version | |
| curl -o bins_linuxarm64_linuxarm64.zip https://client-update.steamstatic.com/${LATEST_ZIPFILE} | |
| echo Extracting | |
| mkdir -p ${STEAMROOT} | |
| unzip -o -qq bins_linuxarm64_linuxarm64.zip -d ${STEAMROOT} | |
| # Enable public beta | |
| mkdir -p ${STEAMROOT}/package && echo publicbeta > ${STEAMROOT}/package/beta | |
| chmod -R u+rwx ${STEAMROOT}/steamrtarm64/ | |
| ln -sfn ${STEAMROOT}/steamrtarm64 ${STEAMROOT}/steamrt64 | |
| touch ${STEAMROOT}/.steam-enable-steamrt64-client | |
| if ! [ -e /usr/lib64/libvpx.so.6 ]; then | |
| sudo ln -s /usr/lib64/libvpx.so.9 /usr/lib64/libvpx.so.6 | |
| fi | |
| mkdir -p ~/.steam | |
| ln -sf ${STEAMROOT} ~/.steam/steam | |
| ln -sf ${STEAMROOT} ~/.steam/root | |
| ln -sf ${STEAMROOT}/linuxarm64 ~/.steam/sdkarm64 | |
| echo Searching for missing dependencies | |
| MISSING_PACKAGES="" | |
| for P in fex-emu gtk2 muvm ibus libvdpau GraphicsMagick; do | |
| if ! (dnf list --installed $P &> /dev/null); then | |
| MISSING_PACKAGES+="$P " | |
| fi | |
| done | |
| if ! [[ "${MISSING_PACKAGES}" == "" ]]; then | |
| echo Installing ${MISSING_PACKAGES} | |
| sudo dnf install ${MISSING_PACKAGES} | |
| fi | |
| chmod +x "$STEAMROOT/steamrtarm64/steamwebhelper" | |
| chmod +x "$STEAMROOT/steamrtarm64/steamwebhelper.sh" | |
| chmod +x "$STEAMROOT/steamrtarm64/gldriverquery" | |
| chmod +x "$STEAMROOT/steamrtarm64/vulkandriverquery" | |
| chmod +x "$STEAMROOT/steamrtarm64/steamsysinfo" | |
| chmod +x "$STEAMROOT/steamrtarm64/steam" | |
| chmod +x ${STEAMROOT}/steam.sh | |
| echo Installing menu entry | |
| mkdir -p ~/.local/share/icons/hicolor/scalable/apps | |
| curl https://upload.wikimedia.org/wikipedia/commons/8/83/Steam_icon_logo.svg -o ~/.local/share/icons/hicolor/scalable/apps/steam.svg | |
| curl https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Steam_icon_logo.svg/960px-Steam_icon_logo.svg.png -o steam.png | |
| for size in 32x32 48x48 64x64 96x96 128x128 512x512; do | |
| mkdir -p ~/.local/share/icons/hicolor/${size}/apps | |
| gm convert steam.png -resize ${size} ~/.local/share/icons/hicolor/${size}/apps/steam.png | |
| done | |
| rm steam.png | |
| cat > ~/.local/share/applications/steam.desktop <<EOF | |
| [Desktop Entry] | |
| Type=Application | |
| Name=Steam (arm64) | |
| Exec=muvm --env=LD_LIBRARY_PATH="${STEAMROOT}/steamrtarm64/:${LD_LIBRARY_PATH}" ${STEAMROOT}/steamrtarm64/steam -noverifyfiles | |
| Icon=steam | |
| Terminal=false | |
| Categories=Game; | |
| EOF | |
| cat <<EOF | |
| Installation completed! | |
| A Steam launcher entry has been added to the current users menu. | |
| To launch it from the command line, use: | |
| muvm --env=LD_LIBRARY_PATH="${STEAMROOT}/steamrtarm64/:${LD_LIBRARY_PATH}" ${STEAMROOT}/steamrtarm64/steam -noverifyfiles | |
| EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment