[sane-devel] GL660+GL646 (genesys/genesys-new) on CanoScan3000(F)?

amth@suomi24.fi amth@suomi24.fi
Sun, 29 May 2005 16:08:27 +0300


>> The only thing that needs to be changes to see that it actually is GL6=
60+GL646
>> is to take away only the very last of the tests (tools/check-usb-chip.=
c
>> "if (val !=3D 0x15)... reg 0x4e !=3D reg 0x38"-test) after that other =
tests
>> seem to pass just fine and 'sane-find scanner -v -v' reports:
>However, that means that the test for setting and reading a register
>fails. That means that it doesn't behave like a gl646. At least
>according to my docs, a value written to register 0x38 should be
>readable in register 0x4e.

OK, dunno about that so can't say anything about that.

By the way changing the (val !=3D 0x15) -> (val =3D=3D 0x15) doesn't mean=
 anything
interesting? That was the way I disabled the test enabling the chipset to=

report as GL660+GL646...


>Could you try to modify the test so it works like the gl841 test? Just
>exchange the 0x4e by 0x38. So it reads from the same register to which
>it has also written.

That makes the result being the standard one (can't identify any chipset)=
.


>Concerning the Canon 5000, on first glance the output of sane-find-scann=
er
on >our
>website seems to indicate that it's not a gl646+gl660 combination:
>"this is not a GL660+GL646 (bEndpointAddress =3D 0x81, bmAttributes =3D
>0x2, wMaxPacketSize =3D 0x200, bInterval =3D 0x0)"
>However, this was done with an old sane-find-scanner version which
>didn't check for USB2 (packet size =3D 0x200 instead of 0x40).
>So with current sane-find-scanner versions the output would be
>identical to that of the canon 3000.

Yep, too bad I don't have access to such scanner, but artificially lookin=
g
thru the Net just suggests that the only thing difference is that 3000(F)=

is 1200x2400dpi and 5000F is 2400x4800dpi scanner.


>> And if you look at ><http://www.sane-project.org/unsupported/canon-500=
0f.html>,
>> <http://www.sane-project.org/unsupported/umax-astra-4700.html> that ar=
e
>> based on exactly similar chipsets and ><http://www.sane-project.org/un=
supported/umax-astra-4500.html>
>> that only differs mildly, at least those should be workable with >gene=
sys/genesys-new.
>The UMAX Astra 4500 uses only a GL646 (no GL660) and was used for
>developping the base for the genesys backend. At the moment it does
>not work but I hope that can be fixed later.

Yeah, I based the suggestion of Astra 4500 being only mildly different on=

the basis of looking into Astra 4700 being virtually the same as CanoScan=

3000F (bDeviceClass, bInterfaceClass and other (also physical chips) simi=
larities)
and then look into sane-pages about the scanners.

I tried also this:

$ export SANE_DEBUG_SANEI_USB=3D128
$ export SANE_DEBUG_GENESYS=3D255
$ ./scanimage -L

and this is the cropped output:

<snip note=3D"changed backends/genesys.devices.c

static Genesys_USB_Device_Entry genesys_usb_device_list[] =3D {
  {0x04a9, 0x2215, &umax_astra_4500_model},
/*  {0x0638, 0x0a10, &umax_astra_4500_model},*/

to trigger this below">

[sanei_usb] sanei_usb_init: found 1 devices
[genesys] sane_init: little endian machine
[genesys] sane_init: reading config file 'genesys.conf'
...
[genesys] sane_init: config file line 7: trying to attach 'usb 0x04a9 0x2=
213'
[sanei_usb] sanei_usb_find_devices: vendor=3D0x04a9, product=3D0x2213
...
[genesys] sane_init: exit
[genesys] sane_get_devices: start: local_only =3D false
[genesys] sane_get_devices: exit
</snip>

<snip note=3D"notice the same thing lists twice below?!?">

[sanei_usb] sanei_usb_init: found libusb device (0x04a9/0x2215) interface=

0 at libusb:006:002
...
[sanei_usb] sanei_usb_init: found 1 devices
...
[sanei_usb] sanei_usb_init: found libusb device (0x04a9/0x2215) interface=

0 at libusb:006:002
...
[sanei_usb] sanei_usb_init: found 1 devices
...
</snip>

<snip note=3D"got some sort of usb problem? using linux-2.6 sysfs/udev/ha=
l
etc. newest new stuff... ? Sixteen(!) times (except for /dev/usbscanner-l=
ine)?">

[sanei_usb] sanei_usb_open: trying to open device '/dev/usbscanner'
[sanei_debug] Setting debug level of sanei_usb to 128
[sanei_usb] sanei_usb_init: can't stat /dev/usb/: No such file or directo=
ry
usb_os_init: Found USB VFS at /proc/bus/usb
usb_set_debug: Setting debugging level to 255 (on)
[sanei_usb] sanei_usb_init: found libusb device (0x04a9/0x2215) interface=

0 at libusb:006:002
...
[sanei_usb] sanei_usb_init: found 1 devices
...
[sanei_debug] Setting debug level of sanei_usb to 128
[sanei_usb] sanei_usb_init: can't stat /dev/usb/: No such file or directo=
ry
usb_os_init: Found USB VFS at /proc/bus/usb
usb_set_debug: Setting debugging level to 255 (on)
[sanei_usb] sanei_usb_init: found libusb device (0x04a9/0x2215) interface=

0 at libusb:006:002
...
[sanei_usb] sanei_usb_init: found 1 devices
...

etc. etc.
</snip>

<snip note=3D"at the very end...">
No scanners were identified. If you were...
[genesys] sane_exit: start
[genesys] sane_exit: exit
</snip>

So if I understand it right, by that mod to file backends/genesys_devices=
.c
should have changed that the scanner would have been identified as Astra
4500 or did I miss something (I know the backend would have not worked,
but it would have misidentified the scanner anyway)?

Or is it an issue with my operating system USB setup?


Ps. Sorry for rambling so much... ;-)


--
amth