快轉到主要內容

PinePhone Linux上跑Windows exe

智慧型手機 真Linux手機 Box86 Box64 PinePhone Wine
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

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
  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擴充埠外接電腦螢幕和鍵盤滑鼠,Phosh會進入視窗模式,變得像是電腦Linux的操作。

實測Notepad++、Foobar2000之類的文書程式正常執行。

但遊戲部份,PinePhone的性能只能玩些很老的GAL Game,且連Key的AIR (2000)都會佔用幾乎全部的CPU,3D遊戲就更不用說了。

6. 參考資料
#

相關文章

PinePhone的省電、超頻、溫控策略
智慧型手機 真Linux手機 PinePhone
PinePhone的幾個小眾系統:SailfishOS、LuneOS、Mameo Laste
智慧型手機 真Linux手機 PinePhone
PINE64是中國公司嗎?
智慧型手機 真Linux手機 Pine64 PinePhone

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。