Box86/Box64はARMアーキテクチャのLinuxシステム向けに設計されたトランスレーターで、x86アーキテクチャのプログラムを実行できるようにするものです。さらに"Wine"という互換レイヤーと組み合わせることで、Windowsのexeプログラムを実行します。
Box86 + WineはWindows 32ビットプログラムに対応し、Box64 + Wine64はWindows 64ビットプログラムに対応します。
もちろん一番よいのはWindows ARMを直接入れることです…でもPinePhoneで動くのでしょうか?XD Box86はRaspberry Piのようなシングルボードコンピューターに向いています。AndroidのProotと比べれば、少なくとも本物のLinux環境なので、Box86とBox64を管理しやすく、32ビットchrootを別途用意する必要すらなく、実行結果も比較的まともです。
現在はスマートフォン向けLinuxディストリビューションがあり、PinePhoneというスマートフォンもあります。つまりPinePhone上でもこの目標を実現できます。なのでPinePhoneは要するに画面付きの開発ボードです。
1. 前提条件#
Box86は現時点では自分でコンパイルする必要があり、muslCを使うディストリビューションには対応していません。つまりpostmarketOSではBox86をコンパイルできません。
パッケージのインストールを楽にするため、私のディストリビューションはMobian (Debianベース)です。
2. Box86とBox64をコンパイルする#
PinePhoneは遅いので、スレッドを全開にしてもコンパイルには少なくとも30分ほど待つ必要があります。
- 以下のパッケージをインストールします
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install git build-essential cmake wget gcc-arm-linux-gnueabihf zenity:armhf libasound*:armhf libstdc++6:armhf mesa*:armhf- Box86をコンパイルします
cd
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build; cd build; cmake .. -DRPI4ARM64=1 -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
sudo make install
cd
rm -rf box86- Box64をコンパイルします
cd
git clone https://github.com/ptitSeb/box64.git
cd box64
mkdir build; cd build; cmake .. -DRPI4ARM64=1 -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
sudo make install
cd
rm -rf box643. WineとWine64をダウンロードする#
以下のビルド済みWine実行ファイルはPlayOnLinuxのサイトから入手したもので、Phoenicis版を使います。
- 32ビットWineをダウンロードします
mkdir ~/wine
cd ~/wine
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-amd64/PlayOnLinux-wine-4.7-upstream-linux-amd64.tar.gz
tar -xvf *.tgz
mv wine/* ~/wine
rm -rf *.tgz wine
cd- 64ビットWineをダウンロードします
mkdir ~/wine64
cd ~/wine64
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-amd64/PlayOnLinux-wine-6.17-upstream-linux-amd64.tar.gz
tar -xvf *.tar.gz
cd4. 実行環境を分ける#
実行しやすくするため、それぞれスクリプトを書きます。内容はどちらも、この作業セッションで使う環境変数を先に宣言し、最後に実行する内容をつなげる形です。たとえばbox86 wine explorerはWineのファイルマネージャーを開きます。exeを実行する場合は**box86 wine <exe路徑>**です。
1.Box86のスクリプトrunwine.sh
export WINEPREFIX=~/.wine
export BOX86_PATH=~/wine/bin/
export BOX86_LD_LIBRARY_PATH=~/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
box86 wine explorer- Box64のスクリプトrunwine64.sh
export WINEPREFIX=~/.wine64
export WINEARCH=win64
export BOX64_PATH=~/wine/bin/
export BOX64_LD_LIBRARY_PATH=~/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
box64 wine64 explorer- スクリプトに実行権限を付与します
chmod +x runwine.sh
chmod +x runwine64.sh- Winetricksを使う必要がある場合は、Box86公式の方法を参照し、Wine(32ビットのみ)にシンボリックリンクを作成します。Winetricksに、システム上へ本当にWineがインストールされていると思わせるわけです。
5. APPの実際の動作状況#
デスクトップ環境がPhoshの場合、PinePhoneをType-C拡張ポート経由でPCモニター、キーボード、マウスに接続すると、Phoshはウィンドウモードに入り、PC版Linuxのような操作感になります。
実測ではNotepad++、Foobar2000のような文書・一般アプリは正常に動作しました。
ただしゲームについては、PinePhoneの性能ではかなり古いGAL Gameを少し動かせる程度です。しかもKeyのAIR (2000)ですらCPUをほぼ全部食います。3Dゲームは言うまでもありません。

