Box86/Box64是針對ARM架構的Linux系統設計的轉譯器,使之能執行x86架構的程式。接著再配合"Wine"這個相容層執行Windows的exe程式。
Box86 + Wine對應Windows 32位元程式,而Box64 + Wine64對應Windows 64位元程式。
當然最好就是直接裝Windows ARM…但PinePhone跑得動嗎?XD Box86適合用於樹莓派這種單板電腦,跟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
- 編譯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 box64
3. 下載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
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
- 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擴充埠外接電腦螢幕和鍵盤滑鼠,Phosh會進入視窗模式,變得像是電腦Linux的操作。
實測Notepad++、Foobar2000之類的文書程式正常執行。
但遊戲部份,PinePhone的性能只能玩些很老的GAL Game,且連Key的AIR (2000)都會佔用幾乎全部的CPU,3D遊戲就更不用說了。