You are not logged in.

#1 2016-09-08 12:43:43

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,390

[SOLVED] Why isn't this udev rule triggered?

I'd like to execute something when i plug scanners, but
The following rule that doesn't work:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{libsane_matched}=="yes", ACTION=="add" , RUN+="/usr/bin/touch /tmp/scanner"

This does work, but of course it does for other usb devices too, which is not what i want.

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", RUN+="/usr/bin/touch /tmp/scanner"

Inspecting via udevadm monitor --property, i get:

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[160625.028877] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/055
DEVNUM=055
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4
DEVTYPE=usb_device
MAJOR=189
MINOR=54
PRODUCT=4a9/1904/603
SEQNUM=15063
SUBSYSTEM=usb
TYPE=255/255/255

KERNEL[160625.029162] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0
DEVTYPE=usb_interface
INTERFACE=255/255/255
MODALIAS=usb:v04A9p1904d0603dcFFdscFFdpFFicFFiscFFipFFin00
PRODUCT=4a9/1904/603
SEQNUM=15064
SUBSYSTEM=usb
TYPE=255/255/255

UDEV  [160625.054662] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4 (usb) <---------- THIS IS THE MATCHING BLOCK
ACTION=add                                                    <---------- MATCHED (?)
BUSNUM=001
DEVNAME=/dev/bus/usb/001/055
DEVNUM=055
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4
DEVTYPE=usb_device                                                    <---------- MATCHED (?)
DRIVER=usb
ID_BUS=usb
ID_FOR_SEAT=usb-pci-0000_00_1a_0-usb-0_1_4
ID_MODEL=CanoScan
ID_MODEL_ENC=CanoScan
ID_MODEL_FROM_DATABASE=CanoScan LiDE 100
ID_MODEL_ID=1904
ID_PATH=pci-0000:00:1a.0-usb-0:1.4
ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_4
ID_REVISION=0603
ID_SERIAL=Canon_CanoScan
ID_USB_INTERFACES=:ffffff:
ID_VENDOR=Canon
ID_VENDOR_ENC=Canon
ID_VENDOR_FROM_DATABASE=Canon, Inc.
ID_VENDOR_ID=04a9
MAJOR=189
MINOR=54
PRODUCT=4a9/1904/603
SEQNUM=15063
SUBSYSTEM=usb                                                    <---------- MATCHED (?)
TAGS=:seat:uaccess:
TYPE=255/255/255
USEC_INITIALIZED=160625032940
libsane_matched=yes                                                    <---------- MATCHED (?)

UDEV  [160625.057795] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0 (usb)
.MM_USBIFNUM=00
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0
DEVTYPE=usb_interface
ID_FOR_SEAT=usb-pci-0000_00_1a_0-usb-0_1_4_1_0
ID_MODEL_FROM_DATABASE=CanoScan LiDE 100
ID_PATH=pci-0000:00:1a.0-usb-0:1.4:1.0
ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_4_1_0
ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
ID_USB_PROTOCOL_FROM_DATABASE=Vendor Specific Protocol
ID_USB_SUBCLASS_FROM_DATABASE=Vendor Specific Subclass
ID_VENDOR_FROM_DATABASE=Canon, Inc.
INTERFACE=255/255/255
MODALIAS=usb:v04A9p1904d0603dcFFdscFFdpFFicFFiscFFipFFin00
PRODUCT=4a9/1904/603
SEQNUM=15064
SUBSYSTEM=usb
TAGS=:seat:uaccess:
TYPE=255/255/255
USEC_INITIALIZED=160625056943

As you see, it seems to me that the relevant matching lines are present in the monitor log (SUBSYSTEM="usb", ENV{DEVTYPE}=="usb_device", ENV{libsane_matched}=="yes", ACTION=="add")

...of course i could match with ID_MODEL or idvendor and so on, but i'd like to use "libsane_matched=yes" so that it will work with other scanner models too.

What am i missing?

--EDIT--

Solved.
I understood that udev rules runs from /usr/lib/udev/rules.d/ and /etc/udev/rules.d/ ; but the execution order only depends by the file name, and not the full path.
So, moving my 20-scanner.rules to 99-scanner.rules will make it work, because ENV{libsane_matched}=="yes" is set previously by provided systemd/udev rules.

So my rule had to be executed later.

Last edited by kokoko3k (2016-09-08 13:04:46)


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

Board footer

Powered by FluxBB