[心得] 容器化與Box86執行exe
心得:
也許手機未來能執行Steam商店,看是要用Box86硬跑x86 Linux版的Steam,還是隔一層Wine跑Win32版本的Steam,至少樹莓派台灣已有成功案例。
https://i.imgur.com/uLDF6ts.png
以內核支援docker的手機,用Termux執行32位元的Ubuntu容器,接著編譯Box86(x86指令轉ARM的轉譯器),再用Wine執行exe。
至於為什麼有Proot Linux,卻要使用容器? 除方便管理外,這樣能在64位元的手機跑32位元或64位元的Ubuntu容器,分別執行Box64和Box86,不需要裝不同位元的Termux,交叉編譯設定太麻煩惹。
那跟Exagear for Termux的比起來呢?Exagear是跨架構模擬i686的環境,以效能換取相容性。
比較一下執行過程:
#Exagear for Termux:
Termux (ARM64) → Debian Proot(i686) → Wine (i686) → exe檔(Win32)
#容器:
Termux (ARM64) → Ubuntu容器(ARM32) → Box86 (ARM32) → Wine (x86) → exe檔(Win3
2)
Box86是設計給ARM平台直接轉譯x86指令使用,雖然經過層層轉譯,不過32位元開啟exe的成功率還是很高的。
## 容器安裝過程:
1. 執行Ubuntu arm32容器
sudo docker run -ti \
--net="host" \
--dns="8.8.8.8" \
-e DISPLAY=$DISPLAY \
-w /root \
-v $TMPDIR/.X11-unix:/tmp/.X11-unix \
-v $HOME/.Xauthority:/root/.Xauthority \
--platform=linux/arm \
arm32v7/ubuntu
2. 安裝TigerVNC
echo 'APT::Sandbox::User "root";' > /etc/apt/apt.conf
apt update
apt install tigervnc-standalone-server tigervnc-common sudo vim
3. 安裝xfce4
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
sudo apt install xfce4-terminal
sudo update-alternatives --config x-terminal-emulator
#選擇xfce4的終端機
4. 設定vncserver啟動腳本
touch $HOME/.vnc/xstartup
vim $HOME/.vnc/xstartup
#填入:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
chmod +x $HOME/.vnc/xstartup
5. 啟動vncserver (不設定密碼是因為會崩潰)
export DISPLAY=:1
vncserver -localhost no -geometry 1280x720 -SecurityTypes none --I-KNOW-THIS-IS-INSECURE
6. 編譯Box86
apt install git wget cmake build-essential python3 gcc-arm-linux-gnueabihf
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build
cd build
cmake .. -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
make install
7. 下載32位元的Wine
cd
mkdir wine && cd wine
wget https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-x86/PlayOnLinux-wine-6.18-upstream-linux-x86.tar.gz
tar -xvf PlayOnLinux-wine-6.18-upstream-linux-x86.tar.gz
#環境變數
export BOX86_PATH=~/wine/bin/
export BOX86_LD_LIBRARY_PATH=~/wine/lib/
export BOX86_LOG=1
ln -s ~/wine/bin/wine /usr/local/bin/wine
#雖然不建議用root執行wine
mkdir .wine
box86 wine winecfg
#更新完後執行任意exe
box86 wine *.exe
8. 實際執行exe演示影片
https://youtu.be/SrLtbLJ9kU8
9.測試完後,將這個容器儲存成本機映像檔,至少約2GB。
sudo docker ps
sudo docker commit -a='Ivon' -m='XFCE4 insatlled' [id] arm32v7/ubuntu:v2
日後以此為基礎執行:
sudo docker run -ti \
--net="host" \
--dns="8.8.8.8" \
-e DISPLAY=$DISPLAY \
-w /root \
-v $TMPDIR/.X11-unix:/tmp/.X11-unix \
-v $HOME/.Xauthority:/root/.Xauthority \
--platform=linux/arm \
arm32v7/ubuntu:v2
##參考資料
https://gist.github.com/FreddieOliveira/efe850df7ff3951cb62d74bd770dce27
https://blog.csdn.net/evan_one/article/details/118059926
https://www.wongwonggoods.com/linux/docker/save-load-container/
https://yeasy.gitbook.io/docker_practice/image/commit
--
https://i.imgur.com/qBnCgUO.jpg
--
對簽名檔的容器比較有興趣
很久很久以前在mac上面用過wine
體驗很差
不是很懂這樣做除了好玩之外, 還能做什麼有趣的事情
目前是好玩,不過未來值得期待
效能還好ㄇ
wine的特性是把需要的元件全掛滿就能接近原生執行
問題在要掛滿效能相關元件門檻蠻高的 一要有二要詳設
但手機上需要經由ARM與X86之間轉譯 效能是不太能期待
結論是至少手機上應該是還無法期待跑PC遊戲
效能卡在D3D吧,在box86底下能跑DXVK嗎?
34
[心得] 手機跑Windows exe程式幾年前有一個Exagear的專案,能夠將X86翻譯成ARM的指令,配合Wine就能在手機執行電腦 程式,不需要root。 雖然後來Exagear的技術被華為買走,不過Github有俄羅斯人釋出內含Exagear的Termux Pro ot版。原理是在Termux安裝32位元的Debian Proot環境,再用Wine執行32位元的Windows EX E。27
[心得] 手機跑dockerWe need to go deeper... 基本上,Android手機沒辦法直接跑docker,因為kernel根本就不支援。雖然如此,我們還 有QEMU虛擬機呀,可惜KVM也沒辦法用。 網誌好讀版: 架構:Termux模擬器建立QEMU虛擬機,虛擬機裡面安裝Docker,然後再通訊埠轉發。20
Re: [心得] 個人自組NAS的心得大家好,看大家分享的設置真的很有趣,這篇小弟就野人獻曝一下,著重在軟體方面 的分享。自從開始學習 Docker 容器虛擬化技術之後,就想著能不能夠將所有的軟體跑 在 Docker 裡面,學習了一段時間終於有一些小心得。 使用 Ubuntu、Debian 之類的常見的 Linux 都可以跑 Docker。 首先這是我跑的所有容器20
[心得] 手機裝Windows 11的效能在手機上跑Windows 11...不是虛擬機,來看看有哪些程式能正常執行。 Renegade Project主要研究如何在手機上裝Windows 11 ARM版 目前只要處理器是高通s845的手機都有機會裝(現在一堆二手都蠻便宜的),例如極客灣用 的OnePlus 6T,而我的是小米Pocofone F1,按照外國Youtuber的教學。18
[心得] 手機上跑Linux KDE桌面環境Termux X11是一款充當XWayland伺服器的APP。 透過它,我們就能免Root在Android上跑KDE Plasma (Linux桌面環境),支援觸控手勢, 加上螢幕小鍵盤,若是平板的話就不太需要接鍵盤滑鼠了。 要注意的是,這只是一款APP,隨時都可以返回Android桌面。8
[心得] 3D硬體加速的Proot Linux## 一、目的 嘗試在Android手機執行Linux桌面程式,自行編譯驅動,觀看1080p影片和玩3D遊戲,外接 螢幕和鍵鼠操作。 網誌好讀版: 實際測試程式:5
[心得] 如何用Steam Deck玩黑白妹/夏日傳說感謝PanzerDragoo大大熱心教學,讓一般使用者如我比較知道如何在SteamDeck上執行 Non-Steam遊戲 也感謝starkwasker大大分享Warpinator,從PC把檔案處理好後藉由區網傳到SteamDeck真 的蠻方便的 看到有網友寫說SteamDeck只看到分享小黃油,原因很簡單,分享SD可以跑法環有意義嗎w- 作者: alanjiang (我只是想看清自己) 看板: Steam 標題: [心得] 如何用Steam Deck玩黑白妹/夏日傳說 時間: Fri Dec 23 11:19:31 2022 感謝PanzerDragoo大大熱心教學,讓一般使用者如我比較知道如何在SteamDeck上執行 Non-Steam遊戲
38
Re: [心得] 笑死!三星摺疊機保內還收檢測費18
[購機] Samsung Tab S9 or iPad Pro (2024)19
[購機] 8gne3 遊戲專用機 請益9
[討論] 對岸手機看youtube畫質不佳?12
Re: [心得] 笑死!三星摺疊機保內還收檢測費7
Re: [問題] 三星FOLD4掃描不到WIFI訊號6
[問題] 拍人像為什麼推X100而不是X100PRO4
[問題] 小米澎湃不能一直保持「自啟動」嗎?6
[購機] 20-30k長輩拍照機11
[討論] iPad Pro / Air 續航 重量 電池大小4
[問題] ipad連S23的熱點一直斷線8
[問題] 隨手記錄或筆記的app9
[問題] vivo的80W充電器?6
[方案] 中華5G1399即將約滿 求4G吃到飽1
[問題] iPhone messenger問題一大堆4
[問題] 為什麼台哥大的繳款條碼一定要行動數據X
[討論] 閒聊與購機的選擇 25K的選擇16
[閒聊] 充電器統一規格前 是什麼樣的世界?