On Tuesday 02 May 2006 18:27, Wittawat Yamwong wrote: > 2. If your libusb doesn't properly open a device node under /dev/bus/usb/ > (like mine; libusb bug?) but works correctly with usbfs in /proc/bus/usb/, > add the following line to your udev configuration file (It works at least > on my system): > > SUBSYSTEM=="usb", ACTION=="add", ENV{PRODUCT}=="<VID>/<PID>/*", > RUN+="/bin/sh -c '/bin/chgrp scanner $env{DEVICE}; /bin/chmod 664 > $env{DEVICE}'" > > Replace <VID> and <PID> with the correct USBID of your scanner and check > the group and permission if it matches your system. See udev man page > and /usr/src/linux/Documentation/usb/hotplug.txt for more info.
This sounds similar to my issue. sane-find-scanner produces: found USB scanner (vendor=0x04b8, product=0x011d, chip=LM983x?) at libusb:001:003 (it often appears at 002:002, but is variable!) scanimage -L produces: scanimage: no SANE devices found so it definitely looks like a permission problem. If I change the permissions on /proc/bus/... manually it works! there are devices at both /proc/bus/usb/001/003 and /dev/bus/usb/1/3. Both have root/root permissions. I have added your line (slightly amended) to my udev rules: # permissions for usb scanner SUBSYSTEM=="usb", ACTION=="add", ENV{PRODUCT}=="04b8/011d/*", RUN+="/bin/sh -c '/bin/chgrp scanner $env{DEVICE}; /bin/chmod 664 $env{DEVICE}'" (all on one line - its been word-wrapped by my e-mail program!) Even with this line, the permissions on /dev/bus/usb/1/3 remained root-root, as did the corresponding lines in /proc/bus/... I have a feeling that the problem may be $env{DEVICE}. This suggests to me (and remember that I'm no programmer!) that there should be an environment variable called DEVICE being set somewhere, but there doesn't appear to be. If I manually change permissions on /dev/bus/usb/1/3, scanimage still doesn't pick up my scanner. However, if I change permissions on /proc/bus/usb/001/003, then it does. In other words, it appears to be giving /proc/bus/... priority over /dev/bus/... According to messages elsewhere in this thread, it should use /dev/bus/ if its available, and only use /proc/bus if there is no device on /dev/bus/ This doesn't seem to be happening! Does this help at all? BTW, I have now removed my line that created /dev/usbscanner. -- Pete chri...@attglobal.net