postmarketOS Netboot讓手機從網路開機

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支援:
1
pmbootstrap kconfig check --netboot linux-xiaomi-whyred
  1. 沒有在官方推薦機型的應該是不會啟用Netboot,所以會得到此結果:
1
2
WARNING: linux-xiaomi-whyred/config-xiaomi-whyred.aarch64: CONFIG_BLK_DEV_NBD should be set.
ERROR: kconfig check failed!
  1. 執行kconfig修改核心設定檔。
1
pmbootstrap kconfig edit
  1. CONFIG_BLK_DEV_NBD的位置如下:
1
2
3
4
5
6
7
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. 修改好之後重新編譯核心。
1
pmbootstrap build linux-xiaomi-whyred

2. 使用Netboot開機

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

參考資料


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

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

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。