我使用两个arduino nano,并希望更改其名称如/dev
中列出,因为当前它们始终是ttyUSB<NUMBER>
。
如何获得唯一的序列号来创建UDEV规则?
我尝试通过udevadm
获得它,但它返回了两个Arduinos的序列ID。
/var/log: udevadm info -a -n /dev/ttyUSB0 | grep '{serial}'
ATTRS{serial}=="0000:00:14.0"
arduino nano基于没有内置USB控制器的Atmega328。板上的USB连接器连接到外部USB到TTL转换器IC。因此,您在PC侧看到的所有USB设备参数不属于Arduino本身,而是属于USB芯片。
这些芯片中的许多可以通过独特的序列号进行编程。另外,您可以将将Arduino板插入唯一标识符的PC端口号码。
您尝试过的udevadm
命令在PC中显示了Arduino Board已插入的USB
控制器的"串行",而不是Arduino Board上的USB芯片的序列。
做udevadm info -n /dev/ttyUSB0 -q all
。带有序列号的线看起来像E: ID_SERIAL_SHORT=12345678
。如果该行丢失或确实包含所有董事会的相同数字 - 请使用此udev
规则根据USB端口号分配唯一的别名:
ACTION=="add", KERNEL=="ttyUSB*", SYMLINK+="arduino/tty-%s{../busnum}-%s{../devpath}"