gpt4 book ai didi

linux - 具有相同序列号的 USB 到串行设备之间的持久性

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:21 28 4
gpt4 key购买 nike

在为 USB 转串口适配器设备提供 udev 规则时遇到了一个大问题,我有两个,它们具有相同的属性。有没有其他方法可以为它们中的每一个设置 udev 规则,还是我运气不好?他们有“bcm2708_usb”内核版本。谢谢!

此外,我通过 USB 集线器使用它们

这就是结果

  • like mentioned below, I used "lsusb -t" command to get the USB serial device tree

  • created a file "/etc/udev/rules.d/99-input.rules"

  • In that file I wrote this line "SYMLINK+="printer" ATTRS{devpath}=="1.2.1"

  • Saved the file and these commands to enable the rules without the need of reboot - "sudo udevadm control --reload-rules", "sudo udevadm trigger"

为了测试它,我使用了“sudo minicom -s”,在“serial setup”选项中我将设备设置为“/dev/printer”

最佳答案

我过去在使用两个相同的 USB 串行设备时遇到过这个问题。最后,我们通过将它们替换为系统中唯一的 USB 串行设备的四端口 USB 串行设备来长期解决这个问题,无论四端口在哪里,都可以更轻松地查找和检测各个串行端口USB 已连接。

但是:

实证方法

您可以通过一些经验观察来做到这一点,如果您可以物理识别和维护它所连接的 USB 端口,并且如果 USB 子系统不改变(比如,感谢移除/添加其他 PCI 卡或 USB 集线器、BIOS 更新等 - 这是一个很大的“如果”,我知道......)并且如果你只有一个你关心的系统......

命令 lsusb -t 将为您提供 USB 设备和端口树。您可以使用它来查找您的设备。选择一个然后将其取下并将其插入不同的 USB 端口以确认您拥有所需的设备。给它贴上标签,并贴上要使用它的物理端口的标签,并记下当时的总线、端口、设备、地址等。如果PCI总线没有改变等,那么USB总线、设备、端口应该保持与那个USB串口设备对应的那个。

示例输出:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/5p, 480M
|__ Port 3: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 7, If 0, Class=vend., Driver=pl2303, 12M

在这种情况下,链 Bus 02, Port 3 Dev1 --> Port 1 Dev 7

然后您可以在 udev 规则中使用该信息来区分特定的 USB 串行设备,类似于:

ATTRS{devpath}=="3.1",ATTRS{idVendor}=="0557", ATTRPICS{idProduct}=="2008"

这里,3.1对应最下面的端口3、端口1

这是一个未插入集线器的示例:

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 1: Dev 2, If 0, Class=vend., Driver=pl2303, 12M

ATTRS{devpath}=="1",ATTRS{idVendor}=="0557", ATTRS{idProduct}=="2008"

忽略 Dev 编号,每次插入时它都会更改。很明显,把productId等换成你的……

关于linux - 具有相同序列号的 USB 到串行设备之间的持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com