[sane-devel] Epson Perfection 2400 Photo scanner problems

Olaf Meeuwissen olaf@epkowa.co.jp
Tue, 25 May 2004 09:23:11 +0900


<brook@biology.nmsu.edu> writes:

>  > The epson backend recognized your scanner OK, reset it (ESC-@) and
>  > then queries the scanner for its ID (ESC-I).  Looks like it isn't
>  > getting an answer, so I'd suggest you look what is happening in the
>  > USB layer.
>  > 
>  > You can see what's going on by setting the SANE_DEBUG_SANEI_USB
>  > environment variable to something sensible.  IIRC, a value of 5 to 10
>  > should be more or less sensible.
>
> Thanks for the tip.  It seems there are problems with the USB
> communications (see I/O and timeout errors below).  Does anyone here
> know how to set up USB correctly on a NetBSD box?  Note that the
> machine has a USB mouse that works fine.

>From your debugging output it looks like there is nothing wrong with
your USB setup but I'm not very familiar with BSD.  The logs show one
error message though that I find particularly "alarming".

> Here is the output from 'scanimage -L':
>
[snip]
>      [epson] sane_init, >usb libusb:/dev/usb1:/dev/ugen0<
>      [epson] attach_one_usb(libusb:/dev/usb1:/dev/ugen0)
>      [epson] SANE Epson Backend v0.2.36 - 2003-03-26
>      [epson] attach(libusb:/dev/usb1:/dev/ugen0, 3)
>      [epson] attach: opening libusb:/dev/usb1:/dev/ugen0
>      [sanei_usb] sanei_usb_open: trying to open device `libusb:/dev/usb1:/dev/ugen0'
>      [sanei_usb] sanei_usb_open: found bulk-in endpoint (address 1)
>      [sanei_usb] sanei_usb_open: found bulk-out endpoint (address 2)
>      [sanei_usb] sanei_usb_open: opened usb device `libusb:/dev/usb1:/dev/ugen0' (*dn=0)
>      [sanei_usb] sanei_usb_get_vendor_product: device 0: vendorID: 0x04b8, productID: 0x011b
>      [epson] Found valid EPSON scanner: 0x4b8/0x11b (vendorID/productID)
>      [epson] send buf, size = 2
>      [epson] buf[0] 1b .
>      [epson] buf[1] 40 @
>      [sanei_usb] sanei_usb_write_bulk: trying to write 2 bytes
>      [sanei_usb] 0000: 1B 40                                           .@..............
>      [sanei_usb] sanei_usb_write_bulk: wanted 2 bytes, wrote 2 bytes
>      [sanei_usb] sanei_usb_read_bulk: trying to read 1 bytes
>      USB error: error reading from bulk endpoint /dev/ugen0.01: Connection timed out
>      [sanei_usb] sanei_usb_read_bulk: read failed: Connection timed out
>      USB error: usb_clear_halt called, unimplemented on BSD

Er, not implemented on BSD?  That could be a problem.  From a quick
look at sanei_usb.c, it seems that your libusb implementation is at
fault.

>      [epson] receive buf, expected = 1, got = 0
>      [epson] get_identity_information()
>      [epson] send buf, size = 2
>      [epson] buf[0] 1b .
>      [epson] buf[1] 49 I
>      [sanei_usb] sanei_usb_write_bulk: trying to write 2 bytes
>      [sanei_usb] 0000: 1B 49                                           .I..............

Does the debugging output just stop here or did you get time out
messages like with the ESC-@ command?

HTH,
-- 
Olaf Meeuwissen                            EPSON KOWA Corporation, PF1
FSF Associate Member #1962           sign up at http://member.fsf.org/
GnuPG key: 6BE37D90/AB6B 0D1F 99E7 1BF5 EB97  976A 16C7 F27D 6BE3 7D90
Penguin's lib!       -- I hack, therefore I am --               LPIC-2