Steam in box86: Difference between revisions
No edit summary |
No edit summary |
||
Line 34: | Line 34: | ||
After this, you should be inside of the Debian container. | After this, you should be inside of the Debian container. | ||
=== Installing box86 and box64 === | |||
Now that you're inside the container, you can prepare to install box86 and box64. | |||
First, you will need to enable the armhf architecture in the dpkg package manager so that Debian can install 32-bit packages: | |||
<syntaxhighlight lang="shell-session"> | |||
sudo dpkg --add-architecture armhf | |||
</syntaxhighlight> | |||
Next, we will add repositories for installing box86: | |||
<syntaxhighlight lang="shell-session"> | |||
sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list | |||
sudo wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg | |||
sudo apt update | |||
sudo apt install box86-sd845 -y | |||
</syntaxhighlight> | |||
and box64: | |||
<syntaxhighlight lang="shell-session"> | |||
sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list | |||
sudo 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 box64 -y | |||
</syntaxhighlight> | |||
=== Installing Steam === | |||
To install Steam, we download steam.deb from the Steam website and install it with apt install: | |||
<syntaxhighlight lang="shell-session"> | |||
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb | |||
apt install ./steam.deb -y | |||
</syntaxhighlight> | |||
Finally, there are a bunch of extra dependencies we need to install for Steam to run properly. Install them with the following command: | |||
<syntaxhighlight lang="shell-session"> | |||
sudo apt install libc6:armhf libsdl2-2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl2-mixer-2.0-0:armhf libsdl2-ttf-2.0-0:armhf libopenal1:armhf libpng16-16:armhf libfontconfig1:armhf libxcomposite1:armhf libbz2-1.0:armhf libxtst6:armhf libsm6:armhf libice6:armhf libgl1:armhf libxinerama1:armhf libxdamage1:armhf libibus-1.0-5 libncurses5:armhf libgl1-mesa-dri libgl1-mesa-dri:armhf libglu1-mesa libglu1-mesa:armhf libvulkan1 libvulkan1:armhf -y | |||
</syntaxhighlight> |
Revision as of 03:52, 25 October 2024
THIS GUIDE IS A WORK IN PROGRESS, Use the Steam_in_FEX guide to run Steam for now.
This is a guide for setting up box86 and box64 inside of an Debian Distrobox container to run Steam games on arm64 devices.
box86/box64
box86 is an x86 emulator for arm32 Linux. box64 is an x86_64 emulator for arm64 Linux. Together, they can be used to run x86 and x86_64 applications on an arm64 Linux device. In the case of Steam, both 32- and 64-bit executables are used, and games can be either format, so we will need to set up a system with both box86 and box64 together. Because box86 runs purely in 32-bit mode, the host system needs a fairly complete arm32 system installed. The easiest way to do this is using Debian, as it has a full set of packages for both arm32 (armhf) and arm64 along with the ability to install both at the same time using multiarch. In order to use this setup on postmarketOS I will be using Distrobox to install a Debian arm64 image on top of postmarketOS that I can then enable the armhf architecture on and install the necessary libraries in both arm64 and armhf format.
Distrobox
Distrobox is a container manager designed to install and run persistent containers, optionally with root privileges and their own init system, on top of another distribution. It is available in postmarketOS. To install, simply run:
sudo apk add distrobox
Installing Debian image
Create the Debian Distrobox install by running:
distrobox create --image debian:latest --root
This will create a Debian container with root privileges. I tested with --init and without and the setup works either way, so I recommend not using --init as it adds unnecessary overhead.
Then you will need to enter the image by running:
distrobox enter --root debian-latest
This will go through the first-time setup which involves downloading all the packages and should eventually present you with a password prompt to create a password for your user account within the container. If it doesn't provide this prompt on the first run, run this command again and it should then give the password prompt.
After this, you should be inside of the Debian container.
Installing box86 and box64
Now that you're inside the container, you can prepare to install box86 and box64.
First, you will need to enable the armhf architecture in the dpkg package manager so that Debian can install 32-bit packages:
sudo dpkg --add-architecture armhf
Next, we will add repositories for installing box86:
sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
sudo wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
sudo apt update
sudo apt install box86-sd845 -y
and box64:
sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
sudo 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 box64 -y
Installing Steam
To install Steam, we download steam.deb from the Steam website and install it with apt install:
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb
apt install ./steam.deb -y
Finally, there are a bunch of extra dependencies we need to install for Steam to run properly. Install them with the following command:
sudo apt install libc6:armhf libsdl2-2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl2-mixer-2.0-0:armhf libsdl2-ttf-2.0-0:armhf libopenal1:armhf libpng16-16:armhf libfontconfig1:armhf libxcomposite1:armhf libbz2-1.0:armhf libxtst6:armhf libsm6:armhf libice6:armhf libgl1:armhf libxinerama1:armhf libxdamage1:armhf libibus-1.0-5 libncurses5:armhf libgl1-mesa-dri libgl1-mesa-dri:armhf libglu1-mesa libglu1-mesa:armhf libvulkan1 libvulkan1:armhf -y