[sane-devel] "hp4200" backend detects non-HP scanners as HP ScanJet 4200

Till Kamppeter till.kamppeter@gmx.net
Sun, 31 Aug 2003 14:04:38 +0200


Now, within the two days which me original posting needed to arrive on 
the SANE list, there is more information. See

http://qa.mandrakesoft.com/show_bug.cgi?id=4987

Especially also a user with a Mustek ScanExpress 1200 ("gt68xx" driver) 
observed this problem. It seems that the "hp4200" backend recognizes 
every scanner on USB as an HP ScanJet 4200.

    Till

Till Kamppeter wrote:
> 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
> 
> _______________________________________________
> Sane-devel mailing list
> Sane-devel@www.mostang.com
> http://www.mostang.com/mailman/listinfo/sane-devel
> 
>