Запустите скрипт или пакет Java, если USB-устройство подключено к Raspberry Pi
Я пытаюсь запустить скрипт оболочки, если к моей Raspberry Pi подключено специальное USB-устройство. Я пытался следовать следующему описанию:
http://ubuntuforums.org/archive/index.php/t-502864.html
Я создал файл с именем 85-my_rule.rules с содержанием: ACTION=="add",SUBSYSTEM=="usb_device",SYSFS{idVendor}=="ffff",SYSFS{idProduct}=="1000",RUN+="/ USR / бен /usbdevinserted"
Мой скрипт usbdevinserted имеет следующее содержимое: echo "Dies ist ein Text" >>/tmp/text
Если я выполню этот сценарий в оболочке, текстовый файл с именем text не будет создан с содержимым "Dies ist ein Text", поэтому сценарий работает нормально. Но, кажется, это не будет выполнено, если я подключу USB-устройство к rasppi. Поэтому я думаю, что ошибка в моем правиле, но я не могу ее найти. Кто-нибудь может мне помочь?
Привет, Андреас
2 ответа
Правильно ли указаны поставщик и идентификатор продукта?
ffff и 1000 выглядят странно, но это может быть возможно (например, некоторые eval board).
Обычно "dmesg" выводит VID/PID (пару раз подключите / отключите, "dmesg", проверьте последние строки)
Кроме того, дважды проверьте, является ли это проблема преобразования шестнадцатеричного числа (попробуйте десятичное 65535 и 4096)
Я нашел решение. Я должен был изменить свое правило на следующее правило:
ACTION=="add",SUBSYSTEM=="block",KERNEL=="sd*[!0-9]|sr*",RUN+="/usr/bin/usbdevinserted"
и мой сценарий сейчас:
#!/bin/bash
echo "Dies ist ein Text" >>/tmp/text
но я не знаю, почему мне пришлось вставить первую строку в мой сценарий. Кто-нибудь может объяснить эту строку, пожалуйста?
Привет, Андреас