メインコンテンツへスキップ

PinePhoneでBox64を通してLinux上でWindows exeを動かす

·
カテゴリー スマートフォン 真のLinuxスマホ
タグ Box86 Box64 PinePhone Wine
目次

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分ほど待つ必要があります。

  1. 以下のパッケージをインストールします
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
  1. 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
  1. 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 box64

3. WineとWine64をダウンロードする
#

以下のビルド済みWine実行ファイルはPlayOnLinuxのサイトから入手したもので、Phoenicis版を使います。

  1. 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
  1. 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
cd

4. 実行環境を分ける
#

実行しやすくするため、それぞれスクリプトを書きます。内容はどちらも、この作業セッションで使う環境変数を先に宣言し、最後に実行する内容をつなげる形です。たとえば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
  1. 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
  1. スクリプトに実行権限を付与します
chmod +x runwine.sh
chmod +x runwine64.sh
  1. 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ゲームは言うまでもありません。

6. 参考資料
#

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。