作者:王劲男,华清远见嵌入式培训中心讲师。
有些时候无法找到内核中有效的选项,使硬件设备正常工作。
找到新设备的驱动最简单的方法是,将内核中此类驱动全部构建成模块,并由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中找到相关选项,选中即可。
嵌入式及3G相关资源及学习请点击:嵌入式开发视频 android开发视频 android培训 3G培训 QT培训 QT开发视频 物联网培训 物联网技术视频 嵌入式学习