Правило udev для генерации символической ссылки для USB-устройства с использованием ATTRS {serial} в имени ссылки - PullRequest
1 голос
/ 26 февраля 2020

У меня есть правило udev, которое генерирует символические ссылки для моих USB-устройств в /dev в соответствии с их серийным номером (у меня есть несколько идентичных в других случаях устройств, но мне нужны конечные точки воспроизводимых устройств).

В настоящее время мне нужно добавить правило для каждого нового серийного номера, например:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S101", SYMLINK+="ttyS101"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S102", SYMLINK+="ttyS102"
...

Я ищу способ сделать это с одним правилом, все, что динамически доступно, это %k, %n и %c, но я не нашел способа получить доступ к другим значениям. Можно использовать PROGRAM="", но как бы я получил доступ к ATTRS оттуда?

Я пробовал это:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="S101", PROGRAM="/bin/sh -c 'udevadm info /dev/%k | grep ID_SERIAL_SHORT= | cut -d= -f 2'" SYMLINK+="tty%c"

, но похоже, что /dev/%k недоступно, когда программа работает, так что это тоже не работает.

Есть ли способ использовать ATTRS{serial} для моего SYMLINK+=""?

1 Ответ

0 голосов
/ 26 февраля 2020

Похоже, вы используете последовательные порты USB. Вам будет проще получить доступ к этим устройствам по символическим c ссылкам в /dev/serial/by-id. Нет необходимости создавать правила udev.

...