Ok, sorry for talking to myself. :)
It works now 100%. All resolutions work etc. The problem was that in pixma_imageclass.c there is this define: #define IMAGE_BLOCK_SIZE (0xffff) MF8330 sends 0x1fff8 sized blocks, they don't fit. I increased IMAGE_BLOCK_SIZE to 0x1fff and it's ok now. Should this be device dependant? There's the current pixma_imageclass.c and a diff to the latest git version in http://zuik.org/sane/ If anyone is listening and interested, you can add my changes to git.. -- Teemu 2011/12/3 Teemu Suikki <zuikkis at gmail.com>: > Hmm, no. I can scan any part of the paper, as long as the scan size is > so small that the data fits under 65536 bytes. ?Anything higher > fails.. > > I don't understand what happens, it all looks fine in the logs, until this: > > [pixma] read_image():reader task closed the pipe:0 bytes received, > 1681920 bytes expected > scanimage: sane_read: Error during device I/O > > This happens exactly when received data hits the 65536 bytes mark.. > > Do other devices use >64k chunk sizes? is it possible that there is a > 16bit counter used somewhere where it shouldn't.. > > -- > Teemu > > > 2011/12/3 Teemu Suikki <zuikkis at gmail.com>: >> Hi, >> >> I tried scanning smaller area, with >> >> SANE_DEBUG_PIXMA=25 scanimage -l100 -t100 -x50 -y50 ?--format=tiff >>>test.tif 2>debug >> >> And surprisingly it worked! :) Perfect scan. So probably the "full >> page" settings are somehow out of bounds, I need to figure that out. >> >> The scanner was "stuck" for maybe 30 seconds after the scan, saying >> "scanning" even when the scan had already competed. I noticed that >> windows driver always sends cmd_abort_session after scanning; adding >> this fixed it on Sane as well. >> >> Anyway, looks very promising now. I updated http://zuik.org/sane/ with >> the latest files. >> >> -- >> Teemu >> >> 2011/12/3 Teemu Suikki <zuikkis at gmail.com>: >>> I now started digging this myself with UsbSnoop. MF8330 really is >>> using this 0xd460 instead of 0xd420, as data transfer command.. I >>> couldn't find any other big differences. >>> >>> I modified pixma_imageclass.c to use d460.. it almost seems to work, >>> but there isn't enough data coming from the scanner. For full A4 scan >>> at 75dpi, scanner only sends about 65536bytes of data total.. After >>> that, scanimage reports: >>> >>> [pixma] read_image():reader task closed the pipe:0 bytes received, >>> 1683840 bytes expected >>> scanimage: sane_read: Error during device I/O >>> >>> Why does it say 0 bytes, it's actually 65536? >>> >>> Also in the log there are many "empty" ?data packets, that are not >>> there on windows log: >>> >>> [pixma] OUT ?T=4.841 len=11 >>> [pixma] ?00000000:d4 60 00 00 00 00 00 00 ?04 00 06 >>> [pixma] >>> [pixma] IN ? T=4.845 len=8 >>> [pixma] ?00000000:06 06 00 00 00 00 00 00 >>> >>> >>> I have the UsbSnoop.log, sane debug output and the modified source >>> available at: >>> http://zuik.org/sane/ >>> >>> -- >>> Teemu Suikki >>> http://www.ksportfinland.com >>> http://www.z-power.fi/ >> >> >> >> -- >> Teemu Suikki >> http://www.ksportfinland.com >> http://www.z-power.fi/ > > > > -- > Teemu Suikki > http://www.ksportfinland.com > http://www.z-power.fi/ -- Teemu Suikki http://www.ksportfinland.com http://www.z-power.fi/
