Запустить программу при подключении устройства

Как известно, Linux посредством менеджера устройств udev может реагировать на такие события, как подключение устройств к шине usb. Например, хорошо бы сделать так, чтобы при подключении цифрового фотоаппарата usb шнуром он сразу монтировался к какому-нибудь каталогу, т.е. чтобы команда gphotofs, о которой я писал в предыдущем топике, выполнялась автоматически (вот ведь лень-матушка до чего довела ). На этот случай существуют правила, хранящиеся в каталоге /etc/udev/rules.d.

Чтобы при подключении устройства запускалась программа нужно сначала выяснить его характеристики, чтобы система отличала его от других. Сделать это можно командой lsusb.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 123: ID 0aec:3260 Neodio Technologies Corp. 7-in-1 Card Reader
Bus 001 Device 007: ID 04a9:31f4 Canon, Inc. 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0a5c:2123 Broadcom Corp. Bluetooth dongle
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0458:001b KYE Systems Corp. (Mouse Systems) 


В списке видно устройство Canon, т.е. искомый цифровой фотоаппарат. Нас в этой строке интересуют две группы цифр, разделенные двоеточием. Это идентификаторы производителя (первые четыре знака) и продукта. Опираясь на них, создаем в указанном каталоге файл 60-canon.rules со следующим кодом:

SUBSYSTEM=="usb",        ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f4", MODE="0666", RUN+="/usr/bin/gphotofs -o allow_other /home/one/Documents/.photo"

Это означает, что когда к шине usb будет подключено устройство с такими idVendor и idProduct, следует запустить программу

/usr/bin/gphotofs -o allow_other /home/one/Documents/.photo


После этого требуемый каталог можно открыть любым файловым менеджером и просмотреть снимки или скопировать их на жесткий диск.
  • +9
  • 28 января 2011, 00:12
  • yababay

Комментарии (4)

RSS свернуть / развернуть
+
0
подобный способ может подойти для каких-нибудь специализированных устройств
да хотя бы даже для домашнего медиа центра на linux )))
avatar

Sergei_T

  • 28 января 2011, 14:34
+
0
Метод позаимствован из процедуры отладки программ для Android, где тоже нужно указывать вендора и модель, чтобы устанавливать софт на гуглофон.
avatar

yababay

  • 28 января 2011, 14:45
+
0
Также немного от себя: эти значения называются VID и PID соответственно.

А gphoto2 мне понравился, вот думаю куда бы его только прикрутить
avatar

Mihael

  • 28 января 2011, 18:19
+
0
интересно !
avatar

Markony

  • 30 января 2011, 12:18

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.