[sane-devel] Can't download firmware to my scanner
jk
billy2000@fastmail.fm
Thu, 02 Jun 2005 15:29:54 -0400
Hi,
I have an Epson 1670 Perfection USB Scanner. I have tested it
successfully on
MS Windows, but I have not been able to get it to work on GNU/Linux yet.
I hope
someone will be able to help me.
I am using Debian with a 2.6.8 kernel, and the following sane packages:
# dpkg-query -l | grep sane
ii libsane 1.0.15-9 API library for scanners
ii sane 1.0.13-2 scanner graphical frontends
ii sane-utils 1.0.15-9 API library for scanners -- utilities
ii xsane 0.97-3 GTK+-based X11 frontend for SANE
(Scanner
ii xsane-common 0.97-3 GTK+-based X11 frontend for SANE
(Scanner
#
(Please note that I also tried downloading the sane-backend and compiling it
myself, but I still get the same negative result as documented below.)
The scanner uses the snapscan SANE backend.
When I plug my scanner into my USB port, it is recognized by hotplug,
and when
I run 'scanimage -L', it is visible (see below).
However, when I attempt to access the scanner in any way, using xscan,
scanimage -T, etc., it does not work, and the scanner then disapears
from the
'scanimage -L' output, and does not return unless hotplug services are
restarted & the scanner restarted & reattached.
Based on the error output (see below), it seems like there is a problem
downloading the firmware to the scanner. I haven't been able to figure
out why. The firmware and the /etc/sane.d/snapscan.conf file seem to be
correct to me:
# ls /etc/sane.d/snapscan.conf /etc/sane.d/ESFW30.BIN -l
-rw-r--r-- 1 root root 64000 Jun 2 01:03 /etc/sane.d/ESFW30.BIN
-rw----r-- 1 root root 2075 Jun 2 01:04 /etc/sane.d/snapscan.conf
#
# head -15 /etc/sane.d/snapscan.conf
#------------------------------ General ----------------------------
# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /etc/sane.d/ESFW30.BIN
# If not automatically found you may manually specify a device name.
# For USB scanners also specify bus=usb, e.g.
# /dev/usb/scanner0 bus=usb
# For SCSI scanners specify the generic device, e.g. /dev/sg0 on
Linux.
# /dev/sg0
#
Here is the verbose output:
# export SANE_DEBUG_SNAPSCAN=128
# scanimage -L
[sanei_debug] Setting debug level of snapscan to 128.
[snapscan] sane_snapscan_init
[snapscan] sane_snapscan_init: Snapscan backend version 1.4.42
[snapscan] add_usb_device(libusb:006:002)
[snapscan] add_usb_device: Detected (kind of) an USB device
[snapscan] snapscani_usb_open(libusb:006:002)
[snapscan] add_usb_device: Checking if 0x04b8 is a supported USB vendor ID
[snapscan] snapscani_check_device()
[snapscan] mini_inquiry
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] atomic_usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x12 0x00 0x00 0x00 0x24 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xf9 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] usb_read: reading: 0x06 0x00 0x02 0x02 0x49 0x00 0x00 0x00
0x45 0x50 ...
[snapscan] Read 36 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] snapscani_check_device: Is vendor "EPSON" model "EPSON
Scanner" a supported scanner?
[snapscan] snapscani_get_model_id(EPSON Scanner, 0, 2)
[snapscan] snapscani_get_model_id: looking up scanner for ID 0x04b8,0x011f.
[snapscan] snapscani_get_model_id: scanner identified
[snapscan] snapscani_check_device: Autodetected driver: Perfection 1670
[snapscan] snapscani_usb_close(0)
[snapscan] 1st read 3 write 1
[snapscan] snapscani_usb_cmd(0,0xbfffd1f0,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffd1f0,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffd1f0,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] 2nd read 4 write 2
[snapscan] snapscani_init_device_structure()
[snapscan] sane_snapscan_get_devices (0xbfffe3b8, 0)
device `v4l:/dev/video0' is a Noname Vanilla iTVC15 card virtual device
device `snapscan:libusb:006:002' is a EPSON EPSON Scanner flatbed scanner
[snapscan] sane_snapscan_exit
#
#
#
#
#
# scanimage -T -d snapscan:libusb:006:002 -v -v
[sanei_debug] Setting debug level of snapscan to 128.
[snapscan] sane_snapscan_init
[snapscan] sane_snapscan_init: Snapscan backend version 1.4.42
[snapscan] add_usb_device(libusb:006:002)
[snapscan] add_usb_device: Detected (kind of) an USB device
[snapscan] snapscani_usb_open(libusb:006:002)
[snapscan] add_usb_device: Checking if 0x04b8 is a supported USB vendor ID
[snapscan] snapscani_check_device()
[snapscan] mini_inquiry
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffd190,6,0xbfffd160,0xbfffd15c (36))
[snapscan] atomic_usb_cmd(0,0xbfffd190,6,0xbfffd160,0xbfffd15c (36))
[snapscan] usb_cmd(0,0xbfffd190,6,0xbfffd160,0xbfffd15c (36))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x12 0x00 0x00 0x00 0x24 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xf9 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] usb_read: reading: 0x06 0x00 0x02 0x02 0x49 0x00 0x00 0x00
0x45 0x50 ...
[snapscan] Read 36 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] snapscani_check_device: Is vendor "EPSON" model "EPSON
Scanner" a supported scanner?
[snapscan] snapscani_get_model_id(EPSON Scanner, 0, 2)
[snapscan] snapscani_get_model_id: looking up scanner for ID 0x04b8,0x011f.
[snapscan] snapscani_get_model_id: scanner identified
[snapscan] snapscani_check_device: Autodetected driver: Perfection 1670
[snapscan] snapscani_usb_close(0)
[snapscan] 1st read 3 write 1
[snapscan] snapscani_usb_cmd(0,0xbfffd1c0,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffd1c0,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffd1c0,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] 2nd read 4 write 2
[snapscan] snapscani_init_device_structure()
[snapscan] sane_snapscan_open (libusb:006:002, 0xbfffe384)
[snapscan] find_device
[snapscan] sane_snapscan_open: Allocating 64512 bytes as scanner buffer.
[snapscan] sane_snapscan_open: allocated scanner structure at 0x80539f8
[snapscan] open_scanner
[snapscan] snapscani_usb_open(libusb:006:002)
[snapscan] sane_snapscan_open: waiting for scanner to warm up.
[snapscan] wait_scanner_ready
[snapscan] test_unit_ready
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffe290,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffe290,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffe290,6,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] sane_snapscan_open: performing scanner self test.
[snapscan] send_diagnostic
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffe2d0,6,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0xbfffe2d0,6,0x0,0x0 (0))
[snapscan] usb_cmd(0,0xbfffe2d0,6,0x0,0x0 (0))
[snapscan] sane_snapscan_open: self test passed.
[snapscan] inquiry
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0x8053a28,6,0x8062880,0x8053b38 (120))
[snapscan] atomic_usb_cmd(0,0x8053a28,6,0x8062880,0x8053b38 (120))
[snapscan] usb_cmd(0,0x8053a28,6,0x8062880,0x8053b38 (120))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x12 0x00 0x00 0x00 0x78 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read: reading: 0xf9 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] usb_read: reading: 0x06 0x00 0x02 0x02 0x49 0x00 0x00 0x00
0x45 0x50 ...
[snapscan] Read 120 bytes
[snapscan] usb_read: reading: 0xfb 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] inquiry: exposure time: 0.0 ms
[snapscan] inquiry: ms per line: 0.000000
[snapscan] inquiry: G2R_DIFF: 0
[snapscan] inquiry: B2R_DIFF: 0
[snapscan] inquiry: Chroma offsets=0; Red=0, Green:=0, Blue=0
[snapscan] inquiry: hardware config = 0x00
[snapscan] inquiry: bits per pixel = 14
[snapscan] inquiry: pixels per scan line = 0
[snapscan] inquiry: bytes per scan line = 0
[snapscan] inquiry: number of scan lines = 0
[snapscan] inquiry: effective buffer size = 0 bytes, 0 lines
[snapscan] inquiry: expected total scan data: 0 bytes
[snapscan] Looking up 31
[snapscan] Downloading /etc/sane.d/ESFW30.BIN
[snapscan] Size of firmware: 45364
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0x8072488,45374,0x0,0x0 (0))
[snapscan] atomic_usb_cmd(0,0x8072488,45374,0x0,0x0 (0))
[snapscan] usb_cmd(0,0x8072488,45374,0x0,0x0 (0))
[snapscan] usb_cmd: cmdlen=10, datalen=45364
[snapscan] usb_write: writing: 0x2a 0x00 0x87 0x00 0x00 0x00 0x00 0xb1
0x34 0x00
[snapscan] Written 10 bytes
[snapscan] usb_read: reading: 0xf8 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[snapscan] Read 8 bytes
[snapscan] usb_write: writing: 0x02 0xae 0x34 0x32 0xff 0xff 0xff 0xff
0xff 0xff ...
[snapscan] usb_write Only 1024 bytes written
[snapscan] Written 1024 bytes
[snapscan] sane_snapscan_open: download_firmware command failed: Error
during device I/O
scanimage: open of device snapscan:libusb:006:002 failed: Error during
device I/O
Calling sane_exit
[snapscan] sane_snapscan_exit
scanimage: finished
#
# scanimage -L
[sanei_debug] Setting debug level of snapscan to 128.
[snapscan] sane_snapscan_init
[snapscan] sane_snapscan_init: Snapscan backend version 1.4.42
[snapscan] add_usb_device(libusb:006:002)
[snapscan] add_usb_device: Detected (kind of) an USB device
[snapscan] snapscani_usb_open(libusb:006:002)
[snapscan] add_usb_device: Checking if 0x04b8 is a supported USB vendor ID
[snapscan] snapscani_check_device()
[snapscan] mini_inquiry
[snapscan] snapscan_cmd
[snapscan] snapscani_usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] atomic_usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] usb_cmd(0,0xbfffd1c0,6,0xbfffd190,0xbfffd18c (36))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x12 0x00 0x00 0x00 0x24 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read Only 0 bytes read
[snapscan] usb_read: reading: 0x12 0x00 0x00 0x00 0x24 0x00 0x00 0x00
[snapscan] Read 0 bytes
[snapscan] mini_inquiry: snapscan_cmd command failed: Error during
device I/O
[snapscan] snapscani_check_device: mini_inquiry failed with Error during
device I/O.
[snapscan] snapscani_usb_close(0)
[snapscan] 1st read 0 write 1
[snapscan] snapscani_usb_cmd(0,0xbfffd140,6,0xbfffd0c0,0xbfffd0b0 (120))
[snapscan] atomic_usb_cmd(0,0xbfffd140,6,0xbfffd0c0,0xbfffd0b0 (120))
[snapscan] usb_cmd(0,0xbfffd140,6,0xbfffd0c0,0xbfffd0b0 (120))
[snapscan] usb_cmd: cmdlen=6, datalen=0
[snapscan] usb_write: writing: 0x12 0x00 0x00 0x00 0x78 0x00
[snapscan] Written 6 bytes
[snapscan] usb_read Only 0 bytes read
[snapscan] usb_read: reading: 0x12 0x00 0x00 0x00 0x78 0x00 0x00 0x00
[snapscan] Read 0 bytes
[snapscan] 2nd read 0 write 2
[snapscan] sane_snapscan_get_devices (0xbfffe3b8, 0)
device `v4l:/dev/video0' is a Noname Vanilla iTVC15 card virtual device
[snapscan] sane_snapscan_exit
#
(the scanner is no longer presented, and only returns when everything is
reset).