[sane-devel] canon630u 'Device busy' - Sane 1.0.9, Xsane 0.90, Mandrake 9.0
Tue, 7 Jan 2003 11:36:00 +0100
On Tue, Jan 07, 2003 at 04:10:42PM +1000, Andrew Kovacs wrote:
> Whenever I try to use my Canon FB630 USB scanner, with either scanimage or
> xsane, it returns a 'Device busy' message.
I'm not a canon expert...
> Edit the canon630u.conf backend to include both:
> usb vendor=0x04a9 product=0x2204
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 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.
> I have provided the following file listings and command outputs, as I have
> noticed that these are the most requested information by those 'in the know'
> (and that's definitely not me!).
Thanks. That's a good bug report.
> This is my existing canon630u.conf file.
> [root@localhost root]# cat /usr/local/etc/sane.d/canon630u.conf
> # Options for the canonusb backend
> # Autodetect the Canon CanoScan FB630u
> usb 0x04a9 0x2204
> # device list for non-linux-systems (enable if autodetect fails):
Looks good for me. As I mentioned, the usb line alone should work. And
in fact it does, otherwise your scanner wouldn't be detected by
scanimage -L at all.
> T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=12 MxCh= 0
> D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=04a9 ProdID=2204 Rev= 0.01
> S: Product=CanoScan FB630U
> C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
> I: If#= 0 Alt= 0 #EPs= 2 Cls=10(unk. ) Sub=01 Prot=00 Driver=usbscanner
> E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> The output of various scanimage commands.
> [root@localhost root]# SANE_DEBUG_CANON630U=255 scanimage -d canon630u:/dev/usb/scanner0
> [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