Package: libsane Version: 1.0.18-6 Followup-For: Bug #359797 The patch suggested by Henrique causes libsane.rules to fail to match my scanner (an Epson CX6600). The problem is that udev sees a subsystem class of "usb_endpoint" not "usb_device" so the following line causes the bulk of libsane.rules to be skipped: SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"
Changing the line to SUBSYSTEM!="usb_endpoint", GOTO="libsane_rules_end" allows the rule to match and fixes the problem for me. I assume that this is a change in how kernel 2.6.20.7 reports this device? I've attached a udevinfo dump for the curious. -- Brad -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable'), (80, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.20.7 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages libsane depends on: ii adduser 3.102 Add and remove users and groups ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries ii libgphoto2-2 2.2.1-16 gphoto2 digital camera library ii libgphoto2-port0 2.2.1-16 gphoto2 digital camera port librar ii libieee1284-3 0.2.10-4 cross-platform library for paralle ii libjpeg62 6b-13 The Independent JPEG Group's JPEG ii libtiff4 3.8.2-7 Tag Image File Format (TIFF) libra ii libusb-0.1-4 2:0.1.12-5 userspace USB programming library ii makedev 2.3.1-83 creates device files in /dev Versions of packages libsane recommends: ii module-init-tools 3.3-pre4-2 tools for managing Linux kernel mo ii sane-utils 1.0.18-5 API library for scanners -- utilit ii udev 0.105-4 /dev/ and hotplug management daemo -- no debconf information
Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/class/usb_endpoint/usbdev3.3_ep01': KERNEL=="usbdev3.3_ep01" SUBSYSTEM=="usb_endpoint" DRIVER=="" ATTR{direction}=="out" ATTR{type}=="Bulk" ATTR{interval}=="0ms" ATTR{wMaxPacketSize}=="0200" ATTR{bInterval}=="00" ATTR{bmAttributes}=="02" ATTR{bEndpointAddress}=="01" ATTR{bLength}=="07" ATTR{dev}=="254:9" looking at parent device '/devices/pci0000:00/0000:00:09.2/usb3/3-4/3-4:1.0': KERNELS=="3-4:1.0" SUBSYSTEMS=="usb" DRIVERS=="" ATTRS{interface}=="EPSON Scanner" ATTRS{modalias}=="usb:v04B8p0813d0100dc00dsc00dp00icFFiscFFipFF" ATTRS{bInterfaceProtocol}=="ff" ATTRS{bInterfaceSubClass}=="ff" ATTRS{bInterfaceClass}=="ff" ATTRS{bNumEndpoints}=="02" ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceNumber}=="00" looking at parent device '/devices/pci0000:00/0000:00:09.2/usb3/3-4': KERNELS=="3-4" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{serial}=="HD0140406010327180" ATTRS{product}=="USB2.0 MFP_Hi-Speed_" ATTRS{manufacturer}=="EPSON" ATTRS{maxchild}=="0" ATTRS{version}==" 2.00" ATTRS{devnum}=="3" ATTRS{speed}=="480" ATTRS{bMaxPacketSize0}=="64" ATTRS{bNumConfigurations}=="1" ATTRS{bDeviceProtocol}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceClass}=="00" ATTRS{bcdDevice}=="0100" ATTRS{idProduct}=="0813" ATTRS{idVendor}=="04b8" ATTRS{bMaxPower}==" 2mA" ATTRS{bmAttributes}=="c0" ATTRS{bConfigurationValue}=="1" ATTRS{bNumInterfaces}==" 3" ATTRS{configuration}=="USB2.0 MFP_Hi-Speed_" looking at parent device '/devices/pci0000:00/0000:00:09.2/usb3': KERNELS=="usb3" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{serial}=="0000:00:09.2" ATTRS{product}=="EHCI Host Controller" ATTRS{manufacturer}=="Linux 2.6.20.7 ehci_hcd" ATTRS{maxchild}=="5" ATTRS{version}==" 2.00" ATTRS{devnum}=="1" ATTRS{speed}=="480" ATTRS{bMaxPacketSize0}=="64" ATTRS{bNumConfigurations}=="1" ATTRS{bDeviceProtocol}=="01" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceClass}=="09" ATTRS{bcdDevice}=="0206" ATTRS{idProduct}=="0000" ATTRS{idVendor}=="0000" ATTRS{bMaxPower}==" 0mA" ATTRS{bmAttributes}=="e0" ATTRS{bConfigurationValue}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{configuration}=="" looking at parent device '/devices/pci0000:00/0000:00:09.2': KERNELS=="0000:00:09.2" SUBSYSTEMS=="pci" DRIVERS=="ehci_hcd" ATTRS{msi_bus}=="" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v00001033d000000E0sv00000E55sd00002928bc0Csc03i20" ATTRS{local_cpus}=="1" ATTRS{irq}=="11" ATTRS{class}=="0x0c0320" ATTRS{subsystem_device}=="0x2928" ATTRS{subsystem_vendor}=="0x0e55" ATTRS{device}=="0x00e0" ATTRS{vendor}=="0x1033" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""