Hi,欢迎来到嵌入式培训高端品牌 - 华清远见教育科技集团<北京总部官网>,专注嵌入式工程师培养15年!
当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 为设备查找模块
为设备查找模块
时间:2017-01-05作者:华清远见

有些时候无法找到内核中有效的选项,使硬件设备正常工作。

找到新设备的驱动简单的方法是,将内核中此类驱动全部构建成模块,并由udev来完成设备和驱动之间的匹配。

如果不想构建所有的驱动(有些时候这是非常恐怖的事情),那就需要一点额外的工作来确定所需要的驱动程序。下面的步骤很复杂,而且需要深入内核源码。

不过这样做会帮助你很好的理解硬件和内核源码。

我们以USB设备为例。

首先我们要找到设备的总线ID,这是非常重要的用来确定一个设备的.我们可以使用下面这个命令:

/usr/sbin/lsusb
        Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
        Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
        Bus 001 Device 002: ID 1058:1023 Western Digital Technologies, Inc. 
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

USB 设备的编号不固定,每次插入拔除设备,都会为设备分配一个不同的设备编号,但是ID是不会变的。

我们主要观察Western Digital Technologies,Inc的设备ID。

1058:1023

这分别代表了,Vendor ID和 Devices ID

grep –i –R –l 1058 drivers/*

可以搜索到一些包含有1058的文件。

通过找到的文件找到驱动的名字,可以确定驱动程序,再在内核的Makefile中找到相关选项,选中即可。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)