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

Henning Meier-Geinitz henning@meier-geinitz.de
Thu, 7 Aug 2003 14:38:54 +0200


Hi,

On Thu, Aug 07, 2003 at 01:42:38PM +0200, eric@b.org wrote:
> 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 :-(

I have never contacted Canon but I don't think they have been very
helpful concerning SANE backends or other scanner drivers until now.
But it doesn't harm to ask them for programming information or source
code.

> 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.

If Canon doesn't respond or does not give the necessary details, the
only way to get the scanner working is to sniff the protocol. Some
information on which programs to use is here:

http://www.meier-geinitz.de/sane/misc/develop.html

Some general information on writing backends:

http://www.meier-geinitz.de/sane/misc/unsupported.html

> 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 ?).

Most probably that "someone" will be someone who also owns that scanner
and wants to have it supported. Someone like you :-) Without having
the device, it's nearly impossible to write a driver.
 
> 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.

The Linux kernel is not the issue in this case, however.

> 2) It's not known in sane-kackend
> 
> (that's the reason why I'm here...)

Exactly :-)

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

> 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

You have manually provided the vendor and product ids (with the
modprobe command or in /etc/modules.conf). That shouldn't be necessary
with that current kernel. Anyway, it doesn't matter.

> 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

The output seems to be the same as the one we already have on our
website:

http://www.meier-geinitz.de/sane/misc/canon-fs4000.html

> usbview give me :

I'll add that output to the page.

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

Well, that's not with "-v -v". Or your SANE version is too old.
Anyway, it's not necessary with the other information.

> 4) The .inf windows driver contain
 
> [Models]
> %USB\Banff.DeviceDesc%=USB\BanffInstall,USB\VID_04A9&PID_3042
> %SCSI\Banff.DeviceDesc%=SCSI\BanffInstall,CANON___IX-40015G_______1

Maybe the "IX-40015G" is the SCSI id of the scanner?

Do you have a SCSI controller? If yes, you could plug the scanner in,
load a SCSI driver for that controller and run sane-find-scanner -v -v. 
That way we have at least the SCSI inquiry info for that scanner.

> I hope have given enough informations...

Well, now you should start to sniff the protocol and find out what all
the data mean :-) And find someone who writes a driver.

I'll add a link to your post on the FS4000 page once the archive is
working again.

Thanks for the imformation.

Bye,
  Henning