真正的手機版Linux:postmarketOS已經能安裝到多部舊款Android手機上,讓他們重新發揮用處。postmarketOS是基於Alpine Linux開發的手機Linux發行版,可以執行docker在內的應用程式。此外專為手機設計的Linux APP也逐漸出現。
請看這裡了解如何安裝postmarketOS。
若手機無法刷postmarketOS,何不在電腦上用虛擬機體驗看看呢?我們可以透過QEMU/KVM虛擬機,體驗手機Linux界面的開發進度;如果要為手機Linux測試應用程式,此虛擬機亦會有幫助。
postmarketOS官方有提供Generic x86_64 EFI System
的系統映像檔,能夠像其他桌面版GNU/Linux安裝到一般的x86電腦。不過,postmarketOS是基於Alpine Linux開發,套件庫大致上共用。因此若要安裝成主力桌面系統,建議直接裝Alpine Linux就可以了。
本文主要目的是安裝開發測試環境,能夠體驗下postmarketOS長什麼樣子。請注意:虛擬機難以提供圖形加速,因此Wayland桌面環境渲染可能會出現bug。
下面討論兩種安裝postmarketOS虛擬機的方法。
1. 透過pmbootstrap安裝QEMU虛擬機#
透過pmbootstrap自訂你的桌面環境,這個方法適合開發人員使用。
pmbootstrap是用於產生postmarketOS安裝檔和移植新機型的工具鏈。由於pmbootstrap會建立chroot環境,因此電腦必須為Linux系統,虛擬機亦可,WSL不行。
- 這裡電腦宿主機為Ubuntu,用git安裝pmbootstrap:
git clone https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git
cd pmbootstrap
mkdir -p ~/.local/bin
ln -s "$PWD/pmbootstrap.py" ~/.local/bin/pmbootstrap
pmbootstrap --version
- 輸入以下指令開始設定:
pmboostrap init
- 接著要回答一系列問題,下面逐步講解。
# 初始化
pmbootstrap init
# 按Enter使用預設工作目錄 (~/.local/var/pmbootstrap)
Work path: Enter
# 更新頻道選擇edge,或者填入寫有Recommended for best stability的穩定版。
Channel: edge
# 選擇廠牌,這裡填QEMU
Vendor: qemu
# 選擇AMD64的版本,AARCH64跨架構模擬會很慢,吃不到KVM加速
Device codename: amd64
# 建立pmOS的使用者帳戶
Username: User
# 選擇桌面環境,只支援Wayland的Phosh桌面可能會開不起來,故選擇Plasma Mobile或GNOME。
User Interface: plasma-mobile
#剩下全部Enter
- 接著開始安裝系統:
pmbootstrap install
- 再來開機。pmbootstrap預設的RAM太小了會非常卡,建議使用以下指令開機。使用Host CPU、分配4GB記憶體、磁碟容量32GB、模擬手機直向畫面、開啟音訊。輸入
pmbootstrap --help
查看幫助選項。
pmbootstrap qemu --cpu max --memory 4096 --image-size 32G --video 720x1080 --audio pa
- 開機後可從QEMU開啟的終端機登入系統,或是用SSH登入:
ssh user@虛擬機IP -p 2222
- 開機後虛擬機視窗應該會進入桌面,縮放視窗會自動變更大小。QEMU虛擬機還會自動抓取鍵盤滑鼠輸入。
本文範例我選擇的界面是Plasma Mobile,會跟著視窗縮放UI。雖承襲自KDE Plasma,但變成了為手機優化的界面。
安裝軟體商店Discover後可充當下載軟體的前端。APP來源為postmarketOS、Alpine Linux的軟體庫。
終端機也是少不了的,推薦安裝:chromium
、font-noto-cjk
、docker
。你可以藉此評估docker在postmarketOS的執行效能。
有些軟體用起來就是電腦版,有些軟體則是會自動按照視窗大小變形UI。
此虛擬機關機後檔案還會在,但每次執行pmbootstrap init
系統會自動刪除舊版的檔案系統,因此記得備份位於~/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/
的QEMU image。
2. 手動以Virt Manager安裝postmarketOS虛擬機#
使用官方預先建置的postmarketOS映像檔啟動系統,不需要用到pmbootstrap。
這個方法有點繁瑣,因為postmarketOS官方沒有提供.iso映像檔,而是.img檔案,所以要手動dd寫入。
在Linux安裝Virt Manager
到postmarketOS官網下載
Generic x86_64 EFI System
的映像檔。例如我選取Phosh的版本。下載後將.xz檔案解壓縮,會得到一個.img檔案。
開啟Virt Manager,新增一個虛擬機,系統選Alpine Linux。開機韌體選UEFI,顯示卡選VGA,然後新增一個64GB以上的qcow2虛擬磁碟。先不要開機。
在開機之前,先將qcow2掛載為NBD裝置
sudo modprobe nbd max_part=10
sudo qemu-nbd -c /dev/nbd0 /var/lib/libvirt/images/postmarketos.qcow2
- 以dd指令將postmarketOS映像檔寫入,然後移除NDB裝置
sudo dd if=postmarketos-phosh.img of=/dev/nbd0 bs=4M status=progress conv=fsync
sudo qemu-nbd -d /dev/nbd0
- 回到Virt Manager,開機就可以使用系統了。