快轉到主要內容

用電腦體驗手機Linux系統:postmarketOS QEMU/KVM虛擬機安裝教學

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 真Linux手機
標籤   PostmarketOS QEMU-KVM
目錄

真正的手機版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不行。

  1. 這裡電腦宿主機為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
  1. 輸入以下指令開始設定:
pmboostrap init
  1. 接著要回答一系列問題,下面逐步講解。
# 初始化
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
  1. 接著開始安裝系統:
pmbootstrap install
  1. 再來開機。pmbootstrap預設的RAM太小了會非常卡,建議使用以下指令開機。使用Host CPU、分配4GB記憶體、磁碟容量32GB、模擬手機直向畫面、開啟音訊。輸入pmbootstrap --help查看幫助選項。
pmbootstrap qemu --cpu max --memory 4096 --image-size 32G --video 720x1080 --audio pa
  1. 開機後可從QEMU開啟的終端機登入系統,或是用SSH登入:
ssh user@虛擬機IP -p 2222
  1. 開機後虛擬機視窗應該會進入桌面,縮放視窗會自動變更大小。QEMU虛擬機還會自動抓取鍵盤滑鼠輸入。

本文範例我選擇的界面是Plasma Mobile,會跟著視窗縮放UI。雖承襲自KDE Plasma,但變成了為手機優化的界面。

安裝軟體商店Discover後可充當下載軟體的前端。APP來源為postmarketOS、Alpine Linux的軟體庫。

終端機也是少不了的,推薦安裝:chromiumfont-noto-cjkdocker。你可以藉此評估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寫入。

  1. 在Linux安裝Virt Manager

  2. postmarketOS官網下載Generic x86_64 EFI System的映像檔。例如我選取Phosh的版本。

  3. 下載後將.xz檔案解壓縮,會得到一個.img檔案。

  4. 開啟Virt Manager,新增一個虛擬機,系統選Alpine Linux。開機韌體選UEFI,顯示卡選VGA,然後新增一個64GB以上的qcow2虛擬磁碟。先不要開機。

  5. 在開機之前,先將qcow2掛載為NBD裝置

sudo modprobe nbd max_part=10

sudo qemu-nbd -c /dev/nbd0 /var/lib/libvirt/images/postmarketos.qcow2
  1. 以dd指令將postmarketOS映像檔寫入,然後移除NDB裝置
sudo dd if=postmarketos-phosh.img  of=/dev/nbd0 bs=4M status=progress conv=fsync

sudo qemu-nbd -d /dev/nbd0
  1. 回到Virt Manager,開機就可以使用系統了。

參考資料
#

QEMU - PostmarketOS Wiki

相關文章

備份Android手機的postmarketOS分區到電腦
分類   智慧型手機 真Linux手機
標籤   PostmarketOS Android
postmarketOS使用技巧:安裝APP、中文化、執行Android APP、跑Docker
分類   智慧型手機 真Linux手機
標籤   PostmarketOS
如何在手機上跑Linux系統?你有這幾個方法可以嘗試
分類   智慧型手機 真Linux手機
標籤   Termux ISH Shell UTM PostmarketOS Ubuntu Touch

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

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