This is a bug reported by someone with an Epson Perfection 1650 who tested the release candidate 1 of the new Mandrake 9.2:
https://qa.mandrakesoft.com/show_bug.cgi?id=4987 For Mandrake 9.2 I have packaged SANE 1.0.12 with "hp4200" version 0.4. I can also reproduce the bug with my Epson Perfection 1260 Photo and the same software versions. I have a system with an HP PSC 950 and an Epson Perfection 1260 Photo and I get the following: --------------------------------------------------------------------------- [root@majax g]# sane-find-scanner | grep -v \# found USB scanner (vendor=0x04b8, product=0x011d) at /dev/usb/scanner0 found USB scanner (vendor=0x04b8 [EPSON], product=0x011d [EPSON Scanner]) at libusb:001:115 [root@majax g]# scanimage -L device `hpoj:mlc:usb:PSC_900_Series' is a Hewlett-Packard PSC 900 Series multi-function peripheral device `plustek:/dev/usb/scanner0' is a Epson Perfection 1260/Photo USB flatbed scanner device `hp4200:/dev/usb/scanner0' is a Hewlett-Packard HP-4200 flatbed scanner [root@majax g]# --------------------------------------------------------------------------- and /proc/bus/usb/devices has the following entries --------------------------------------------------------------------------- T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 22/900 us ( 2%), #Int= 2, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI Root Hub S: SerialNumber=1000 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 7 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0451 ProdID=2077 Rev= 1.00 S: Product=General Purpose USB Hub C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms T: Bus=01 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#=115 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=ff MxPS= 8 #Cfgs= 1 P: Vendor=04b8 ProdID=011d Rev= 1.00 S: Manufacturer=EPSON S: Product=EPSON Scanner C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=usbscanner E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=16ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms T: Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=03f0 ProdID=1e11 Rev= 1.00 S: Manufacturer=Hewlett-Packard S: Product=PSC 950xi S: SerialNumber=MY21AC21J6WP C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 3 Cls=07(print) Sub=01 Prot=03 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms I: If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms I: If#= 0 Alt= 2 #EPs= 1 Cls=07(print) Sub=01 Prot=01 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms --------------------------------------------------------------------------- So my Epson Perfection 1260 Photo is detected both as Epson and as HP (/dev/usb/scanner0). If I unload the scanner.o kernel module with rmmod scanner.o my scanners are correctly detected (The HP 4200 disappears, the other two stay). So the problem only happens with access to the scanners via the kernel module but not with user-mode USB access via libusb. This seems for me to be a bug in the "hp4200" backend that it recognizes also scanners which use other drivers (and will not necessarily work with "hp4200"). Or is it safe to not use scanner.o any more at all, for example shipping Mandrake Linux with a kernel without this module or at least adding a line to /etc/modules.conf to suppress automatic loading of the module? Are there really scanners/backends which need scanner.o? What is the advantage of scanner.o vs. libusb? Till
