Linux 设备 设备驱动 设备结点 (设备号) 关系

keywords:

linux 驱动匹配


  这两天因为手上杂牌pad adb驱动的问题看了些linux驱动的东西,不过问题还是没解决……,总结一下,如有错误希望指正


首先 设备(Device) 与驱动(Driver) 是多对一的关系 ,一个Device同一时间只能由一个Driver驱动 ,但一个Driver同一时间可以控制多个Device。

Device是挂载总线(Bus)上的,比如PCI总线、USB总线等,一个Device插入后,内核会检测到这个Device,调用Bus的match函数来搜索这个Device的Driver,每个Driver中都有一个内置支持的Device列表和一个动态的列表(我猜就是sysfs里new_id添加的),Bus得到所有匹配的Driver后依次调用probe函数以确认确实可以驱动这个Device,probe成功后即返回,否则调用下一个Driver的probe直到找到一个合适的Driver。

设备号是Driver返回的,所以一个设备号对应什么驱动不是固定的,要看系统当时的状态,举个例子:

 usb转串口驱动,常见的有2个:pl2303和FT232芯片,他们返回的主设备号都是188 ttyUSB 但这个188的设备结点到底用的什么驱动就要看是哪个驱动返回的设备号了

douniwan@ubuntu:/sys/bus/usb/drivers$ ll ftdi_sio/
总用量 0
drwxr-xr-x  2 root root    0 2012-05-22 17:28
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值