容器化與Box86執行exe - 手機討論

Wallis avatar
By Wallis
at 2022-01-17T20:32

Table of Contents

心得:
也許手機未來能執行Steam商店,看是要用Box86硬跑x86 Linux版的Steam,還是隔一層Wine
跑Win32版本的Steam,至少樹莓派台灣已有成功案例。
https://i.imgur.com/uLDF6ts.png

以內核支援docker的手機,用Termux執行32位元的Ubuntu容器,接著編譯Box86(x86指令轉A
RM的轉譯器),再用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/Play
OnLinux-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
https://i.imgur.com/klpjZcQ.jpg
https://i.imgur.com/yLTmoHs.jpg
https://i.imgur.com/WepO17T.jpg

--
Tags: 手機

All Comments

Skylar DavisLinda avatar
By Skylar DavisLinda
at 2022-01-15T13:08
對簽名檔的容器比較有興趣
Elizabeth avatar
By Elizabeth
at 2022-01-19T06:47
很久很久以前在mac上面用過wine
體驗很差
Connor avatar
By Connor
at 2022-01-15T13:08
Olive avatar
By Olive
at 2022-01-19T06:47
不是很懂這樣做除了好玩之外, 還能做什麼有趣的事情
Ida avatar
By Ida
at 2022-01-15T13:08
目前是好玩,不過未來值得期待
Zora avatar
By Zora
at 2022-01-19T06:47
效能還好ㄇ
Emily avatar
By Emily
at 2022-01-15T13:08
wine的特性是把需要的元件全掛滿就能接近原生執行
Frederic avatar
By Frederic
at 2022-01-19T06:47
問題在要掛滿效能相關元件門檻蠻高的 一要有二要詳設
Una avatar
By Una
at 2022-01-15T13:08
但手機上需要經由ARM與X86之間轉譯 效能是不太能期待
Valerie avatar
By Valerie
at 2022-01-19T06:47
結論是至少手機上應該是還無法期待跑PC遊戲
Brianna avatar
By Brianna
at 2022-01-15T13:08
效能卡在D3D吧,在box86底下能跑DXVK嗎?

各家電信商下載/上傳速度上限

Vanessa avatar
By Vanessa
at 2022-01-17T19:36
各位好 經過統整分享一下4G及5G 各家電信商下載及上傳速度上限 各位鄉民 如果手機有ROOT也可以分享一下 目前使用的電信商月租及方案所設定的下載及上傳上限,我在統整整理 謝謝 https://goo.gl/9a5k3X https://i.imgur.com/KmRFTH7.jpg https: ...

三星S20 OneUI 4.0更新

Elma avatar
By Elma
at 2022-01-17T19:35
不囉嗦,先上圖 https://i.imgur.com/7Yrp69d.jpg 小弟的S20出現了 我想S20+/S20 Ultra應該也都收得到了   如果想嘗鮮的 可以衝了   (我等各位心得)   ---- Sent from BePTT - ...

台灣之星5g吃到飽

Ingrid avatar
By Ingrid
at 2022-01-17T18:48
※ 引述《aeolus86 (RYAN AEOLUS86)》之銘言: : 本來我對台星5g完全沒興趣,但是有鑑於台灣之星會被併到台灣大哥大,以後基地台合併 : 使用的話,台星5g升級是不是會很有感? : 最近收到簡訊,直接申辦是不是最佳解?還是有更好的方案呢?順帶一提本人是雙11門號 : 188吃到飽 : h ...

台灣大哥大自體循環疑問

Puput avatar
By Puput
at 2022-01-17T17:59
今天去辦了台哥大的預付卡 付了$300用好就回家了 回家後看了一下那個$300變成贈送通話$300 請問這個通話費是有期限的嗎??? 之後自體循環的話我是不是只要儲值$50的250mb流量就可以了 然後我去辦的時候門市問我要不要關掉網路功能 我說好 這樣之後會沒辦法儲值$50那個 流量嗎? --- ...

怎麼做才能試用手機

Hedwig avatar
By Hedwig
at 2022-01-17T17:46
最近想買一台手機,但不確定它是否符合我的需求需求如下: 玩熊大上菜,但我很廢需要開自動點擊器輔助 之前買了一台手機,一般使用沒什麼問題,執行遊戲也滿順的。但開自動點擊器之後螢幕 就失靈,餐都出不出去。大概破螢幕沒辦法承受這麼高頻率的點擊www 去實體店摸展示品沒辦法測試這個功能 網購說鑑賞期不是試用期, ...