Hi, 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 > /dev/usb/scanner0 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): > #/dev/scanner > /dev/usb/scanner0 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 Looks ok. > 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 Rutman <[email protected]>). Bye, Henning
