У меня есть правило 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+=""
?