如何找出 USB-RS232 裝置被分配在哪個 TTY?

How to find out which USB-RS232 device is on which tty?

Q: I have two different USB devices based on the same USB-RS232 chips. When I plug those in the USB they are mounted to /dev/ttyUSB0…3

My problem is how, inside a script, I can find out which one is on what tty?

Using lsusb I can differentiate them:

$> 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
And using dmesg I can tell where they were mounted:

$> 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
But “usb 4-1″ does not seem to correspond to “Bus 004 Device 002″.

Can I assume that “Bus 004 Device 001″ will always be an “USB root hub" and thus dmesg will count from 1 onwards and lsusb from 2 onwards?

Or do you have another suggestion on how to correlate device ID to mount point (inside a script)?

I’m using Ubuntu 10.04 LTS.

A: Find more info using 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

Of course, the linked devices/… node contains a lot of information

Adding information based on the OP’s comment:

The device number keeps growing if devices are removed/inserted. lsusb -t can be used to correlate the device numbers with usb bus/port.

Then, ‘lsusb -d devID’ can determine what device is on which port. Finally ‘ls /sys/bus/usb-serial/devices/ -ltrah‘ will list (by bus/port) where it was mounted.

Not very convenient, but it ‘works’

from:http://stackoverflow.com/questions/9183880/how-to-find-out-which-usb-rs232-device-is-on-which-tty

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s