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

问题描述 投票:2回答:2

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

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

linux linux-kernel usb-drive udev
2个回答
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 / net /中设备

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


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上有效

© www.soinside.com 2019 - 2024. All rights reserved.