11

我需要处理两个自定义硬件,它们都通过两个串行连接发送调试数据。这些串行连接通过两个串行到 USB 转换器。串行转 USB 设备具有相同的供应商编号、设备编号,并且显然具有相同的序列号。

这是问题所在:我想分别记录两个串行端口。自定义硬件需要不断重启,它们是否附加到相同的硬件/dev/ttyUSB*是完全随机的。我怎样才能让他们每次都选择相同的设备路径?我可以让它依赖于它插入的端口,但这似乎有点hacky。

因此,我对 udevadm 的输出进行了比较,如下所示:

$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB1` > usb1
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` > usb2
$ diff usb1 usb2

diff的输出很长;在这里你可以看到它

Grepping for serial(两者相同):

$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` | grep serial
SUBSYSTEMS=="usb-serial"
ATTRS{serial}=="0001"
ATTRS{serial}=="0000:00:1d.7"

其他信息:

我正在使用 PuTTY 从串行端口读取数据。
操作系统:

$ uname -a
Linux xxxxxxxx.localdomain 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
4

1 回答 1

1

请检查usb-serial转换器是否基于ftdi芯片?(您可以检查驱动程序文件名)

如果是这样; 您有机会更改序列号,甚至是制造商信息。

http://www.ftdichip.com/Support/Utilities.htm 检查工具;MProg 和 FT_PROG 实用工具。

于 2012-12-27T22:30:12.257 回答