Arduino Nano основан на ATmega328, который не имеет встроенного USB-контроллера. Разъем USB на плате подключается к внешней микросхеме преобразователя USB-TTL. Таким образом, все параметры USB-устройства, которые вы видите на стороне ПК, относятся не к самому Arduino, а к USB-чипу.
Многие из этих микросхем могут быть запрограммированы отдельно с помощью уникальных серийных номеров. В качестве альтернативы вы можете просто использовать номера портов вашего ПК, чтобы вместо этого подключать платы Arduino в качестве уникальных идентификаторов.
udevadm
команда, которую вы пробовали, показывает «серийный номер» контроллера USB
на вашем ПК, в который вставлена ваша плата Arduino, а не последовательный порт USB на плате Arduino.
Вместо этого 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}"
я в конечном итоге делает именно это, я использовал свои номера портов ПК для идентификации Ардуинов. недостатком этого подхода является то, что вам нужно следить, в каком порядке вы подключаете Arduinos к ПК. – Jonas
@Jonas, я предлагаю создать правило 'udev', которое будет отображать (создавать псевдонимы) устройства, подключенные к определенным портам вашего компьютера, к определенным именам устройств. В этом случае порядок подключения не имеет значения. –