[sane-devel] IScan 1.14.0 startup delay, not working Perf 2450, not compiling on Mandriva LE2005/gcc 3.4.3

Till Kamppeter till.kamppeter@gmx.net
Fri, 17 Jun 2005 17:26:52 +0200


libusb: 0.1.8
kernel: 2.6.11

I am trying to get an Epson Perfection 2450 and 4180 to work on the 
distro mentioned in the subject.

At first I tried /home/test/iscan-1.14.0-3.i386.rpm, but iscan had a 
long delay to start up with both with the Perfection 4180 and 2450 
Photo. The 4180 actually worked, once the iscan window was open. Also 
multiple page scanning with the pages initiated by the scanner's button 
works. The 2450 did not work.

Here the debug output for the 2450 Photo (in epkowa.conf only "usb" line 
is active, in dll.conf "epson", "plustek", and "snapscan" are commented 
out):

-----------------------------------------------------------------------------
[test@majax ~]$ SANE_DEBUG_EPKOWA=255 iscan
[sanei_debug] Setting debug level of epkowa to 255.
[epkowa] sane_init: iscan 1.14.0
[epkowa] sane_init, ># epkowa.conf -- sample configuration for the 
EPKOWA SANE backend<
[epkowa] sane_init, ># Copyright (C) 2004  Olaf Meeuwissen<
[epkowa] sane_init, >#<
[epkowa] sane_init, ># See sane-epkowa(5), sane-scsi(5) and sane-usb(5) 
for details.<
[epkowa] sane_init, ><
[epkowa] sane_init, ># SCSI scanners can be configured simply by listing 
the path to the<
[epkowa] sane_init, ># device.  For example, if your system claims to 
have a /dev/scanner<
[epkowa] sane_init, ># SCSI device, all you have to do is uncomment the 
following line:<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#/dev/scanner<
[epkowa] sane_init, >#<
[epkowa] sane_init, ># In the interest of maintainability, most 
installations would have<
[epkowa] sane_init, ># /dev/scanner sym-linked to the real SCSI scanner 
device node.<
[epkowa] sane_init, >#<
[epkowa] sane_init, ># An alternative way that works for many operating 
systems and is a<
[epkowa] sane_init, ># little bit more generic, is to have the backend 
probe for your SCSI<
[epkowa] sane_init, ># scanner with the following configuration command:<
[epkowa] sane_init, >#<
[epkowa] sane_init, >scsi EPSON<
[epkowa] sane_init, ><
[epkowa] sane_init, ># On systems with libusb, the following line is 
sufficient to get the<
[epkowa] sane_init, ># backend to recognise your USB scanners.  It 
presumes, however, that<
[epkowa] sane_init, ># the scanner---more precisely, it's USB product 
ID---is known to the<
[epkowa] sane_init, ># backend.<
[epkowa] sane_init, ># For all USB scanners that are officially 
supported by this backend,<
[epkowa] sane_init, ># this presumption is true.  A list of such 
scanners can be found in<
[epkowa] sane_init, ># sane-epkowa(5).<
[epkowa] sane_init, >#<
[epkowa] sane_init, >usb<
[epkowa] attach_one_usb()
[epkowa] SANE EPKOWA Backend 1.14.0 - 2005-02-18
[epkowa] attach(, 3)
[epkowa] attach: opening
[epkowa] attach_one_usb(libusb:001:086)
[epkowa] SANE EPKOWA Backend 1.14.0 - 2005-02-18
[epkowa] attach(libusb:001:086, 3)
[epkowa] attach: opening libusb:001:086
[epkowa] Found valid EPSON scanner: 0x4b8/0x112 (vendorID/productID)
[epkowa] send buf, size = 2
[epkowa] buf[0] 1b .
[epkowa] buf[1] 40 @
[epkowa] receive buf, expected = 1, got = 0
[epkowa] get_identity_information()
[epkowa] send buf, size = 2
[epkowa] buf[0] 1b .
[epkowa] buf[1] 49 I
[epkowa] receive buf, expected = 4, got = 4
[epkowa] buf[0] 02 .
[epkowa] buf[1] 12 .
[epkowa] buf[2] 6a j
[epkowa] buf[3] 00 .
[epkowa] code   02
[epkowa] status 12
[epkowa] count  106
[epkowa] receive buf, expected = 106, got = 106
[epkowa] buf[0] 42 B
[epkowa] buf[1] 38 8
[epkowa] buf[2] 52 R
[epkowa] buf[3] 32 2
[epkowa] buf[4] 00 .
[epkowa] buf[5] 52 R
[epkowa] buf[6] 3c <
[epkowa] buf[7] 00 .
[epkowa] buf[8] 52 R
[epkowa] buf[9] 48 H
[epkowa] buf[10] 00 .
[epkowa] buf[11] 52 R
[epkowa] buf[12] 4b K
[epkowa] buf[13] 00 .
[epkowa] buf[14] 52 R
[epkowa] buf[15] 50 P
[epkowa] buf[16] 00 .
[epkowa] buf[17] 52 R
[epkowa] buf[18] 5a Z
[epkowa] buf[19] 00 .
[epkowa] buf[20] 52 R
[epkowa] buf[21] 64 d
[epkowa] buf[22] 00 .
[epkowa] buf[23] 52 R
[epkowa] buf[24] 78 x
[epkowa] buf[25] 00 .
[epkowa] buf[26] 52 R
[epkowa] buf[27] 85 .
[epkowa] buf[28] 00 .
[epkowa] buf[29] 52 R
[epkowa] buf[30] 90 .
[epkowa] buf[31] 00 .
[epkowa] buf[32] 52 R
[epkowa] buf[33] 96 .
[epkowa] buf[34] 00 .
[epkowa] buf[35] 52 R
[epkowa] buf[36] a0 .
[epkowa] buf[37] 00 .
[epkowa] buf[38] 52 R
[epkowa] buf[39] af .
[epkowa] buf[40] 00 .
[epkowa] buf[41] 52 R
[epkowa] buf[42] b4 .
[epkowa] buf[43] 00 .
[epkowa] buf[44] 52 R
[epkowa] buf[45] c8 .
[epkowa] buf[46] 00 .
[epkowa] buf[47] 52 R
[epkowa] buf[48] d8 .
[epkowa] buf[49] 00 .
[epkowa] buf[50] 52 R
[epkowa] buf[51] f0 .
[epkowa] buf[52] 00 .
[epkowa] buf[53] 52 R
[epkowa] buf[54] 0a .
[epkowa] buf[55] 01 .
[epkowa] buf[56] 52 R
[epkowa] buf[57] 2c ,
[epkowa] buf[58] 01 .
[epkowa] buf[59] 52 R
[epkowa] buf[60] 40 @
[epkowa] buf[61] 01 .
[epkowa] buf[62] 52 R
[epkowa] buf[63] 5e ^
[epkowa] buf[64] 01 .
[epkowa] buf[65] 52 R
[epkowa] buf[66] 68 h
[epkowa] buf[67] 01 .
[epkowa] buf[68] 52 R
[epkowa] buf[69] 90 .
[epkowa] buf[70] 01 .
[epkowa] buf[71] 52 R
[epkowa] buf[72] e0 .
[epkowa] buf[73] 01 .
[epkowa] buf[74] 52 R
[epkowa] buf[75] 58 X
[epkowa] buf[76] 02 .
[epkowa] buf[77] 52 R
[epkowa] buf[78] d0 .
[epkowa] buf[79] 02 .
[epkowa] buf[80] 52 R
[epkowa] buf[81] 20
[epkowa] buf[82] 03 .
[epkowa] buf[83] 52 R
[epkowa] buf[84] 84 .
[epkowa] buf[85] 03 .
[epkowa] buf[86] 52 R
[epkowa] buf[87] b0 .
[epkowa] buf[88] 04 .
[epkowa] buf[89] 52 R
[epkowa] buf[90] 40 @
[epkowa] buf[91] 06 .
[epkowa] buf[92] 52 R
[epkowa] buf[93] 08 .
[epkowa] buf[94] 07 .
[epkowa] buf[95] 52 R
[epkowa] buf[96] 60 `
[epkowa] buf[97] 09 .
[epkowa] buf[98] 52 R
[epkowa] buf[99] 80 .
[epkowa] buf[100] 0c .
[epkowa] buf[101] 41 A
[epkowa] buf[102] 40 @
[epkowa] buf[103] 6a j
[epkowa] buf[104] 40 @
[epkowa] buf[105] 92 .
[epkowa] type    B 0x42
[epkowa] level   8 0x38
[epkowa] option equipment is installed
[epkowa] resolution (dpi): 50
[epkowa] resolution (dpi): 60
[epkowa] resolution (dpi): 72
[epkowa] resolution (dpi): 75
[epkowa] resolution (dpi): 80
[epkowa] resolution (dpi): 90
[epkowa] resolution (dpi): 100
[epkowa] resolution (dpi): 120
[epkowa] resolution (dpi): 133
[epkowa] resolution (dpi): 144
[epkowa] resolution (dpi): 150
[epkowa] resolution (dpi): 160
[epkowa] resolution (dpi): 175
[epkowa] resolution (dpi): 180
[epkowa] resolution (dpi): 200
[epkowa] resolution (dpi): 216
[epkowa] resolution (dpi): 240
[epkowa] resolution (dpi): 266
[epkowa] resolution (dpi): 300
[epkowa] resolution (dpi): 320
[epkowa] resolution (dpi): 350
[epkowa] resolution (dpi): 360
[epkowa] resolution (dpi): 400
[epkowa] resolution (dpi): 480
[epkowa] resolution (dpi): 600
[epkowa] resolution (dpi): 720
[epkowa] resolution (dpi): 800
[epkowa] resolution (dpi): 900
[epkowa] resolution (dpi): 1200
[epkowa] resolution (dpi): 1600
[epkowa] resolution (dpi): 1800
[epkowa] resolution (dpi): 2400
[epkowa] resolution (dpi): 3200
[epkowa] maximum scan area: x 27200 y 37440
[epkowa] fbf tlx 0.000000 tly 0.000000 brx 215.899994 bry 297.179993 [mm]
[epkowa] send buf, size = 2
[epkowa] buf[0] 1b .
[epkowa] buf[1] 44 D
[epkowa] receive buf, expected = 1, got = 1
[epkowa] buf[0] 06 .
[epkowa] send buf, size = 1
[epkowa] buf[0] 10 .
[epkowa] receive buf, expected = 1, got = 1
[epkowa] buf[0] 06 .
[epkowa] Max. supported color depth = 16
[epkowa] send buf, size = 2
[epkowa] buf[0] 1b .
[epkowa] buf[1] 66 f
[epkowa] receive buf, expected = 4, got = 4
[epkowa] buf[0] 02 .
[epkowa] buf[1] 12 .
[epkowa] buf[2] 2a *
[epkowa] buf[3] 00 .
[epkowa] code   02
[epkowa] status 12
[epkowa] count  42
[epkowa] receive buf, expected = 42, got = 42
[epkowa] buf[0] 05 .
[epkowa] buf[1] 00 .
[epkowa] buf[2] 00 .
[epkowa] buf[3] 00 .
[epkowa] buf[4] 00 .
[epkowa] buf[5] 00 .
[epkowa] buf[6] 80 .
[epkowa] buf[7] 00 .
[epkowa] buf[8] 32 2
[epkowa] buf[9] c0 .
[epkowa] buf[10] 71 q
[epkowa] buf[11] 00 .
[epkowa] buf[12] 00 .
[epkowa] buf[13] 00 .
[epkowa] buf[14] 00 .
[epkowa] buf[15] 00 .
[epkowa] buf[16] 00 .
[epkowa] buf[17] 00 .
[epkowa] buf[18] 00 .
[epkowa] buf[19] 00 .
[epkowa] buf[20] 00 .
[epkowa] buf[21] 00 .
[epkowa] buf[22] 00 .
[epkowa] buf[23] 00 .
[epkowa] buf[24] 00 .
[epkowa] buf[25] 00 .
[epkowa] buf[26] 47 G
[epkowa] buf[27] 54 T
[epkowa] buf[28] 2d -
[epkowa] buf[29] 39 9
[epkowa] buf[30] 37 7
[epkowa] buf[31] 30 0
[epkowa] buf[32] 30 0
[epkowa] buf[33] 20
[epkowa] buf[34] 20
[epkowa] buf[35] 20
[epkowa] buf[36] 20
[epkowa] buf[37] 20
[epkowa] buf[38] 20
[epkowa] buf[39] 20
[epkowa] buf[40] 20
[epkowa] buf[41] 20
[epkowa] TPU detected
[epkowa] tpu tlx 0.000000 tly 0.000000 brx 101.599991 bry 231.139999 [mm]
[epkowa] model : Perfection 2450
[epkowa] sane_init, ><
[epkowa] sane_init, ># For any USB scanner not known to the backend 
(yet), you may, at your<
[epkowa] sane_init, ># own peril(!!), force the backend to recognise and 
use it via libusb.<
[epkowa] sane_init, ># You can do so by the following configuration 
command:<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#   usb <USB vendor ID> <USB product ID><
[epkowa] sane_init, >#<
[epkowa] sane_init, ># SEIKO EPSON's USB vendor ID is '0x04b8' (without 
quotes).  In order<
[epkowa] sane_init, ># to find the USB product ID, use lsusb(1) or, on 
Linux systems, peek<
[epkowa] sane_init, ># at the information in /proc/bus/usb/devices.<
[epkowa] sane_init, ># A sample configuration for the Perfection 1650 
(GT-8200), which has<
[epkowa] sane_init, ># a product ID of 0x0110, would look as follows:<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#usb 0x04b8 0x0110<
[epkowa] sane_init, ><
[epkowa] sane_init, ># When not accessing your USB scanner via libusb, 
you may need to use<
[epkowa] sane_init, ># one of the configuration commands below or 
commands that are almost<
[epkowa] sane_init, ># the same.  These commands typically access the 
scanner via a kernel<
[epkowa] sane_init, ># scanner module.<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#usb /dev/usb/scanner0<
[epkowa] sane_init, >#usb /dev/usbscanner0<
[epkowa] sane_init, >#usb /dev/uscanner0<
[epkowa] sane_init, >#<
[epkowa] sane_init, ># Linux had a scanner module until version 2.6.2. 
As of version 2.6.3<
[epkowa] sane_init, ># libusb is your only option.  Linux' scanner 
module can be loaded via<
[epkowa] sane_init, ># the modprobe(8) command like so:<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#   modprobe scanner vendor=<USB vendor ID> 
product=<USB product ID><
[epkowa] sane_init, >#<
[epkowa] sane_init, ># If the scanner module already knows the vendor 
and product IDs, you<
[epkowa] sane_init, ># do not have to specify them.  If you want to have 
this done automa-<
[epkowa] sane_init, ># tically every time you boot, you can add the 
above line, except for<
[epkowa] sane_init, ># the modprobe command itself, to your /etc/modules 
file.<
[epkowa] sane_init, ><
[epkowa] sane_init, ># Although not tested with this backend, parallel 
port scanners should<
[epkowa] sane_init, ># be usable.  You can configure them as shown 
below, but I do not know<
[epkowa] sane_init, ># much about the details.  Information is welcome.<
[epkowa] sane_init, >#<
[epkowa] sane_init, >#pio 0x278<
[epkowa] sane_init, >#pio 0x378<
[epkowa] sane_init, >#pio 0x3BC<
[epkowa] sane_get_devices()
-----------------------------------------------------------------------------

Then the process hangs some minutes and after some time appears the 
IScan window and on the console appears

-----------------------------------------------------------------------------
[epkowa] sane_open(libusb:001:086)
[epkowa] reset calling open_scanner
[epkowa] open_scanner()
-----------------------------------------------------------------------------

Clicking on "Preview" shows at first a window with a progress bar and 
"Scanner is warming up. Please wait". On the progress bar nothing 
happens and after some seconds a second window appears containing: 
"Could not send command to scanner. Check the scanner's status".

On the console the following lines were added:

-----------------------------------------------------------------------------
[epkowa] reset calling open_scanner
[epkowa] open_scanner()
[epkowa] set = 0.000000
[epkowa] set = 0.000000
[epkowa] set = 215.899994
[epkowa] set = 297.179993
[epkowa] open_scanner()
-----------------------------------------------------------------------------

Due to the long delay on starting iscan and the 2450 not working I 
decided to compile from source, using iscan-1.14.0-3.tar.gz.

I did

-----------------------------------------------------------------------------
rpm -e --nodeps libsane1-devel
urpmi libgtk+1.2-devel
./configure --prefix=/usr --sysconfdir=/etc
-----------------------------------------------------------------------------

libusb1-devel was already installed.

Then I continued:

-----------------------------------------------------------------------------
[root@majax iscan-1.14.0]# make
making all in libltdl
make[1]: Entering directory `/root/i/iscan-1.14.0/libltdl'
make  all-am
make[2]: Entering directory `/root/i/iscan-1.14.0/libltdl'
/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.     -g 
-O2 -c -o ltdl.lo ltdl.c
mkdir .libs
  gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c  -fPIC -DPIC -o 
.libs/ltdl.o
  gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1
/bin/sh ./libtool --mode=link gcc  -g -O2   -o libltdlc.la   ltdl.lo -ldl
ar cru .libs/libltdlc.a .libs/ltdl.o
ranlib .libs/libltdlc.a
creating libltdlc.la
(cd .libs && rm -f libltdlc.la && ln -s ../libltdlc.la libltdlc.la)
make[2]: Leaving directory `/root/i/iscan-1.14.0/libltdl'
make[1]: Leaving directory `/root/i/iscan-1.14.0/libltdl'
making all in include
make[1]: Entering directory `/root/i/iscan-1.14.0/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/i/iscan-1.14.0/include'
making all in lib
make[1]: Entering directory `/root/i/iscan-1.14.0/lib'
gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d 
-DPATH_SANE_DATA_DIR=/usr/share         -DV_MAJOR=1 -DV_MINOR=0 -g -O2 
-W -Wall getopt.c
gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d 
-DPATH_SANE_DATA_DIR=/usr/share         -DV_MAJOR=1 -DV_MINOR=0 -g -O2 
-W -Wall getopt1.c
gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d 
-DPATH_SANE_DATA_DIR=/usr/share         -DV_MAJOR=1 -DV_MINOR=0 -g -O2 
-W -Wall md5.c
ar r liblib.a getopt.o getopt1.o md5.o
ar: creating liblib.a
ranlib liblib.a
mkdir .libs
  gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d -DPATH_SANE_DATA_DIR=/usr/share 
-DV_MAJOR=1 -DV_MINOR=0 -g -O2 -W -Wall getopt.c  -fPIC -DPIC -o 
.libs/getopt.o
  gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d -DPATH_SANE_DATA_DIR=/usr/share 
-DV_MAJOR=1 -DV_MINOR=0 -g -O2 -W -Wall getopt1.c  -fPIC -DPIC -o 
.libs/getopt1.o
  gcc -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d -DPATH_SANE_DATA_DIR=/usr/share 
-DV_MAJOR=1 -DV_MINOR=0 -g -O2 -W -Wall md5.c  -fPIC -DPIC -o .libs/md5.o
g++ -c -DHAVE_CONFIG_H -I. -I. -I../include/sane -I../include 
-DPATH_SANE_CONFIG_DIR=/etc/sane.d 
-DPATH_SANE_DATA_DIR=/usr/share         -DV_MAJOR=1 -DV_MINOR=0 -g -O2 
cfilebuf.cc
cfilebuf.cc:252: error: expected unqualified-id before ';' token
cfilebuf.cc:253: error: expected unqualified-id before ';' token
make[1]: *** [cfilebuf.o] Error 1
make[1]: Leaving directory `/root/i/iscan-1.14.0/lib'
make: *** [all-recursive] Error 1
[root@majax iscan-1.14.0]#
-----------------------------------------------------------------------------

Any idea what went wrong here? I am using gcc 3.4.3. The package is 
supposed to compile with gcc 3.2 or newer according to the Avasys web site.

I am grateful for any help, both on the binary RPM and on the 
compilation issues.

    Till