本文转载自:http://hi.baidu.com/deep_pro/blog/item/415ec217bdead20c4b90a77d.html 尊重作者
这些操作都是我很久以前就想知道的,但是一直没有找到合适的资料,
终于在 《linux 内核技术手册》上看到了 做一个记录 1、确定网卡驱动 网卡只知道eth0 这样的设备名,如何确定到具体的驱动呢? [root@localhost ~]# basename `readlink /sys/class/net/eth0/device/driver/module` e100 这说明e100正是eth0使用的模块名 (我拿的IBM R32 ,很古老的本本的) 之后你可以在内核源码目录里搜索相关配置,以便新内核也能使用该模块 find -type f -name Makefile |xargs grep e100 得到 ./drivers/net/Makefile:obj-$(CONFIG_E100) += e100.o 很明显,只要配置上CONFIG_E100,就能启用该模块 2、查找一个usb设备吧 但是USB鼠标不像网卡那么被人熟知,它的设备名是什么呢? 既然是HID输入设备,自然是/dev/input/eventX了 但是x是多少就不知道了。我也不明白为什么会有这么多的没用的event设备 只能尝试 od /dev/input/event0 这样,晃动鼠标看看能够读取到什么 这样确定我的event1是键盘,event2是指点棒,event3是USB鼠标 [root@localhost ~]# basename `readlink /sys/class/input/event3/device/driver/module` usbhid [root@localhost ~]# basename `readlink /sys/class/input/event1/device/driver/module` atkbd [root@localhost ~]# basename `readlink /sys/class/input/event2/device/driver/module` psmouse 之后的步骤同上 以上都是已经找到驱动的情况,那么如果已有的Linux尚未识别的设备,查找驱动就不一眼了 3、未知PCI设备找驱动 这里还是以网卡为例 [root@localhost ~]# lspci |grep -i ethernet 02:08.0 Ethernet controller: Intel Corporation 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42) 注意其总线ID 02:08.0 ,能够确定其在sys文件系统中的位置 [root@localhost ~]# cd /sys/bus/pci/devices/0000\:02\:08.0/ [root@localhost 0000:02:08.0]# cat vendor 0x8086 [root@localhost 0000:02:08.0]# cat device 0x1031 得到了供应商 0x8086和设备ID 0x1031 现在为其查找驱动,在内核目录中 [root@localhost 2.6.23.1-42.fc8-i686]# grep -i 0x8086 include/linux/pci_ids.h #define PCI_VENDOR_ID_INTEL 0x8086 于是支持这个网卡的驱动肯定会用这个宏PCI_VENDOR_ID_INTEL,并且使用了设备ID 0x1031 [root@localhost linux-2.6.15.6]# grep -Rl PCI_VENDOR_ID_INTEL *|grep 1031 drivers/net/eepro100.c: { PCI_VENDOR_ID_INTEL, 0x1031, PCI_ANY_ID, PCI_ANY_ID, }, 直接定位到eepro100.c 4、未知USB设备 还是USB鼠标举例吧,虽然不大可能找不到驱动,通过热插拔,很容易定位到USB设备 [root@localhost ~]# lsusb Bus 002 Device 002: ID 15d9:0a33 Bus 002 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 [root@localhost ~]# lsusb Bus 002 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 ID为0000:0000 的设备是USB主控制器,可以忽略不计,这个鼠标是 Bus 002 Device 002: ID 15d9:0a33 同PCI设备一样的道理,这里也要搜索 VID和PID ,同样的过程 |