Я написал простое правило udev для присвоения имени моему USB-устройству:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick-5G"
udev предлагает способы запуска пользовательских сценариев для определенных событий ( ref :
KERNEL=="sdb", RUN+="/usr/bin/my_program"
Однако я бы хотел, чтобы в приведенном выше решении я просто напечатал некоторую информацию, которая будет отображаться в dmesg
. Это не та сложность, которая требует отдельного сценария.
Ниже приведено то, над чем я в идеале надеялся работать:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick-5G", RUN+="echo 'Made symlink: ttyUSB-ZStick-5G' > /dev/kmsg"
Идеи о том, как это сделать?
Как объясняется в руководстве :
Имя программы и следующие аргументы разделяются пробелами. Для указания аргументов с пробелами можно использовать одинарные кавычки.
Строка, переданная в RUN
, не передается в оболочку. Он просто разделен на пробелы с помощью грубого механизма цитирования. Если вы хотите выполнить перенаправление, вам нужно вызвать оболочку.
… RUN+="sh -c 'echo Made symlink: ttyUSB-ZStick-5G > /dev/kmsg'"
Вызов сценария будет более понятным.