[sane-devel] Calling a script after USB scanner is plugged

Rainer Dorsch rdorsch at web.de
Wed Apr 23 20:53:48 UTC 2008

Am Mittwoch, 23. April 2008 schrieb Julien BLACHE:
> Johannes Meixner <jsmeix at suse.de> wrote:
> Hi,
> >> umax1220u scripts are started in a sequence (i.e. not in parallel, when
> >> one is completed the next one starts).
> When troubleshooting udev rules, use udevmonitor to actually see
> what's happening in terms of udev events and their properties.

That was a very good hint, thanks. A single scanimage -L causes these events:

UEVENT[1208979136.171525] remove   /class/usb_endpoint/usbdev1.5_ep01 
UEVENT[1208979136.171696] remove   /class/usb_endpoint/usbdev1.5_ep82 
UEVENT[1208979136.171702] remove   /class/usb_endpoint/usbdev1.5_ep83 
UEVENT[1208979136.171707] add      /class/usb_endpoint/usbdev1.5_ep01 
UEVENT[1208979136.171712] add      /class/usb_endpoint/usbdev1.5_ep82 
UEVENT[1208979136.171717] add      /class/usb_endpoint/usbdev1.5_ep83 
UDEV  [1208979136.172276] remove   /class/usb_endpoint/usbdev1.5_ep01 
UDEV  [1208979136.172803] remove   /class/usb_endpoint/usbdev1.5_ep82 
UDEV  [1208979136.173239] remove   /class/usb_endpoint/usbdev1.5_ep83 
UDEV  [1208979136.174020] add      /class/usb_endpoint/usbdev1.5_ep01 
UDEV  [1208979136.174831] add      /class/usb_endpoint/usbdev1.5_ep82 
UDEV  [1208979136.175619] add      /class/usb_endpoint/usbdev1.5_ep83 

> > ACTION!="add", GOTO="end"
> > SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010b", RUN+="..."
> > LABEL="end"
> Be careful with the labels you use. Always use a unique label name, or
> you're asking for troubles. (been there, done that, accidentally
> rendered a number of systems unbootable due to that ...)

I tried that before after I saw the z60_libsane.rules

ACTION!="add", GOTO="post_lamp_off"
SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0010", MODE="0664", 
GROUP="scanner", NAME="umax%n", RUN+="/usr/local/bin/umax1220u start", 

But given the events, it is obvious not surprising that this is not working.

> > Welcome in the hell of udev, HAL and whatever else sophisticated
> > stuff which is required to make users happy or so they say...
> <aol />

I added now in my script a file system lock:

if [ ! -e /tmp/umax1220u-plugged ]; then

  touch /tmp/umax1220u-plugged

Is anybody aware of a more elegant solution for this problem?


Rainer Dorsch
Lärchenstr. 6
D-72135 Dettenhausen
email: rdorsch at web.de
jabber: rdorsch at jabber.org
GPG Fingerprint: 5966 C54C 2B3C 42CC 1F4F  8F59 E3A8 C538 7519 141E
Full GPG key: http://pgp.mit.edu/

More information about the sane-devel mailing list