iPad is too limited, Android is too tiny. So why not combine then together?
使用 Android + Termux Proot Debian + KasmVNC + iPad的Safari,建立一個跑電腦版軟體的行動工作環境。
iPad做不到的事,就讓Android手機來做吧!
透過Termux Proot將Android手機當作電腦使用,執行Linux電腦軟體,再透過iPad控制。
iPad遠端到Android上的Linux容器操作。iPad做不到的事,就讓Android手機來做吧!
不明白標題在說什麼?我想做的就是這樣的使用情景:
1. 動機#
我現在的行動工作搭配是Android手機搭配iPad,雖然是不同生態系,但是透過LocalSend這類自由軟體的幫助,二者相處還算愜意。得益於Android手機的大電量,開熱點給iPad用個6小時好像也不會沒電。
這一切都是為了在iPad跑電腦版軟體,有些軟體電腦版非常智慧,移植到手機版後就變成智障。不論自由軟體還是專有軟體皆然。
比如筆記軟體Joplin,iPad的Joplin只是iPhone放大版,功能過於簡陋,尚未移植許多電腦版的功能,例如筆記關係圖。在處理筆記的時候總是綁手綁腳,很多東西得開電腦處理。所以我就在想要怎麼跑電腦版Joplin。
把iPad賣掉換Surface嗎,是有想過,不過不要削足適履,所以就拿Android手機的Termux出來用了。Termux不需要Root就能跑Linux桌面環境的容器,並且可以透過VNC給iPad存取。
之前分享過 Scrcpy與 Rustdesk鏡射Android到大螢幕的做法,但我不需要整個Android畫面呀!只要Linux就好。headless的執行VNC伺服器,只要Android RAM夠大掛在背景就不會輕易被kill,所以Linux程式在跑的時候Android手機還是可以使用。
iPad的網路都是從Android分享的,因此遠端桌面的區域連線延遲低。iPad就成為了Android的Linux容器的螢幕。
若是能選擇的話,Android手機應該要用樹莓派代替,我有寫過 樹莓派搭配iPad的用法,畢竟I/O較為完整,樹莓派的體積亦適合隨身攜帶。但是如果手機有大電量和強力處理器,何不就地利用呢?就比如我這支Sony Xperia 10 V性能只有iPad Air 6的三分之一,但開熱點不發熱,還有超長續航,就壓榨拿來跑一下Linux吧!
ㄟ你說這樣有點本末倒置,iPad性能那麼強,結果卻只是當作遠端桌面的客戶端,本應當負擔的高強度運算全部壓在Android端?沒辦法啊,誰教你iOS連跑個iSH Shell都費力,虛擬機又遲不開放,故Android就算慢,能跑得東西還是比iPad要多元,比iPad要更像電腦。等到Android被壓榨到沒電之後,再從你iPad這邊透過TypeC充電。
2. 設定過程#
為了簡化登入流程,我採用的是KasmVNC的網頁VNC伺服器方案,故iPad端什麼APP都不用準備,只要瀏覽器就能登入了。
設定 Termux Proot Debian,安裝XFCE桌面
啟動KasmVNC伺服器,依照指示新增使用者,設定使用XFCE
vncserver
- 啟動KasmVNC伺服器
vncserver
開啟熱點,分享網路給iPad
取得Android的區域IP
ifconfig
- 在iPad的Safari輸入
https://手機區域IP:8444
,登入帳號即可連線
3. 在Termux的Linux安裝軟體#
大部分自由軟體都有ARM64版本的套件,用APT安裝即可。
關於Joplin,我使用 leaguecn編譯的deb套件。剛好遇到志同道合之人,他也有在Android跑Joplin電腦版!
Chromium核心的軟體在Proot內啟動的時候,需要編輯/usr/share/applications/*.desktop
的Exec==選項,加入--no-sandbox
參數才能啟動,Visual Studio Code亦同。
儘管iPadOS的小白點能夠模擬觸控板,但是還是建議接上藍牙鍵盤操作Linux桌面。
雖然KasmVNC可以使用iOS的輸入法打中文,但是不太穩定,所以我是在Termux容器裡面安裝Fcitx5輸入。
4. 尚未解決的問題#
無法串流Linux桌面的音訊到iPad,單靠KasmVNC做不到。因為iOS沒有PulseAudio伺服器,只能從Android端的Termux發出聲音。不過在外的話也不會隨便把音樂放出來吧,接上耳機就搞定。
關於VNC圖形效率不好的問題,KasmVNC已經是針對現代技術重新設計的伺服器了,起碼品質比TigerVNC好,別強求了。
這裡倒是有個值得考慮的方案:在iPad跑X伺服器,再透過X11 Forwarding投影Linux容器的螢幕,就像Termux X11那樣用法,只不過是遠端。可是App Store唯一的X Server APP Mocha X11好貴呀…而且我用試用版測試了VirGL 3D加速有問題。