我有两个不同的USB设备,基于相同的USB- on 232芯片.当我在USB中插入它们时,它们被挂载到/dev/ttyUSB0 0.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“似乎与”总线004设备002“不相对应。
我是否可以假设“总线004设备001”将始终是"USB根集线器“,因此dmesg将从1开始计算,而lsusb从2开始计算?
或者,对于如何将设备ID与挂载点(在脚本中)关联起来,您有其他建议吗?
我正在使用Ubuntu10.04LTS。
发布于 2012-02-07 21:20:31
使用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当然,连接的设备/..。节点包含大量信息。
根据“任择议定书”的评论添加信息:
如果删除/插入设备,则设备数量将不断增加。lsusb -t可用于将设备号与usb总线/端口相关联。
然后,'lsusb -d devID‘可以确定哪个设备位于哪个端口上。最后,'ls /sys/bus/usb-串行/设备/ -ltrah‘将(按总线/端口)列出其安装位置。
不太方便,但它很好用
发布于 2015-07-21 02:26:46
这个单线udev规则将给出一个固定的名称(例如/dev/ttyUSB_A9YL5BJJ),它基于给定的厂商/产品ids的任何设备的序列号。
将其放入udev规则文件中,例如/etc/udev/rues.d/60-FTDI-串行- file .规则
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ENV{ID_SERIAL_SHORT}=="?*", SYMLINK+="ttyUSB_%E{ID_SERIAL_SHORT}"https://stackoverflow.com/questions/9183880
复制相似问题