Scanimage/usbfs device IO error with Canon MP700 scanner
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
sane-backends (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Scanimage fails:
$ scanimage
P6
# SANE data follows
638 877
255
scanimage: sane_read: Error during device I/O
In dmesg:
[22955.082523] usb 1-1.2: usbfs: interface 0 claimed by usblp while 'scanimage' sets config #1
[22956.440402] usb 1-1.2: usbfs: interface 0 claimed by usblp while 'scanimage' sets config #1
[22956.442197] usb 1-1.2: usbfs: interface 0 claimed by usblp while 'scanimage' sets config #1
[22956.656083] usb 1-1.2: usbfs: process 13214 (scanimage) did not claim interface 0 before use
[22956.657216] usb 1-1.2: usbfs: process 13214 (scanimage) did not claim interface 0 before use
Ubuntu: 8.10
libsane: 1.0.19-6ubuntu1
sane-utils: 1.0.19-6ubuntu1
xsane: 0.995-3ubuntu2
$ scanimage -L & lsusb
Bus 002 Device 002: ID 04d9:a015 Holtek Semiconductor, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 04a9:2630 Canon, Inc. MultiPASS MP700
Bus 001 Device 005: ID 05a9:a518 OmniVision Technologies, Inc. D-Link DSB-C310 WebCam
Bus 001 Device 004: ID 07b8:e004 D-Link Corp. Mass Storage Device
Bus 001 Device 002: ID 0409:0058 NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
device `pixma:
Changed in sane-backends (Ubuntu): | |
assignee: | Rolf Leggewie (r0lf) → nobody |
importance: | Undecided → Medium |
status: | Incomplete → Confirmed |
This problem is occuring with any multi function usb device that supports [scanning and [printing or cardreader] ].
The problem is that the usblp and/or usb_storage kernel modules claim the usb device (at least de sub-intrefaces for printing/usb storage).
The sane usb backends seem to try to claim the whole usb device, but this is rejected as the "other" interfaces are already claimed.
There seems to be a workaround in sane 1.0.17-1 that ignored the EBUSY state of the usb device, which worked for most devices.
Somehow this seems to be broken in the newer versions.
One solution to use the scanner is to do "modprobe -r usblp" and "modprobe -r usb_storage" before scanning and re-insert the modules using "modprobe usblp; modprobe usb_storage" afterwards but this seems no practical way to work...
You may try to downgrade the sane packages to 1.0.17-1 (some websites show that 1.0.18 also works) and try with these.
I have the same issue with a Debian system and a Brother MFC-215C, having scanner, card reader, printer and fax function.
I will try this downgrade fix next week and report back.