1,linux內核啟動時會解析dtb文件,根據dtb文件中的設備列表添加各個外設的驅動模塊。
2.PC啟動時會自動掃描外設,而在嵌入式系統中,linux內核在啟動過程中只解析dtb文件,從而加載相應的模塊。
3.編譯linux內核時必須選擇壹個外設模塊,dtb包含外設的信息。該模塊只能在linux內核啟動時自動加載。
dtb文件中的外設列表與啟用linux內核中的各個外設驅動模塊(設置*或M)有什麽關系?是否可以理解為,如果壹個linux內核可以運行在多個板卡上,那麽所有這些板卡的驅動模塊都必須包含在linux內核配置中,這樣才能在linux啟動時按照dtb中的列表加載模塊。
因為PC基本隱含X86,X86架構上的外設都是基於PCI或者PCIE總線的,啟動時可以動態掃描。在嵌入式系統中,ARM、PowerPC和soc的主要設備控制器都是基於SOC總線的,不同於可以動態掃描的pci/pcie總線。所以我們需要dtb。