2015-08-20 58 views
-2

如何知道哪些設備連接到它以及要探測哪些驅動程序?你可以參考內核源代碼或舉一個例子....謝謝內核啓動時(特別是在基於ARM的設備上)內核探測驅動程序

+1

我不認爲這個問題是題外話,所以它也被標記爲這樣的恥辱,我不能添加完整的答案。例如,您可以在LDD3手冊的「Linux設備模型」一章的「公共汽車,設備和驅動程序」一節中閱讀它。簡而言之,Linux使用「設備」可以連接到的「Buses」(如PCI,USB等)的抽象概念。每個'Device'可以由一些'Drivers'支持,這些'Drivers'具有定義的'probe'回調。巴士將調用這些回調,直到某個'Driver'決定它將處理該設備。總線可能會使用一些提示(如設備ID)來詢問特定的驅動程序或者可以遍歷所有驅動程序 –

+1

還有一些設備,尤其是嵌入式系統(如ARM系統)的某些設備未連接到任何可檢測硬件的實際總線。這些設備被組織在Linux的特殊抽象總線中,稱爲「平臺」。過去,這種總線的驅動程序註冊在內核代碼中進行了硬編碼,但現在主要由稱爲'設備樹'的特殊配置文件來描述,該文件由引導加載程序提供給內核。描述仍然是靜態的,但它獨立於內核代碼,因此對於一個內核映像您可以有多種配置(對於稍微不同的主板)。 –

回答