[sane-devel] MP730 driver broken since pixma-0.12.2
Wade Fitzpatrick
Wade.Fitzpatrick at optus.net.au
Thu Mar 19 19:17:57 UTC 2009
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
More information about the sane-devel
mailing list