我使用命令:find / -iname“usb”并获得如下结果:
/dev/bus/usb /sys/bus/usb /sys/bus/usb/drivers/usb /sys/kernel/debug/usb
在/ dev / bus / usb下我看到:
001 002 003 004 005 006
但我认为它们不是我需要的文件.
在/ sys / bus / usb / devices /下:
sh-3.2# ls /sys/bus/usb/devices/ 1-0:1.0 1-1:1.0 3-0:1.0 5-0:1.0 usb1 usb3 usb5 1-1 2-0:1.0 4-0:1.0 6-0:1.0 usb2 usb4 usb6
在/ sys / bus / scsi / devices /下我插入USB时看到:
2:0:0:0 host0 host2 target2:0:0
当我删除USB时,我看到:
sh-3.2# ls host0
那么哪个设备文件用于USB?我怎么辨认呢?我需要用USB设备文件制作一个C程序…
还有,你能解释一下我的数字是1-1:1.0吗?这是什么意思?
谢谢.
解决方法
So which device file is used for USB? How can i indentify it?
您在/ sys /后面看到的主要是有关设备的配置/信息. / dev / bus / usb是你要找的.我认为以下文章可以帮助您
http://www.linuxjournal.com/article/7466?page=0,0
很老了,但它仍然可以帮助你. (在他们谈到/ proc / bus / usb的文章中,今天我们有/ dev / bus / usb)
Further more,could you explain to me the number 1-1:1.0? What does it mean?
通用形式是
X-Y.Z:A.B
每个字段标识设备的连接点.前两个字段是强制性的:
> X是主板的USB总线,连接USB系统.
> Y是总线系统上使用的端口
因此,用字符串3-3标识的USB设备是连接在总线3的端口3上的设备.
如果连接USB集线器,则可以扩展单个USB端口的连接功能. Linux内核通过附加Z字段来识别这种情况.
> Z是集线器上使用的端口
因此,用字符串1-2.5标识的USB设备是连接在总线1的端口2上的集线器的端口5上的设备.
USB规范允许您级联连接多个USB集线器,因此Linux内核继续在不同的集线器上附加正在使用的端口.因此,用字符串1-2.1.1标识的USB设备是连接在集线器的端口1上的设备,该集线器连接到总线1的端口2的集线器的端口1上.
$dmesg | grep usb [... snip ...] [ 2.047950] usb 4-1: new full-speed USB device number 2 using ohci_hcd [ 2.202628] usb 4-1: New USB device found,idVendor=046d,idProduct=c318 [ 2.202638] usb 4-1: New USB device strings: Mfr=1,Product=2,SerialNumber=0 [ 2.202643] usb 4-1: Product: Logitech Illuminated Keyboard [ 2.202648] usb 4-1: Manufacturer: Logitech [... snip ...]
然后,模式的最后两个字段(冒号后)标识USB设备的内部部分:
> A是设备的配置号
> B是配置的接口编号
因此,字符串4-1:1.1表示:接口1,在配置1上,连接在总线4的端口1上.
您可以使用命令lsusb检索这些信息.