Во-первых, убедитесь, что вы можете запускать приложение в интерактивном режиме (например, из оболочки). Это исключит проблему с кросс-компиляцией, которая довольно легко может пойти не так.
Убедившись, что он работает, вы можете попробовать запустить его из /etc/rc.local
. В большинстве дистрибутивов это должно запускаться автоматически при запуске.
В Интернете также есть много справочной информации о том, когда rc.local не запускается при загрузке. Я не знаю, какой дистрибутив работает на вашей плате, но в этом ответе об Ubuntu есть хороший совет.
Я думаю, ваша основная проблема заключалась в том, что вы пытались использовать %s{devpath}
вместо простого использования $devpath
.
Что-то вроде этого должно работать:
SUBSYSTEM=="usb", ATTRS{idVendor}=="20ce", ATTRS{idProduct}=="0023", SYMLINK+="attenuators/$devpath"
Остерегайтесь ATTRS
вместоATTR
(обратите внимание на S в конце, вы перепутали их несколько раз ), потому что вы фильтруете какой-то родительский узел. См. Разница между ATTRS и ATTR в правилах udev?