[sane-devel] [long] Want someone help me about Canon FS4000US USB/SCSI driver ?

eric@b.org eric.bachard@free.fr
Thu, 07 Aug 2003 13:42:38 +0200


Hi everyone,


I'm posting here for the first time. So, please be gentle with me (and 
for my poor english, please :-)

The first reason why I'm here is because I've got a CanonScan FS4000US 
(think USB and SCSI), and this hardware doesn't work yet on Linux.

Thank you Canon :-(

Of course, I *really* want to do something...

For this, I'm using both Linux, Mac OS X and Windows. The two last come 
with native provided drivers for their respective OS :-/ , so I can 
install this scanner on this one and obtain a lot of informations about 
drivers that are used, and so on.


My purpose is to find someone who can help me to write/complete a driver 
for this hardware and perhaps include it in Sane (what a good project , 
no ?).


Be careful, I'm not a programmer, but I think know enough Linux to do 
this without lose to much time. I often compile/modify kernel sources to 
make my hardware working since 6 years for now.


State of art about this hardware :

1) This hardware seems to be known in the kernel sources, because I 
found it in /usr/src/linux/drivers/usb/scanner.h

eric@popom:/usr/src/linux/drivers/usb$ cat scanner.h | grep FS4000
	{ USB_DEVICE(0x04a9, 0x3042) }, /* FS4000US */

2) It's not known in sane-kackend

(that's the reason why I'm here...)


3) modprobe scanner on my ibook (Debian sid, kernel 2.4.22pre4-ben0), I 
can read, with  :

3.1)
tail -f /var/log/messages

Aug  7 13:28:19 popom kernel: usb.c: USB device 4 (vend/prod 
0x4a9/0x3042) is not claimed by any active driver.
Aug  7 13:28:20 popom kernel: usb.c: registered new driver usbscanner
Aug  7 13:28:20 popom kernel: scanner.c: USB scanner device 
(0x04a9/0x3042) now attached to scanner0
Aug  7 13:28:20 popom kernel: scanner.c: 0.4.13:USB Scanner Driver
Aug  7 13:28:20 popom kernel: scanner.c: probe_scanner: User specified 
USB scanner -- Vendor:Product - 4a9:3042

3.2)
cat /proc/bus/usb/devices


T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=16 #Cfgs=  1
P:  Vendor=04a9 ProdID=3042 Rev=10.01
S:  Manufacturer=Canon
S:  Product=Scanner
C:* #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbscanner
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

3.3)
usbview give me :

Scanner
Manufacturer: Canon
Speed: 12Mb/s (full)
USB Version:  1.00
Device Class: ff(vend.)
Device Subclass: ff
Device Protocol: ff
Maximum Default Endpoint Size: 16
Number of Configurations: 1
Vendor Id: 04a9
Product Id: 3042
Revision Number: 10.01

Config Number: 1
	Number of Interfaces: 1
	Attributes: 60
	MaxPower Needed:   0mA

	Interface Number: 0
		Name: usbscanner
		Alternate Number: 0
		Class: ff(vend.)
		Sub Class: 0
		Protocol: 0
		Number of Endpoints: 3

			Endpoint Address: 81
			Direction: in
			Attribute: 2
			Type: Bulk
			Max Packet Size: 64
			Interval: 0ms

			Endpoint Address: 82
			Direction: in
			Attribute: 3
			Type: Int.
			Max Packet Size: 8
			Interval: 10ms

			Endpoint Address: 03
			Direction: out
			Attribute: 2
			Type: Bulk
			Max Packet Size: 64
			Interval: 0ms





3.4)
sane-find-scanner -vvv

popom:/home/eric# sane-find-scanner

   # No SCSI scanners found. If you expected something different, make 
sure that
   # you have loaded a SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x04a9, product=0x3042) at /dev/usb/scanner0
found USB scanner (vendor=0x04a9 [Canon], product=0x3042 [Scanner ]) at 
libusb:002:004
   # Your USB scanner was (probably) detected. It may or may not be 
supported by
   # SANE. Try scanimage -L and read the backend's manpage.

   # Scanners connected to the parallel port or other proprietary ports 
can't be
   # detected by this program.


Last but not least :

scanimage -L


popom:/home/eric# scanimage -L
[gphoto2] init_gphoto2: error: serial:/dev/ttyd1 is not a valid gphoto2 
port.  Use "gphoto2 --list-ports" for list.
device `hp4200:/dev/usb/scanner0' is a Hewlett-Packard HP-4200 flatbed 
scanner
popom:/home/eric#

4) The .inf windows driver contain

<...cut...>

[DestinationDirs]
DefaultDestDir=11
USB\Sys32Files.WIN=10,system32\drivers
SCSI\Sys32Files.WIN=10,system32\drivers
ColorFiles.WIN=11,Color
ColorFiles.NT=11,spool\drivers\color
TwainFiles=10,TWAIN_32\FS4000US

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
%Mfg%=Models

[Models]
%USB\Banff.DeviceDesc%=USB\BanffInstall,USB\VID_04A9&PID_3042
%SCSI\Banff.DeviceDesc%=SCSI\BanffInstall,CANON___IX-40015G_______1

[USB\BanffInstall]
SubClass=StillImage
DeviceType=1
DeviceSubType=0x1
ICMProfiles="sRGB Color Space Profile.icm"
DeviceData=USB\BanffDeviceData
Capabilities=0x00
AddReg=USB\FSAddReg,USB\BanffAddreg
CopyFiles=USB\Sys32Files.WIN,USB\BanffStiFiles,TwainFiles,ColorFiles.WIN
UninstallSection=USB\Uninstall.WIN

<...cut...>


I hope have given enough informations...


Thanks in advance for your answers

Cheers,

-- 
eric b