Linux上/ dev目录下的USB设备检测

时间:2014-07-04 12:44:11

标签: linux linux-kernel usb-drive udev

在Linux中使用lsusb命令我已经了解了总线和设备号,以及新连接的USB设备的名称。

但是如何才能知道USB设备在Linux上使用命令行连接到哪个设备目录(/ dev / *)?

2 个答案:

答案 0 :(得分:3)

并非每个设备都必须直接显示在/ dev /下,但某些设备类将嵌套在/ dev /

内的子目录下

USB设备驱动程序有点不同, 如果连接有效的USB设备,USB HCI将读取VID:PID并告诉usb-core已连接具有VID:PID组合的设备。

如果usbcore检测到VID:PID组合的任何注册驱动程序,它会将其与设备耦合,并相应地创建设备文件

即使相应的驱动程序不存在,设备也会显示在/ dev / bus / usb / ..中,表示设备已被检测到。

您需要设备驱动程序才能让设备处于运行/操作状态。

您可以通过

验证设备驱动程序是否已连接到设备
  

cat / sys / kernel / debug / usb / devices

每个检测到的USB设备都有一个条目,并显示“Driver =”字段,以显示与您的设备关联的驱动程序。

现在,IFF有一个驱动程序,它在相应的/ dev树中创建一个条目,你会在那里找到它。

并非每个设备都会直接显示在第一级/ dev /中。 比如,您的鼠标/键盘不会直接显示在/ dev下,而是显示在/ dev / input /

同样,如果连接的USB设备是char / block设备,它可能会显示在那里,也有异常。

如果您的设备是以太网/ wifi设备,接口设备将不会显示在/ dev /下,与您现有的eth0,wlan0交叉检查,它们不会直接出现在/ dev /下,而是会在/ proc中/净/装置

sda / b / c直接显示在/ dev下,因为它们是块设备并由udev管理,因此。

答案 1 :(得分:2)

以下是我的笔记本电脑上lsusb输出的示例:

Bus 004 Device 123: ID 2001:3c1b D-Link Corp. DWA-127 Wireless N 150 High-Gain Adapter(rev.A1) [Ralink RT3070]

这是004总线上的设备123. /dev/bus/usb/004/123只是感兴趣设备的文件。

路径可能因不同的内核而异。上面的结果适用于内核3.15.2