I need some help and direction to where or whom to talk to. I need to stream line or automate the scanner process for Linux.
I am looking for some help to write a driver and some other functions for a scanner project. Let me know if you are interest in helping out or for a fee. I want to automate the scanner process. Turn it into a fax alike. You know how we only need to push one button on the fax machine. That is how I would like to see a scanner able to perform. Having said that, I am looking for someone who can help me to write a USB driver, interface that allow the system to automate the process. Please write me at [email protected] if you can and interested. Thanks, Tom ---- Original message ---- >Date: Fri, 17 Jun 2005 17:26:52 +0200 >From: Till Kamppeter <[email protected]> >Subject: [sane-devel] IScan 1.14.0 startup delay, not working Perf 2450, not compiling on Mandriva LE2005/gcc 3.4.3 >To: Olaf Meeuwissen <[email protected]>, SANE list <[email protected]> > >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 > >-- >sane-devel mailing list: [email protected] >http://lists.alioth.debian.org/mailman/listinfo/sane-devel >Unsubscribe: Send mail with subject "unsubscribe your_password" > to [email protected]
