快轉到主要內容

Linux + Android雙系統平板(偽)的安裝設定過程

· 民國115年丙午年
·
切換繁體/簡體
分類 智慧型手機 真Linux手機
標籤 Waydroid Phosh Linux Android
目錄

Dual-boot (kind of) Linux and Android on a tablet.

我想我找到在Surface Go 2平板跑Linux + Android雙系統平板的操作方式了。不完美但起碼能用。

1. 預期效果
#

Linux允許在一個系統安裝多個桌面環境。GNOME是適合筆電與平板的重型桌面,Phosh則是適合手機與平板的輕量桌面。Waydroid是透過LXC容器在Linux跑Android APP的技術,非虛擬機,資源佔用低。將他們結合使用便有了以下效果。

用GNOME + Phosh + Waydroid可以達成在一個系統混合Linux + Android雙系統(偽)的體驗,又不用真的安裝搞雙重開機。這樣的話我們的Surface Go 2就能物盡其用了。

簡單來說就是,當我需要鍵盤滑鼠操作的電腦模式的時候就進入GNOME桌面。

當我要純觸控模式跑Android電子書APP的時候就進入Phosh桌面,啟動Waydroid進入Android桌面。

Phosh界面元素佔據畫面極小,讓Waydroid的Android APP能以幾乎全螢幕執行。

以上的操作,透過GDM界面切換。不用重開機,也不用在一個硬碟上安裝雙系統,不用煩惱GRUB引導的問題。

我想Pine64 PinePhone和Purism Librem 5 的用戶應該也是這樣操作的吧。

為什麼不直接在GNOME開Waydroid呢?因為GNOME太吃資源了,尤其對Surface Go 2來說,有一半RAM都被桌面吃掉了,剩餘地跑Android資源吃緊。Phosh的Wayland合成器資源佔用極低(不到512MB RAM),且UI佔據螢幕比例很低,一個程式一個視窗最大化。又Waydroid的視窗畫布大小是根據目前螢幕可用像素決定的,於是Phosh這個桌面便很適合全螢幕跑Waydroid,將Linux平板暫時變成Android平板又不會被太多干擾。

在需要的時候於GDM切換進入Phosh就行。而且Waydroid的通知現在會跟Phosh和GNOME同步了。當然更精簡的Wayland合成器還有用Sway,但那要自定義dotfile太麻煩了。用Phosh就有現成可用的方案了。

當然,Phosh不是只能用來跑Android APP,它也是能用來跑那些專為觸控螢幕設計的Linux程式的。

2. 測試環境
#

  • Microsoft Surface Go 2 (Intel Pentium 4425y / 4G / 64G)
  • Debian Linux 13
  • GNOME 48
  • Phosh 0.46
  • Waydroid Android 13

3. Linux端的設定
#

  1. 在Debian安裝GNOME桌面

  2. 確認顯示管理器是GDM

sudo systemctl status display-manager
  1. 安裝Phosh桌面
sudo apt install phosh phosh-mobile-settings
  1. 因為Phosh的bug,可能要在~/.profile加入以下內容,防止從Phosh切換回GNOME的時候視窗按鍵消失
if [[ "$XDG_CURRENT_DESKTOP" == *"GNOME"* ]]; then
   gsettings set "org.gnome.desktop.wm.preferences" button-layout "appmenu:minimize,maximize,close"
fi
  1. 重開機,在GDM的登入畫面輸入密碼,右下角可以看到登入GNOME或Phosh的按鈕。

  2. 登入Phosh,從螢幕上方滑下來,看狀態欄,確認裝置自動旋轉(通常是透過iio-sensor-proxy控制)有無正常運作。

  3. 在Phosh狀態欄關閉Docked模式。才可以長按螢幕底部藥丸條叫出螢幕小鍵盤。

  4. 開啟Phosh Mobile Settings,允許從Phosh的狀態欄選單讓Linux進入睡眠模式(suspend)。另外這裡也可以開啟在狀態欄顯示Caffeine按鈕,可以讓Linux不會自動進入睡眠(Waydroid的螢幕開關無效)

4. Waydroid端的設定
#

  1. 在Debian安裝Waydroid

  2. 如果不擔心手勢衝突的話,到Android系統設定,修改為手勢滑動操作。

  3. 在Android安裝閉源的Rotation Control,這可以強制旋轉螢幕方向

  4. 安裝 Sound Quick Settings ,在Android快速設定選單加入音量鍵。因為Waydroid無法透過實體鍵調整音量

  5. 之後,在Phosh桌面啟動Waydroid之前,需要先將裝置弄直。因為橫向模式會導致Waydroid的視窗被Phosh切割為長條狀。

  6. 螢幕旋轉為直的之後,下拉Phosh狀態欄,關閉自動旋轉。因為Waydroid不會跟著Phosh螢幕自動旋轉,若螢幕旋轉Waydroid的畫面會被切掉。再啟動Waydroid。

  7. 除了螢幕和音量之外,大部分操作就都在Waydroid的視窗裡面完成了。

  8. Waydroid的主視窗可以隨時關閉,Android程式會繼續在Linux背景執行。

  9. 大多數情況下,Waydroid的Android程式應該要跟著Linux系統一同suspend(從Phosh的狀態欄界面點選睡眠),重新喚醒螢幕後應該會見到的是Phosh的鎖定畫面,否則就是沒有睡眠。少部份時候Linux會因為Waydroid吃掉太多RAM和SWAP導致醒不過來。但我有另外啟用zSWAP應該不至於那麼快用完記憶體。

  10. 另外,通常Phosh登出目前的工作階段,退回到GDM的時候,是會導致Waydroid一同被中止執行的。因此要同時執行GNOME和Waydroid的話,還是直接在GNOME啟動Waydroid較好。

  11. 如果多次重啟Waydroid服務可能會導致Linux系統整個當掉,變成要強制重開。因此沒事就讓Waydroid維持在背景執行就好。

相關文章


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

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

Click here to edit your comments.

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