系统相关
首页 > 系统相关> > 如何在Linux中唯一识别两个相同的USB串行适配器

如何在Linux中唯一识别两个相同的USB串行适配器

作者:互联网

这个问题已经在这里有了答案:            >            How to identify multiple USB-serial adapters under Ubuntu 10.1                                    7个
我有一个运行Linux的嵌入式板,该板上有两个相同的4端口FTDI USB串行芯片. USB串行芯片硬连线到主板上的各个USB端口.这些设备无法“拆卸”,“断开连接”或移动到其他物理USB位置.

我担心每次启动时都会出现udev填充/ dev / ttyUSBs的竞争情况.无法保证一个芯片总是会先被枚举,导致第一个芯片有时会获得/ dev / ttyUSB0-3,有时会获得/ dev / ttyUSB4-7.

由于该板将在自动化环境中使用,因此用户无法在每次启动时连接到板来手动确定将哪个芯片分配给了/ dev / ttyUSB的哪个存储块.

我需要某种方法来确保每次设备启动时板上运行的进程都使用正确的串行通道.我猜测这可以通过告诉udev将哪个/ dev / ttyUSB分配给每个芯片来完成,或者在udev填充/ dev确定哪个芯片得到哪个/ dev / ttyUSB#之后在启动时运行脚本.

问题在于两个芯片完全相同,但是它们将始终连接到相同的物理USB位置.

如何在Linux中区分这些芯片?而且,如何设置或确定哪个芯片在启动时具有哪个/ dev / ttyUSB#?

解决方法:

您可以告诉udevd通过创建与特定DEVPATH匹配的规则,根据端口的物理连接为端口分配特定的名称.

DEVPATH是sysfs下设备的路径,从/ devices /开始.看起来像/devices/pci0000:00/0000:00:1d.3/usb5/5-2.

标签:usb,usbserial,linux
来源: https://codeday.me/bug/20191208/2092606.html