1

Здравствуйте. Помогите разобраться. Необходимо, что бы при вставке CD/DVD диска в cdrom, udev запускал программу или скрипт.
Для usb все прекрасно работает, для cdrom не работает.

вот что делю для usb:
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", RUN+="/sbin/usb.sh"

это работает.

вот что делаю для cdrom:
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYP}E=="scsi_device", ENV{ID_CDROM}==1, RUN+="/sbin/cdrom.sh"

это не рабоатет. Перепробовал разные варианты. Не знаю в чем проблема, не работает и все.

Подскажите пожалуйста в чем может быть проблема? кто с этим сталкивался.

2

Manko8 пишет:

ENV{DEVTYP}E=="scsi_device"

Так и должно быть {DEVTYP}E?

Был, был и весь вышел...

3 (26.02.2012 20:10:51 отредактировано Manko8)

нет, так не должно быть... Извините, опечатка.
Ее исправление не повлияло на работу.
Это одна из версий правил, которое пробовал.

4

Manko8, покажите полностью файлы с правилами  и полный путь до них.

Был, был и весь вышел...

5 (26.02.2012 20:07:28 отредактировано Manko8)

все правила лежат здесь:  /etc/udev/rules.d

Спсиок правил:

 Консоль:
-rw-r--r--. 1 root root  467 Янв 17 15:58 00-usb.rules
-rw-r--r--. 1 root root  208 Фев 26 20:26 01-cd.rules
-rw-r--r--. 1 root root 6858 Фев 23  2011 40-hplip.rules
-rw-r--r--. 1 root root  706 Фев 23  2011 56-hpmud_support.rules
-rw-r--r--. 1 root root 1652 Авг 25  2010 60-fprint-autosuspend.rules
-rw-r--r--. 1 root root 1060 Июн 29  2010 60-pcmcia.rules
-rw-r--r--. 1 root root  452 Мар 11  2011 60-raw.rules
-rw-r--r--. 1 root root  417 Янв 29 19:27 70-persistent-cd.rules
-rw-r--r--. 1 root root  420 Янв 29 18:40 70-persistent-net.rules
-rw-r--r--. 1 root root 1914 Янв 13  2010 85-pcscd_ccid.rules
-rw-r--r--. 1 root root  320 Май 15  2009 90-alsa.rules
-rw-r--r--. 1 root root   83 Апр  1  2011 90-hal.rules
-rw-r--r--. 1 root root  359 Авг 18  2010 90-rdma.rules
-rw-r--r--. 1 root root   53 Янв 13  2011 91-drm-modeset.rules
-rw-r--r--. 1 root root 2486 Июн 30  2010 97-bluetooth-serial.rules
-rw-r--r--. 1 root root  292 Апр 27  2011 98-kexec.rules
-rw-r--r--. 1 root root   54 Апр  8  2010 99-fuse.rules

6

Manko8, покажите полностью содержимое созданных вами файлов и их имя, где находятся указанные вами строки, а также содержимое файла 70-persistent-cd.rules.

Был, был и весь вышел...

7

Что именно вы пытаетесь реализовать с помощью данных правил? Возможно, всё уже придумано за вас  wink

Был, был и весь вышел...

8 (26.02.2012 20:27:30 отредактировано Manko8)

Реализовать хочу отчуждение CD и USB носителей, на основе БД. Т.е. если носитель не занесен в Бд, то он не монтируется.

9

содержимое 70-persistent-cd.rules:

 Консоль:
# This file was automatically generated by the /lib/udev/write_cd_rules
# program, run by the cd-aliases-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and set the $GENERATED variable.

# VMware_IDE_CDR10 (pci-0000:00:07.1-scsi-1:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:07.1-scsi-1:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"

содержимое 00-usb.rules

 Консоль:
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", RUN+="/sbin/usb check"
ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", RUN+="/sbin/usb mount"
ACTION=="remove", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", RUN+="/sbin/usb remove"


содержимое 00-cd.rules

 Консоль:
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_CDROM}==1, RUN+="/root/cd check"

10

Попробуйте это правило чуть изменить:

Manko8 пишет:

 Консоль:
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_CDROM}==1, RUN+="/root/cd check"

Сделать так:

 Консоль:
ACTION=="change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_CDROM}==1, RUN+="/root/cd check"

Был, был и весь вышел...

11 (26.02.2012 20:53:19 отредактировано Manko8)

Не работает. Что бы точно проверить, реагирует udev на событие или нет,

в замен RUN+="/root/cd check" - вставил RUN+="/root/echo.sh"

где echo.sh

 Консоль:
#!/bin/bash

echo 'test'>> /root/File_test

На usb флешку реагирует замечательно, файл создается. На СD/DVD не реагирует совсем...

12

Manko8, перед подключением CD-диска запустите в консоли

 Консоль:
udevadm monitor --property

чтобы отследить, какие именно события udev при этом происходят.

Был, был и весь вышел...

13

В порядке полунаучного бреда...
Попробуйте выполнить

mv /etc/udev/rules.d/01-cd.rules /etc/udev/rules.d/71-cd.rules
Был, был и весь вышел...

14 (26.02.2012 21:03:53 отредактировано Manko8)

Делаю после каждого изменения правил.

 Консоль:
udevadm control --reload-rules

Все udev так и отслеживаю:

 Консоль:
udevadm monitor --property

А почему бреда?

15

Manko8 пишет:

А почему бреда?

...моего бреда  :o

Был, был и весь вышел...

16 (26.02.2012 21:09:53 отредактировано Manko8)

УРА))) пол дня с этим провозился... заработало... сделал так:

 Консоль:

ACTION=="change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk",  ENV{ID_CDROM}=="?*", RUN+="/root/echo.sh"

и правило переменовал на номер 71-cd.rules

Спасибо огромное!!! )