2024年3月12日发(作者:)
USB设备检测的一般过程
USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备
能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是
否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。
现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器
模块时,可以察看/proc/pci文件来决定。打开此文件,您若发现 USB节为 I/O at
0xHHHH格式(例如出现 I/O at 0xe000 [0xe01f]),HHHH为16进制数,则桥接器类
型为UHCI。若是它为32 bit memory at 0xHH000000形式(例如出现32 bit memory
at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不
满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。一
般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对
于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。
您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,
不过这时这个目录是空的,没有任何文件。这时您就必须挂接usbdevfs文件系统,然后
通过此文件系统检测连接的设备。在成功挂接usb文件系统之后,就会生成文件
/proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。挂接
usbdevfs文件您可以通过如下操作实现:
mount -t usbdevfs none /proc/bus/usb
或在/etc/fstab上加入
none /proc/bus/usb usbdevfs defaults 0 0
然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括
设备标识和制造商标是等信息。
系统环境:Loongson-1B开发板(mips32指令集)、busybox1.19.2、Linux2.6.21、
文件系统配置参照本博客文章《移植Busybox与构建根文件系统》
编译环境:ubuntu10.04、gcc-3.4.6-2f
u盘自动挂载功能实现步骤如下:
1、配置内核
a)配置内核支持热插拔:
#cd linux.2.6.21
#vi .config
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y //确保此项为y
CONFIG_PRINTK=y


发布评论