2015-08-20 27 views
-2

如何知道哪些设备连接到它以及要探测哪些驱动程序?你可以参考内核源代码或举一个例子....谢谢内核启动时(特别是在基于ARM的设备上)内核探测驱动程序

+1

我不认为这个问题是题外话,所以它也被标记为这样的耻辱,我不能添加完整的答案。例如,您可以在LDD3手册的“Linux设备模型”一章的“公共汽车,设备和驱动程序”一节中阅读它。简而言之,Linux使用“设备”可以连接到的“Buses”(如PCI,USB等)的抽象概念。每个'Device'可以由一些'Drivers'支持,这些'Drivers'具有定义的'probe'回调。巴士将调用这些回调,直到某个'Driver'决定它将处理该设备。总线可能会使用一些提示(如设备ID)来询问特定的驱动程序或者可以遍历所有驱动程序 –

+1

还有一些设备,尤其是嵌入式系统(如ARM系统)的某些设备未连接到任何可检测硬件的实际总线。这些设备被组织在Linux的特殊抽象总线中,称为“平台”。过去,这种总线的驱动程序注册在内核代码中进行了硬编码,但现在主要由称为'设备树'的特殊配置文件来描述,该文件由引导加载程序提供给内核。描述仍然是静态的,但它独立于内核代码,因此对于一个内核映像您可以有多种配置(对于稍微不同的主板)。 –

回答