最近因爲一些奇怪的需求,需要實時更新一下內核(boot.img),以下所有用法爲自己記錄用途。
[關於 V831 / V833 Tina Linux 更新設備樹( dts > dtb )的用法]https://www.cnblogs.com/juwan/p/14345372.html)
是更新設備樹文件的一種方法,後來把攝像頭驅動、觸摸驅動之類的模塊移到用戶空間 rootfs 下後也解決了一些在線更換系統驅動的問題,這些都是需要重啓生效哈,個別驅動模塊可以熱拔插,但系統相關的就不要折騰。
想要不完整燒錄快速調試內核
在 SDK 編譯後執行以下操作即可
mkernel && adb push ./out/v831-sipeed/boot.img /root/ && adb shell "dd if=/root/boot.img of=/dev/by-name/boot && reboot"
第一步將 kernel 更新到 boot.img 。
第二步將 boot.img DD 進 /dev/by-name/boot 。
第三步重啓生效。
其實很簡單,就是要做一下,其他像 uboot 的 env.cfg 字符串也可以用類似的方式實現。
但這種方法不會影響編譯出來的 ko 文件,按道理來說全部 ko 拓展是最好的,但實際發現 WIFI 模塊如果不包含在 kernel 裏,初始化和啓動時間要延長到系統啓動之後,這樣體驗感並不好,所以有利有弊。
拓展用法
其他芯片同理,不過在 M3AXPI 後我將它們掛到了 /boot/ 分區下,實現了類似 ARMBIAN 的操作。