Kernel
使用靜態硬體,每次更新核心時是否需要重新編譯 dtb?
據我了解,在沒有匯流排支持發現/列舉的系統(主要是嵌入式系統)中,dtb 文件用於描述硬體並允許核心在將其載入到記憶體後使用它。
那麼,假設我們只想更新這樣一個系統的核心,我們是否還需要更新 dtb?既然只描述了硬體,硬體沒有變化,就不能簡單的複用嗎?
我在我的 raspberrypi 中安裝更新的核心時遇到了這個問題,官方建構文件以及我能找到的所有其他教程都明確提到了編譯和複製 dtb 文件,所以我想知道這一步是否真的有必要,因為硬體不會改變。
主要是核心和設備樹應該是相互獨立的,所以是的:通常你可以使用新編譯的核心和舊的 dtb,反之亦然。
當然,如果設備樹依賴於某些版本的設備驅動程序或者新核心需要不同的設備樹屬性,那麼這將不再適用。
現在考慮到建構一個新的 dtb
dtc
是一個毫秒級的問題,並且教程的作者不知道某些更新檔是否確實更改了任何 dts 或 dtsi 文件,因此建議將 dtb 與核心一起建構和部署是很省錢的。