Hi all I spent some time in 2006 working with Wittawat Yamwong to get the Canon MultiPASS MP730 (US branding) or Canon imageCLASS MP730 (Asia-Pacific branding) supported in the pixma driver. Sadly, I had to move house at the time, the project also moved to a new mailing list and then life got in the way and I never had time to get back onto it until now.
The driver worked for about 90% of functionality up until pixma-0.12.1 but something broke in 0.12.2. I managed to track it down to this diff: --- pixma_mp730.c.orig 2006-08-27 07:37:16.000000000 +1000 +++ pixma_mp730.c 2009-03-20 03:28:16.000000000 +1100 @@ -533,7 +533,7 @@ &pixma_mp730_ops, /* ops */ \ dpi, dpi, /* xdpi, ydpi */ \ w, h, /* width, height */ \ - PIXMA_CAP_GRAY|PIXMA_CAP_EVENTS|cap \ + PIXMA_CAP_GRAY|/*PIXMA_CAP_EVENTS|*/cap \ } const pixma_config_t pixma_mp730_devices[] = { /* TODO: check area limits */ Applying the same patch to pixma-0.13.1 also makes it work using the pixma test utility 'scan', but not when using the sane backend as a library. The error message is coming out of pixma_io_sanei.c:330 which only gets rolled into the libsane-pixma.so.1.0.19 library. I have tried using gdb to set a breakpoint and get a backtrace but gdb makes baby jesus cry. Can anyone help by explaining how to debug a shared lib and/or tell me why the pixma_write() function gets a count of 0? Thanks, Wade. helot mp150-0.12.1 # ./scan -d 100 -r 150 -m color -x 0 -y 0 -w 10 -h 20 -W -F experiment /tmp/foo.pnm [pixma-0.12.1] Scanning devices under /dev/bus/usb Connected scanner(s): 1: Canon MultiPASS MP730 (SN:04A9262F_00000000F972) [pixma-0.12.1] pixma_open(): Canon MultiPASS MP730 [pixma-0.12.1] Set interface 1,0 [pixma-0.12.1] Found endpoints: 3 (OUT), 84 (IN), 85 (INTR,64) Scan mode: color DPI: 150x150 Offset: (0,0) = (0.00cm, 0.00cm) Dimension: 59x118 = 1.00cm x 2.00cm Size: 21 kiB (uncompressed, raw) Source: Flatbed Scanning... [pixma-0.12.1] [pixma-0.12.1] pixma_scan(): start [pixma-0.12.1] line_size=180 image_size=21240 channels=3 depth=8 [pixma-0.12.1] dpi=150x150 offset=(0,0) dimension=59x118 [pixma-0.12.1] gamma_table=0x60d318 source=0 [pixma-0.12.1] raw_width = 60 [pixma-0.12.1] OUT T=0.266 len=10 [pixma-0.12.1] 00000000:f3 20 00 00 00 00 00 00 0c 00 [pixma-0.12.1] [pixma-0.12.1] IN T=0.269 len=14 [pixma-0.12.1] 00000000:06 06 03 01 00 02 03 00 02 00 00 00 00 f5 [pixma-0.12.1] [pixma-0.12.1] Current status: paper=1 cal=0 lamp=0 [pixma-0.12.1] OUT T=0.270 len=20 [pixma-0.12.1] 00000000:cf 60 00 00 00 00 00 00 0a 00 01 00 00 00 00 00 [pixma-0.12.1] 00000010:00 00 00 ff [----------snipped-------------] [pixma-0.12.1] Current status: paper=1 cal=0 lamp=0 [pixma-0.12.1] OUT T=2.337 len=20 [pixma-0.12.1] 00000000:cf 60 00 00 00 00 00 00 0a 00 01 00 00 00 00 00 [pixma-0.12.1] 00000010:00 00 00 ff [pixma-0.12.1] [pixma-0.12.1] IN T=2.341 len=2 [pixma-0.12.1] 00000000:06 06 [pixma-0.12.1] [pixma-0.12.1] pixma_read_image():completed 100% done (21240 bytes written) [pixma-0.12.1] pixma_close(): Canon MultiPASS MP730 helot mp150-0.12.2 # ./scan -d 100 -r 150 -m color -x 0 -y 0 -w 10 -h 20 -W -F experiment /tmp/foo.pnm [pixma-0.12.2] Scanning devices under /dev/bus/usb Connected scanner(s): 1: Canon MultiPASS MP730 (SN:04A9262F_00000000F972) [pixma-0.12.2] pixma_open(): Canon MultiPASS MP730 [pixma-0.12.2] Set interface 1,0 [pixma-0.12.2] Found endpoints: 3 (OUT), 84 (IN), 85 (INTR,64) ########## Page 1 ########### Scan mode: color DPI: 150x150 Offset: (0,0) = (0.00cm, 0.00cm) Dimension: 59x118 = 1.00cm x 2.00cm Size: 21 kiB (uncompressed, raw) Source: Flatbed Press scan button to begin or Ctrl-C when finished! [pixma-0.12.2] INTR T=0.336 len=8 [pixma-0.12.2] 00000000:00 00 00 00 00 08 00 00 [pixma-0.12.2] [pixma-0.12.2] send_time() is not yet implemented. [pixma-0.12.2] INTR T=9.332 len=8 [pixma-0.12.2] 00000000:00 00 00 00 00 08 00 00 [pixma-0.12.2] [pixma-0.12.2] send_time() is not yet implemented. [pixma-0.12.2] pixma_close(): Canon MultiPASS MP730 helot testsuite # PIXMA_EXPERIMENT=1 SANE_DEBUG_PIXMA=10 scanimage -d pixma:04A9262F_00000000F972 --resolution 150 --mode Color --format pnm -x 10 -y 20 > /tmp/foo.pnm [sanei_debug] Setting debug level of pixma to 10. [pixma] pixma version 0.13.1 [pixma] pixma_collect_devices() found Canon MultiPASS MP730 at libusb:002:004 [pixma] pixma_open(): Canon MultiPASS MP730 [pixma] Trying to clear the interrupt buffer... [pixma] no packets in buffer [pixma] Reader task id=3979 (forked) [pixma] Reader task started [pixma] [pixma] pixma_scan(): start [pixma] line_size=180 image_size=21240 channels=3 depth=8 [pixma] dpi=150x150 offset=(0,0) dimension=59x118 [pixma] gamma_table=0x61b3d0 source=0 [pixma] INTR T=0.286 len=8 [pixma] 00000000:00 00 00 00 00 08 00 00 [pixma] [pixma] send_time() is not yet implemented. [pixma] raw_width = 60 [pixma] WARNING:pixma_write(): count(0) != len(10) [pixma] OUT T=0.307 len=-1 [pixma] 00000000:f3 20 00 00 00 00 00 00 0c 00 [pixma] ERROR: EIO [pixma] [pixma] pixma_scan() failed EIO [pixma] Reader task terminated: EIO [pixma] read_image():reader task closed the pipe:0 bytes received, 21240 bytes expected scanimage: sane_read: Error during device I/O [pixma] pixma_close(): Canon MultiPASS MP730 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20090320/c9ff3367/attachment.htm