[英]How does “fastboot boot <kernel>” works internally?
Fastboot具有以下便利功能 (如果啟動自定義圖像失敗,設備下次會神奇地啟動默認圖像,一切都會好起來的):
使用主機端內核映像啟動
此命令允許您下載內核映像(和可選的根文件系統映像)並使用這些映像啟動電話,而不是使用啟動閃存分區中的內核和rootfs。 在開發內核或修改rootfs時非常有用。
fastboot boot <kernel> [<ramdisk>]
有誰知道它內部是如何工作的? 是否將內核復制到特殊的啟動分區 在重新啟動設備之前 ? ( 更新:正如答案所指出的那樣,沒有重啟,因為fastboot是啟動過程中的一個步驟,這基本上使我的問題毫無意義。 )我正在查看fastboot的源代碼,但它似乎只包含發生的事情在主機端,而不是在設備上。
我的意思是,閃存功能的工作原理非常簡單,我可以通過將帶有自定義內核的啟動映像復制到boot
分區來模仿它,例如,通過:
dd if='<my_boot.img>' of='/dev/block/platform/msm_sdcc.1/by-name/boot'
順便說一句:因為我正在開發的應用程序,我問這個問題; 我想“冒險”直接從設備啟動定制內核,然后將其存儲在SD卡上。
在重新啟動設備之前,是否將內核復制到特殊啟動分區?
不,任何分區都沒有修改。
引導內核意味着從存儲設備加載(即讀入內存)內核映像。 此fastboot類似於netboot,例如,使用TFTP通過以太網鏈路從服務器/主機加載內核映像。 如果唯一的目的是使用內核映像引導系統,那么根本沒有理由將內核映像寫入分區,尤其是在沒有明確指定的情況下。
此操作的可選根文件系統明確指定為ramdisk映像,它也不需要寫入或存儲在分區中。
有誰知道它內部是如何工作的?
fastboot程序是在重新啟動設備后執行的備用引導加載程序。
內核從主機通過USB加載到內存中。 可選的rootfs(ramdisk或者initramfs映像)也可以通過USB從主機加載到內存中。 一旦加載,就可以開始普通的內核啟動。
順便說一句:因為我正在開發的應用程序,我問這個問題; 我想“冒險”直接從設備啟動定制內核,然后將其存儲在SD卡上
您可能必須使用除此fastboot之外的其他引導加載程序/方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.