快轉到主要內容

[Root] Linux Deploy chroot環境安装Box86 Wine + Box64 Wine64

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

🇺🇸 English version

本文的操作需要Root權限,免Root的版本請看 Termux Proot安裝Box86

註:不是所有程式都能用Box64 + Wine跑,請先在x86架構的Linux PC上用Wine測試,確認你的Windows程式能正常執行再用Box64執行。如果有任何問題,請優先向 Box64開發者回報看看。

這篇文章探討如何讓Box86與Box64共存於同一個手機上的ARM 64位元環境,這樣子就可以按情況執行32位元或者64位元的Wine + Windows exe應用程式,甚至是同時執行。

(左邊32位元彈珠檯,右邊64位元播放器)

前3個段落討論如何設定環境,第4段和第5段討論Wine執行策略:如何不要讓32位元和64位元互相干擾。

1. 安裝chroot並開啟多架構支援
#

  1. 首先用Linux Deploy在手機安裝64位元chroot Ubuntu,升級至Ubuntu 20.04。

  2. 開啟多架構支援:

dpkg --add-architecture armhf
  1. 由於Linux Deploy的Ubuntu的source.list不完整,因此編輯/etc/apt/sources.list,修改成如下:
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal-updates main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal universe
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal-updates universe
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal multiverse
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal-updates multiverse
deb [arch=arm64,armhf] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse
  1. 安裝相關套件
sudo apt update
sudo apt install git build-essential cmake wget gcc-arm-linux-gnueabihf zenity:armhf libasound*:armhf libstdc++6:armhf mesa*:armhf

2. 編譯Box86和下載Wine
#

  1. 使用樹莓派4的參數編譯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. 下載Wine 7.0-rc5
mkdir wine
cd wine
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-x86/PlayOnLinux-wine-7.0-rc5-upstream-linux-x86.tar.gz
tar -xvf *.tar.gz
cd

3. 編譯Box64和下載Wine64
#

  1. 編譯Box64
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
  1. 下載Wine64 6.17
cd
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. 使用$WINEPREFIX區隔執行環境
#

這邊有二個重要的環境變數。

  1. WINEPREFIX: wine預設執行會在使用者家目錄建立.wine的目錄,也就是C槽。如果在執行Wine前先宣告環境變數WINEPREFIX,Wine執行時會按照WINEPREFIX的位置建立一個新目錄,這樣可以用於區隔「Box86 + Wine」與「Box64 + Wine64」,免得互相干擾。

  2. Box86/64的lib目錄: 因為這裡沒有建立符號連結,所以要執行Box86/64 + Wine之前都要先宣告環境變數BOX86_PATH和BOX86_LD_LIBRARY_PATH,指向Wine的位置,這樣Box86/64才找的到檔案。

  3. 例如我要執行32位元的Box86 + Wine,完整指令如下:

export BOX86_PATH=/home/android/wine/bin/
export BOX86_LD_LIBRARY_PATH=/home/android/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
box86 wine *.exe
  1. 如果是64位元的Box64 + Wine64:
#結合前面所提的WINEPREFIX,新建一個目錄.wine64給Wine64儲存資料,跟預設的Wine分開
export WINEPREFIX=/home/android/.wine64
export WINEARCH=win64
export BOX64_PATH=/home/android/wine/bin/
export BOX64_LD_LIBRARY_PATH=/home/android/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu:/lib/aarch64-linux-gnu/
box64 wine64 *.exe
  1. 注意這些環境變數是暫時的,開新的終端機頁面就會失效。

5. 來執行exe吧
#

實際執行影片(彈珠台)

6. 缺陷
#

即使Box86和Box64二者共存,Winetrciks還是無法正常執行。參考官方的做法建立符號連結也不行,Winetricks會混亂。

7. 參考資料
#

  • [linux deploy debian容器使用box86和box64注意事项 - Bilibili](linux deploy debian容器使用box86和box64注意事项 )
  • box86/docs/COMPILE.md - Github

相關文章

用Docker容器在Android手機跑32位元Ubuntu容器,執行Windows exe
智慧型手機 Root與刷機 Wine Docker Box86 Box64
免Root將Android手機去Google化
智慧型手機 Root與刷機 Degoogle microG
Termux備份還原檔案教學
智慧型手機 Termux教學

留言板

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

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

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