我有两个基于相同 USB-RS232 芯片的不同 USB 设备。
当我将它们插入 USB 时,它们会安装到 /dev/ttyUSB0...3
我的问题是,在脚本中,我如何找出哪个脚本位于哪个 tty 上?
使用 lsusb 我可以区分它们:
$> lsusb | grep 0403:f850
Bus 004 Device 002: ID 0403:f850 Future Technology Devices International, Ltd
$> lsusb | grep 0403:6001
Bus 004 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
使用 dmesg 我可以知道它们安装在哪里:
$> dmesg | grep 'FTDI USB Serial Device converter now attached'
[36051.393350] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB1
[36061.823513] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0
但“usb 4-1”似乎与“Bus 004 Device 002”不对应。
我是否可以假设“Bus 004 Device 001”始终是“USB 根集线器”,因此 dmesg 将从 1 开始计数,lsusb 从 2 开始计数?
或者您对如何将设备 ID 与安装点(在脚本内)相关联有其他建议吗?
我正在使用 Ubuntu 10.04 LTS。
使用 sysfs 查找更多信息:
$ ls /sys/bus/usb-serial/devices/ -ltrah
lrwxrwxrwx 1 root root 0 2012-02-07 22:17 ttyUSB0 -> ../../../devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0
$ ls -ltrad /sys//devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0
drwxr-xr-x 4 root root 0 2012-02-07 22:17 /sys//devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0
$ ls -ltrad /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 2012-02-01 00:17 /dev/ttyUSB0
当然,linked devices/...节点包含了很多信息
根据OP的评论添加信息:
如果移除/插入设备,设备数量会持续增长。lsusb -t
可用于将设备编号与 USB 总线/端口关联起来。
然后,“lsusb -d devID”可以确定哪个设备位于哪个端口上。
最后 'ls /sys/bus/usb-serial/devices/ -ltrah' 将列出(按总线/端口)它的安装位置。
不是很方便,但它'works'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)