Microsoft Surface Go 2是二合一的x86平板筆電,我想給Surface Go 2找一個適合在觸控與鍵盤之間快速轉換的系統。目前Android-x86基本已死,Bliss OS停更。要有一個簡單易用的觸控界面與鍵盤操作的電腦系統,當下選擇ChromeOS Flex了。
之前嘗試過給Surface Go 2安裝GNU/Linux,但Linux的桌面環境普遍不適合觸控螢幕使用,沒有鍵盤就活不下去。
如果99%時間的工作都能在瀏覽器完成,偶爾需要用到一點桌面程式的話,ChromeOS Flex是值得考慮的選擇。
1. ChromeOS Flex簡介#
ChromeOS現在可以在Chromebook以外的裝置安裝,但不保證穩定性。這就是ChromeOS Flex,基於Google先前收購的CloudReady所釋出的通用映像檔,可以在一般的x86電腦安裝。
ChromeOS Flex是由Chrome瀏覽器作為主畫面的系統,跟一般的GNU/Linux發行版不太一樣。ChromeOS Flex核心使用Linux kernel,透過專門的Wayland合成器Exosphere顯示圖形界面。雖然上游ChromiumOS是開源專案,但ChromeOS Flex含有Google服務的閉源組件,屬於閉源系統。
ChromeOS Flex硬體需求極低,可以滿足基本上網需求,只要登入Google帳號就能使用,這個帳號可以是個人帳號,也可以是由企業組織統一管理。ChromeOS Flex主打雲原生,所謂的應用程式基本都是PWA構成。要安裝GNU/Linux的軟體得透過Crostini虛擬機執行。
反過來說,沒有網路ChromeOS就無用武之處。ChromeOS是專為Google生態系設計的系統,因此安裝ChromeOS你將會獲得Google 24小時的全方面監控。
為什麼選ChromeOS Flex:起碼這是Google官方維護的專案。
比較同類專案,ChromeOS Brunch要求的CPU架構太新。Project Croissant已經停止維護。FydeOS是專為中國用戶打造的系統,而且系統更新需要收費。
看來看去還是ChromeOS Flex就好了。聽說未來ChromeOS要跟Android合併,不過並不是現在的事情。要立即可用的系統,就是ChromeOS Flex。
雖然ChromeOS Flex跟Chromebook的ChromeOS比起來,拿掉了相容Android APK的能力(ArcVM虛擬機),但是它依然保留Crostini的Linux虛擬機,可以在裡面安裝Linux圖形程式。
ChromeOS是使用Linux核心的系統,透過linux-surface團隊upstream的努力,只要核心夠新,Surface Go 2的硬體驅動應該大部分都能用才對。
2. 安裝ChromeOS Flex#
準備一個16GB以上的隨身碟
參考官網ChromeOS Flex 安裝指南,使用Chromium系列的瀏覽器製作開機碟。
或者手動下載.bin檔案,再用dd指令將.bin檔案寫入隨身碟。可以用Ventoy開機嗎?不行,我嘗試下載映像檔,將副檔名改為.img雖然可以開機,但會變成LiveUSB,無法啟動安裝程式。
安裝之前,確保Surface Go 2只有內部磁碟機。不要插入SD卡,我發現ChromeOS不能選分區,會導致它抓錯安裝位置。
將隨身碟插上Surface Go 2。開機時按著電源鍵 + 音量上鍵,進入UEFI
關閉Secure Boot。雖然ChromeOS Flex支援,但我懶得開。
設定為USB優先開機。
開機後按照指示安裝ChromeOS Flex系統。其實也沒什麼可選的,它會自動偵測硬碟位置並清除資料,重開機就可以用了。

3. 使用體驗#
目前ChromeOS Flex版本145,使用Linux 6.6核心,Surface Go 2硬體功能幾乎正常!
ChromeOS很輕量,即使是在eMMC,開機速度不到30秒。不用的話完全可以直接關機。
Surface Go 2的觸控螢幕、自動旋轉、自動亮度、Wifi、藍牙都可以使用。
Surface手寫筆可以使用,在網頁執行的AFFiNE筆記程式可以確認到筆壓。
Inel IPU相機勉強能用,而且品質比GNU/Linux的好!?但還是比Windows的差。
ChromeOS內建注音中文輸入法,不論是用觸控還是打字輸入都很直覺,尤其是觸控輸入法,就跟用Android的Gboard沒兩樣。系統會自動偵測有無接上鍵盤並在適當的時候顯示。
任意網頁都可以安裝為PWA,新增到桌面。
系統界面操作跟Android平板很像,從底部滑出多工視窗。同時可以用觸控和滑鼠互動。Material You風格的界面會跟著桌布變色。
Chrome瀏覽器的分頁會顯示在螢幕頂部,顯示縮圖。
這裡Chrome功能跟Linux電腦版的Chrome並無二致。可以安裝uBlock Origin Lite擋廣告。又大部分ChromeOS程式都是PWA,所以這個擋廣告是全域有效的!
不過可能是Surface Go 2的CPU太弱的緣故,只要多工同時開著5個以上網頁,ChromeOS Flex系統動畫就會開始卡了。這個跟硬體的因素比較大。
預設情況下要放著大概10分鐘ChromeOS才會關閉螢幕。或者手動按電源鍵鎖定螢幕,等個1分鐘就會休眠。待機期間幾乎不耗電。
續航力部份,ChromeOS回報的預估是5小時左右,這個成績跟GNU/Linux一直開著Chrome差不多。畢竟耗電大戶Chrome瀏覽器就一直開在那,不耗電也難。
值得注意的是ChromeOS Flex預設解析度是1080x720?可是Surface Go 2有1080p螢幕呀!調整解析度後卻不能縮放。它好像沒辦法處理Chrome在1920x1080解析度縮放的問題。
4. 啟用Crostini Linux虛擬機#
Crostini是專為ChromeOS研發的輕量虛擬機,有時會被稱為容器。它沒有使用QEMU/KVM,而是自己另外弄了一套更安全的模型出來。
需要指出的是,Linux虛擬機的程式可能會比ChromeOS本身還吃資源,因此硬體資源本身就不充裕的電腦請謹慎評估使用。
到系統設定啟用Linux開發環境

設定Linux使用者名稱,分配至少20GB硬碟空間。Linux圖形程式的依賴是比你想的還佔空間的。

這樣會得到一個Debian虛擬機。裡面就可以安裝一般GNU/Linux的程式了。透過「終端機」程式登入Linux Bash shell。

例如要裝Firefox,就直接從Debian套件庫安裝(Debian套件庫只有收Firefox ESR,如果要最新版Firefox得手動新增Mozilla的套件庫)
sudo apt install firefox-esrLinux 圖形程式(具體來說,是有XDG Desktop Entry的程式)會顯示在ChromeOS Flex的程式列表

也可以在終端機透過指令啟動:
firefox-esr在Linux虛擬機開啟的X或Wayland程式視窗會透過Sommelier,轉發到ChromeOS的Exosphere合成器顯示。

Linux圖形程式不能使用ChromeOS Flex的輸入法,需要在Linux虛擬機內安裝Fcitx5才能輸入中文。至於要在Linux圖形程式使用螢幕小鍵盤的話…目前辦不到。雖然有
onbaord,但必須有完整Linux桌面才能使用。ChromeOS Flex會將宿主機目錄掛載到Linux虛擬機內部的
/mnt/chromeos,包括ChromeOS內部空間與SD卡。從ChromeOS Flex的檔案管理器可以看到Linux內部家目錄的檔案。
若要更方便管理檔案,我的做法是在Linux虛擬機安裝KDE的
dolphin檔案管理器,這樣就能方便調用Linux的程式編輯檔案,而不會被ChromeOS受限。例如,我可以在Dolphin使用GIMP開啟圖片編輯。(不過如果你在ChromeOS的檔案瀏覽器點選檔案,它也會提示你用Linux的程式去開)
預設的Linux程式GPU加速被停用了,需要手動開啟VirGL,打開Chrome,輸入chrome://flags#crostini-gpu-support,設定為Enabled,然後重開機。
但是開啟反而無法開啟圖形程式了…這個功能看來是壞掉的狀態。
因此我們只能執行簡單的文書程式,需要GPU加速的遊戲是玩不了的。
5. 安裝Android APP#
這個功能由ArcVM虛擬機提供,但ChromeOS Flex刻意拔掉了這個功能。也許是難以維護的緣故。
不過我們可以透過Crostini安裝Waydroid呀!參考這個教學換個核心再安裝,裡面就有Play商店了,還有x86對ARM轉譯器libndk。
不過問題在於,Linux虛擬機沒有GPU加速,Waydroid只能靠軟體渲染,性能極差。


