[sane-devel] Problems with Canon Pixma MP500 on Buffalo Linkstation

Wittawat Yamwong wy-sane-devel at arcor.de
Fri Mar 16 01:56:30 CET 2007


Hello Thomas,

On Thursday 15 March 2007 22:02, t.tensi at gmx.de wrote:
> [...]
> I assume that "INTR" means interrupt, doesn't it?  One
> possible explanation for the error is that the linkstation
> does not react to some device interrupt by the scanner.

Yes, INTR stands for interrupt.

> Is this protocol for the Pixma different to other scanners?
> I know that some people seem to have sucessfully installed
> SANE on a linkstation...

Yes, USB scanner protocols are very different and there is no "standard" USB 
scanner protocol, unfortunately. Anyway, it is still possible to get the 
pixma work without interrupt handling. Look at the function 
wait_until_ready() in backend/pixma_mp150.c. You'll see this code block:

#if 0
      /* If we use sanei_usb_*, we sometimes lose interrupts! So poll the
       * status here. */
      error = query_status (s);
      if (error < 0)
        return error;
#endif

If you replace "#if 0" with "#if 1", the driver will poll the scanner's status 
once every second. Keep looking in the debug message for hexdump like this:

[pixma] OUT  T=x.xxx len=16
[pixma]  00000000:f3 20 00 00 00 00 00 00  00 00 00 00 00 00 00 0c 
[pixma] 
[pixma] IN   T=x.xxx len=20
[pixma]  00000000:06 06 00 00 00 00 00 00  01 00 00 00 03 00 02 00 
[pixma]  00000010:00 21 00 d9 
                  ^^---- ready?
When the scanner is ready, the value at offset 0x10 will be 01 instead of 00. 
Please also make sure that the USB port is running at high speed (480 
Mbit/s).

Regards
-- 
Wittawat Yamwong
Hannover, Germany



More information about the sane-devel mailing list