如何为USB CDC串行端口分配用户定义的名称?

问题描述 投票:1回答:2

我在Linux板上使用USB调制解调器,并且在连接调制解调器时,内核将创建4个虚拟(CDC-ACM)串行端口。串行端口名称asr,如ttyUSB0-ttyUSB3。但是这些分配的名称并不总是相同的。如果我已经连接了其他一些USB CDC设备,那么内核将分配一组不同的名称,例如ttyUSB4-ttyUSB7。此行为影响我的程序,我必须每次更改端口号。

因此,有什么方法可以根据调制解调器的设备ID为调制解调器USB CDC端口分配用户定义的名称吗?

linux usbserial cdc
2个回答
0
投票

您可以使用udev规则:查找设备的供应商和产品ID(可以通过lsusb命令获得),然后创建文件/etc/udev/rules.d./99-serial.rules使用规则(相应地替换idVendor,idProduct和NAME):

SUBSYSTEM=="tty", ATTRS{idVendor}=="O123", ATTRS{idProduct}=="0123", NAME="chooseSomeName"

再次拔出设备插头。现在应该可以通过/ dev / chooseSomeName

访问它。

0
投票

根据https://wiki.ubuntuusers.de/udev/,Emilien的方法已弃用(至少在Ubuntu版本≥13.10上:)

Die Vergabe von eigenen Namen mit = ist nurfürNetzwerkschnittstellen eth * sinnvoll。 Bis Ubuntu 13.04死于AndereGerätenoch umbenannt werden,死于内核。 DaherunterstütztUbuntu ab 13.10发行日期Ubenennen von eth *-Geräten。

草率翻译:

使用NAME =分配自己的名称仅对于网络接口eth *是合理的。在Ubuntu 13.04之前,还可以重命名其他设备,但这会导致内核不一致。由于这个原因,Ubuntu 13.10和更高版本仅允许重命名eth * -devices [使用NAME =标签]

而不是使用SYMLINK命令,例如

SUBSYSTEM=="tty", ATTRS{idVendor}=="O123", ATTRS{idProduct}=="0123", SYMLINK="chooseSomeName"

这将产生到设备的符号链接(也在/ dev /文件夹中)。

© www.soinside.com 2019 - 2024. All rights reserved.