想知道如何在Linux中检测到设备?设备检测中设备驱动程序的工作流程究竟是什么?
答案 0 :(得分:2)
检测设备是内核的工作,因为它具有对可用硬件的最低级别访问权限。当内核扫描所有可用地址时,它会维护供应商和设备ID列表。
以PCI总线设备为例,供应商ID和设备ID与所有PCI设备相关联。
设备驱动程序的编写方式是向内核标识驱动程序能够控制的设备类型。驱动程序可能会宣传他们可以处理多个供应商和设备类型组合。
内核将根据这些ID为每个设备分配驱动程序。 USB设备也有类似的过程。传统设备(串行端口,并行,ps2鼠标/键盘)等旧技术将具有将特定驱动程序与设备相关联的明确硬编码方法。
您可以使用Linux命令 lsusb 和 lspci 查看系统上的可用设备和ID。
因此,直接回答您的问题 - 设备驱动程序通常无法检测设备,至少在第一种情况下。一旦驱动程序与设备关联(通过内核),驱动程序可能会进一步询问设备,以确保它包含正确的固件或正确的硬件版本等。