快轉到主要內容

postmarketOS Netboot讓手機從網路開機

智慧型手機 真Linux手機 PostmarketOS
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

English version

Netboot技術允許裝置透過網路開機,透過USB網路存取遠端檔案系統。

這就有點像是LiveUSB,因為可以讓Android機器暫時用pmbootstrap傳過去的boot.img開機(甚至不用寫入boot分區),然後讀取放在電腦上的rootfs。不用洗掉整個Android ROM,也可以「試用」postmarketOS。

這裡我使用的手機為紅米Note 5,此機型已有人移植,不過狀態頂多是能開機的程度。

首先執行 pmbootstrap init,設定機型為xiaomi-whyred,接著我們要修改核心設定檔。

1. 讓Linux核心支援Netboot
#

  1. 用指令檢查該機型的核心有無開啟Netboot支援:
pmbootstrap kconfig check --netboot linux-xiaomi-whyred
  1. 沒有在官方推薦機型的應該是不會啟用Netboot,所以會得到此結果:
WARNING: linux-xiaomi-whyred/config-xiaomi-whyred.aarch64: CONFIG_BLK_DEV_NBD should be set.
ERROR: kconfig check failed!
  1. 執行kconfig修改核心設定檔。
pmbootstrap kconfig edit
  1. CONFIG_BLK_DEV_NBD的位置如下:
Symbol: BLK_DEV_NBD [=n]
Type  : tristate
Prompt: Network block device support
Location:
 -> Device Drivers
     -> Block devices (BLK_DEV [=y])
        -> Network block device support
  1. 修改好之後重新編譯核心。
pmbootstrap build linux-xiaomi-whyred

2. 使用Netboot開機
#

  1. 製作postmarketOS的檔案系統。extra-space是rootfs的大小。
pmbootstrap --extra-space 3000 install --no-sparse
  1. 讓手機進入fastboot,接到電腦,用postmarketOS開機。手機會處在postmarketOS的logo,並等待NBD連線。
pmbootstrap initfs hook_add netboot
pmbootstrap flasher boot
  1. 確認防火牆有開啟9999通訊埠,執行netboot伺服器:
pmbootstrap netboot serve
  1. 手機應該會亮起螢幕,開機進入postmarketOS系統,或者可以透過這個固定的IP位址SSH進手機:
  1. 由於檔案系統是從電腦掛載的,因此使用時手機必須接著線,否則檔案系統就會停擺。將postmarketOS關機之後重開機就會回到原本系統。至於Netboot的檔案系統則是位於~/.local/var/pmbootstrap/images_netboot/

參考資料

相關文章

postmarketOS移植,以Sony Xperia 5 II為例
智慧型手機 真Linux手機 PostmarketOS Sony Xperia
ASUS Zenfone 2 Selfie安裝postmarketOS
智慧型手機 真Linux手機 PostmarketOS Zenfone
紅米Note 5安裝postmarketOS的執行效能
智慧型手機 真Linux手機 PostmarketOS Xiaomi

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。