在Linux中使用lsusb
命令我已经了解了总线和设备编号,以及新连接的USB设备的名称。
但是,如何才能知道USB设备在Linux上使用命令行连接到哪个设备目录(/ dev / *)?
并非每个设备都必须直接显示在/ 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管理,因此。
以下是我的笔记本电脑上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上有效