快轉到主要內容

把手機當電腦用:iPad + Android Termux跑電腦版Linux軟體

· 民國113年甲辰年
·
切換繁體/簡體
分類 智慧型手機 Termux教學
標籤 Termux Linux Android IPad KasmVNC
目錄

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手機來做吧!

Joplin整理筆記

Visual Studio Code啟動pygame

不明白標題在說什麼?我想做的就是這樣的使用情景:

1. 動機
#

我現在的行動工作搭配是Android手機搭配iPad,雖然是不同生態系,但是透過LocalSend這類自由軟體的幫助,二者相處還算愜意。得益於Android手機的大電量,開熱點給iPad用個6小時好像也不會沒電。

這一切都是為了在iPad跑電腦版軟體,有些軟體電腦版非常智慧,移植到手機版後就變成智障。不論自由軟體還是專有軟體皆然。

比如筆記軟體Joplin,iPad的Joplin只是iPhone放大版,功能過於簡陋,尚未移植許多電腦版的功能,例如筆記關係圖。在處理筆記的時候總是綁手綁腳,很多東西得開電腦處理。所以我就在想要怎麼跑電腦版Joplin。

把iPad賣掉換Surface嗎,是有想過,不過不要削足適履,所以就拿Android手機的Termux出來用了。Termux不需要Root就能跑Linux桌面環境的容器,並且可以透過VNC給iPad存取。

之前分享過ScrcpyRustdesk鏡射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都不用準備,只要瀏覽器就能登入了。

  1. 設定Termux Proot Debian,安裝XFCE桌面

  2. 安裝ARM64架構的KasmVNC套件

  3. 啟動KasmVNC伺服器,依照指示新增使用者,設定使用XFCE

vncserver
  1. 啟動KasmVNC伺服器
vncserver
  1. 開啟熱點,分享網路給iPad

  2. 取得Android的區域IP

ifconfig
  1. 在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加速有問題。

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。