🇺🇸 English version
Box86/Box64是x86 → ARM指令的轉譯器。因為Box86的出現使得樹莓派這類ARM單板電腦也能玩遊戲了,至於Linux手機也可以執行Box86。

影片操作示例
在Github上有一篇寫給PinePhone/PinePhone Pro的教學:Raezroth/Linux-ARM-Gaming-Chroot,該教學適用於Arch Linux ARM / Mobian。
雖然我有買PinePhone,但是若要玩遊戲,還是拿性能較強的小米Poco F1出來吧,這支也可以刷Mobian。
下面的教學是參考Raezroth後針對Mobian寫的,按照教學手動設定環境,安裝Box86,開啟Steam,轉譯x86版的Proton玩Windows only的遊戲。注意我的桌面環境為Wayland協定的Gnome。
首先要建立Debian的chroot環境。為什麼不直接在Mobian裝就好了?因為要讓Box86和Box64同時存在,有必要建立隔離的32位元環境。
- 安裝以下套件
1
2
| sudo apt update
sudo apt install debootstrap debian-archive-keyring x11-xserver-utils dbus-x11
|
- 建立gaming目錄。將擁有者變更為root才能初始化systemd。
1
2
| mkdir gaming
sudo chown root:root gaming
|
- 用debootstrap下載Debian系統檔案,架構為ARM32
1
| sudo debootstrap --arch armhf --components=main,universe sid gaming http://ftp.tw.debian.org/debian/
|
- 新增
startg.sh
指令稿,填入以下內容:
1
2
3
4
5
6
7
8
9
| cd gaming
sudo mount -t proc /proc proc/
sudo mount -t sysfs /sys sys/
sudo mount --bind /dev dev/
sudo mount -t devpts devpts dev/pts
sudo mount --bind /run run/
sudo mount --bind /run/user/1000 run/user/1000
sudo mount -t tmpfs tmpfs tmp/
sudo chroot . /bin/bash
|
- 賦予指令稿執行權限然後執行,登入chroot。
1
2
| chmod + startg.sh
./startg.sh
|
- 更新與安裝VIM
1
2
| apt update
apt install vim
|
- 用VIM編輯
/root/.bashrc
,加入以下環境變數:
1
2
3
4
5
6
7
8
| export LC_ALL="C"
export LANGUAGE="C"
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
export STEAMOS=1
export STEAM_RUNTIME=1
# 原文提及要執行Steam,此指令每次開機都要執行一次,因此我寫在這裡
chmod 1777 /dev/shm
|
- 安裝編譯用的工具
1
2
3
4
5
| dpkg --add-architecture arm64
apt update
apt install sudo vim make cmake git wget gnupg libx11-dev libgl-dev libvulkan-dev libtcmalloc-minimal4 libnm0 zenity chromium alsamixergui libsdl2-dev unzip libgles-dev firefox-esr:arm64 libx11-dev:arm64 libvulkan-dev:arm64 libsdl2-dev:arm64 libgl-dev:arm64 libc6-dev:arm64 libgles-dev:arm64 libsdl2-dev
|
- 新增一般使用者,加入users群組,變更密碼
1
2
3
4
| adduser --home /home/ivon ivon
usermod -g users ivon
passwd ivon
passwd root
|
- 執行
visudo
,找到root段加入以下內容,讓使用者擁有sudo權限:
1
2
| root ALL=(ALL:ALL) ALL
ivon ALL=(ALL:ALL) ALL
|
- 切換至剛剛建立的使用者
- 在家目錄新增
.profile
,加入以下環境變數:
1
2
3
4
5
6
7
8
| export SDL_VIDEODRIVER=wayland
export WAYLAND_DISPLAY=wayland-1
export GDK_BACKEND=wayland
export XDG_SESSION_TYPE=wayland
export XDG_RUNTIME_DIR=/run/user/1000
export DISPLAY=:1
export XSOCKET=/tmp/.X11-unix/X1
export _JAVA_AWT_WM_NONREPARENTING=1
|
Box86現在有事先編譯的deb檔可以安裝了,當然要自行編譯也是可以的。
- 加入軟體庫並安裝Box86:
1
2
3
| sudo wget https://itai-nelken.github.io/weekly-box86-debs/debian/box86.list -O /etc/apt/sources.list.d/box86.list
wget -qO- https://itai-nelken.github.io/weekly-box86-debs/debian/KEY.gpg | sudo apt-key add -
sudo apt update && sudo apt install box86 -y
|
- 加入軟體庫並安裝Box64:
1
2
3
| sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
wget -O- https://ryanfortner.github.io/box64-debs/KEY.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/box64-debs-archive-keyring.gpg
sudo apt update && sudo apt install box64 -y
|
- 回到宿主機系統(Mobian),將chroot內部的binfmt複製到宿主機:
1
| sudo cp -r ~/gaming/etc/binfmt.d/box* /etc/binfmt.d/
|
- 重新啟動宿主機的binfmt服務。回到chroot內部的終端機。
1
| sudo systemctl restart systemd-binfmt
|
- 安裝Steam的依賴套件
1
2
3
4
| cd ~/Downloads
wget http://ftp.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_armhf.deb
wget http://ftp.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_armhf.deb
sudo apt install ./lib*
|
- 安裝Steam的deb檔
1
2
3
| wget https://repo.steampowered.com/steam/archive/stable/steam_latest.deb
sudo apt install ./steam_latest.deb
cd
|
- 執行Steam
1
| steam +open steam://open/minigameslist
|
登入Steam後,點選左上角Steam設定→Steam Play下載安裝Proton。當啟動Windows遊戲時,Steam會自動下載Proton執行。

雖然Steam可以開啟Big Picture Mode,但這個PinePhone比較有用,因為Poco F1的USB和藍芽不正常。

Raezroth採用的是wine-tkg,內含Wine與Wine64。
- 安裝Wine:
1
2
3
4
5
6
| cd ~/Downloads
wget https://github.com/Frogging-Family/wine-tkg-git/releases/download/5.22.r2.g0ae73155/wine-tkg-staging-fsync-git-5.22.r2.g0ae73155-309-x86_64.pkg.tar.zst
mkdir TKG-5.22/ && cd TKG-5.22/
tar -xvf ../wine-tkg-staging-fsync-git-5.22.r2.g0ae73155-309-x86_64.pkg.tar.zst
cd ~/
mv ~/Downloads/TKG-5.22/ ~/wine-tkg
|
- 將Wine的路徑加入環境變數。原文是加到
.profile
,但我要source後才會讀取,因此直接加到.bashrc
。
1
| echo 'PATH=$PATH:/home/$USER/wine-tkg/usr/bin' >> ~/.bashrc
|
執行x86架構Windows遊戲:This is a game,正常執行。因為Poco F1不能使用USB,所以使用Gnome Desktop Wayland的RDP遠端桌面功能,從電腦遠端輸入滑鼠鍵盤。

再來是x86架構的Linux遊戲nacrissu,正常執行。

剛剛安裝的Wine也能開普通的exe,例如Notepad++。

Box86/Box64雖可以在Android安裝,但Android核心缺乏binfmt模組,使得Steam開不起來,並且Android很難達成硬體加速。這是我選擇拿純Linux手機來跑的原因。
經過測試,Box86/Box64玩3D遊戲問題還是很多,Wine官網寫可以開啟"IL 2 1946",但Box86卻開不起來,或許跟Wine的版本也有關係。