[sane-devel] canon630u 'Device busy' - Sane 1.0.9, Xsane 0.90 , Mandrake 9.0

Andrew Kovacs atkova@isa.mim.com.au
Wed, 8 Jan 2003 08:57:21 +1000

Hi Henning,
Thanks for your speedy reply, and for taking the time to read through my
long post.
I quoted my canon630u.conf line as:

> Edit the canon630u.conf backend to include both:
> usb vendor=0x04a9 product=0x2204
> /dev/usb/scanner0

In your reply you wrote:
User only one of these two lines. The usb line should be enough for
kernels later than 2.4.12. And the format for the first one is:
usb 0x04a9 0x2204

See man sane-usb, man sane-canon630u.

I had tried just the usb, vendor and product ids, just the
/dev/usb/scanner0, and every combination of, but to no avail.  I referred to
this a few paragraphs down.

You then gave me the tip:
> I have checked my scanner permissions to ensure that I get crw-rw-rw for
> /dev/usb/scanner0, and this is correct.
> A clue to the problem may be that every time I boot up, the system changes
> this back to crw-------.  I don't know where this is set.

That's because your system uses the device file system (devfs). Check
your distribution's manual on how to set up permissions for devfs.

Thanks, I'll check this out, probably this weekend.

You then commented at the end of the debug:
> The output of various scanimage commands.
> [root@localhost root]# SANE_DEBUG_CANON630U=255 scanimage -d

> [canon630u] sane_start
> [canon630u] CANON_set_scan_parameters:
> [canon630u] gray  = 0 (ignored)
> [canon630u] res   = 75
> [canon630u] gain  = 1
> [canon630u] in 600dpi pixels:
> [canon630u] left  = 0, top    = 0
> [canon630u] right = 1199, bottom = 1199
> [canon630u] CANON_start_scan called
> [canon630u] write_byte(fd, 0x42, 0x06);
> [canon630u] write_byte(fd, 0x0b, 0x0d);
> [canon630u] write_byte(fd, 0x0c, 0x4c);
> [canon630u] write_byte(fd, 0x0d, 0x2f);
> [canon630u] read_byte(fd, 0x0b, &result); /* got 0d */
> [canon630u] read_byte(fd, 0x0c, &result); /* got 4c */
> [canon630u] read_byte(fd, 0x0d, &result); /* got 2f */
> [canon630u] write_byte(fd, 0x70, 0x73);
> [canon630u] init: 5
> [canon630u] read_byte(fd, 0x02, &result); /* got 20 */

Looks like the backend expects a different answer from the scanner
here. But that's a question for the canon630u backend author (Nathan
Rutman <nathan@gordian.com>).

Thanks for your tip, Henning.  I'd come to the conclusion that maybe it's a
Mandrake specific problem, but I'll send a similar report to Nathan, just in
case it's the canon630u backend.  My thinking was along the lines that I've
seen nothing on the net about anyone not being able to get one of these
scanners to work, so it must be Mandrake specific.

Andrew Kovacs

The information contained in this e-mail is confidential and is
intended only for the use of the addressee(s).
If you receive this e-mail in error, any use, distribution or
copying of this e-mail is not permitted. You are requested to
forward unwanted e-mail and address any problems to the
MIM Holdings Limited Support Centre.
For general enquires:	++61 7 3833 8000
Support Centre e-mail:	supportcentre@mim.com.au
Support Centre phone:  	Australia 1800500646
        				International ++61 7 38338042