linux是怎么样匹配网络设备与驱动的?
来源: 互联网 发布时间:2015-10-12
本文导语: 我有一无线网卡插在台式机的PCI槽上,我修改配置文件让linux-wlan-ng的prism2_pci.ko驱动在开机后就启动,但是发现内核启动时说找不到设备,我安装的.ko文件根本就没被执行过 我得lspci -v的输出是: 01:07.0 Ethernet contro...
我有一无线网卡插在台式机的PCI槽上,我修改配置文件让linux-wlan-ng的prism2_pci.ko驱动在开机后就启动,但是发现内核启动时说找不到设备,我安装的.ko文件根本就没被执行过
我得lspci -v的输出是:
01:07.0 Ethernet controller: Linksys, A Division of Cisco Systems WMP11v4 802.11b PCI card
Subsystem: Linksys: Unknown device 0020
Flags: bus master, medium devsel, latency 64, IRQ 9
Memory at fdfff800 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
没有I/O Port!!
Linux怎么知道哪个驱动程序与那个设备匹配的?
如果有几个驱动程序都可以用,那么linux会选择谁呢?
我得lspci -v的输出是:
01:07.0 Ethernet controller: Linksys, A Division of Cisco Systems WMP11v4 802.11b PCI card
Subsystem: Linksys: Unknown device 0020
Flags: bus master, medium devsel, latency 64, IRQ 9
Memory at fdfff800 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
没有I/O Port!!
Linux怎么知道哪个驱动程序与那个设备匹配的?
如果有几个驱动程序都可以用,那么linux会选择谁呢?
|
根据设备名称 设备号
|
好像具体加载什么驱动程序有两种方法:一种是在内核编译时可以加进去,另一种就是现在普遍使用的insmod方式
至于驱动被加载进去后是如何检测设备的,这个详细过程可以参阅PCI驱动编程
其大概过程是通过PCI控制器来进行的,好像内核在初始化时已经通过读I/O的方式查询过了有那些PCI插槽上有设备
至于驱动被加载进去后是如何检测设备的,这个详细过程可以参阅PCI驱动编程
其大概过程是通过PCI控制器来进行的,好像内核在初始化时已经通过读I/O的方式查询过了有那些PCI插槽上有设备