At 16:59, 22 jan 2006, Henning Meier-Geinitz wrote:
> Hi,
>
> On 2006-01-18 00:08, Lorenzo Delana wrote:
> > I have a Mustek BP 1200 CU PLUS scanner A4, that /proc/bus/usb/devices
> > describe as:
>
> I have the same scanner and it works flawlessly. Also many others use
> this scanner.
>
> > 1) I installed cvs version of sane-backend and when I use scanimage the
> > problem go in Segmentation Fault;
> > to solve this I have to add a NULL POINTER check on the line 461 of the
> > code so that:
>
> I assume this is in sanei/sanei_usb.c?
right
>
> > -------------
> >     case USB_CLASS_PER_INTERFACE:
> >               if (dev->config[0].interface[interface].altsetting)
> >               switch (dev->config[0].interface[interface].altsetting[0].
> >                       bInterfaceClass)
> >                 {
> > ----------------
> > This because altsetting something got me a NULL, then altsetting[0] is
> > dereferencing a null pointer.
>
> How can altsetting[0] be 0? This means that an interface exists but no
> altsetting. I'm not that used to the USB spec but I would be surprised
> if this is allowed. Anyway, if your scanner does this, it can't scan
> because it's broken. I rather assume that it happens with some other
> device connected to your USB. Could you try to find out which device
> behaves this way? And please send a log with USB debugging enabled:
> SANE_DEBUG_SANEI_USB=255 scanimage -L

I'm sorry but I'm not able to reproduce this behavior.

Now that I'm completed the installation of my linux os from scratch maybe that 
something that lacks before in the system now is present ( I think something 
about devices udevd etc.. ) not generate more the error :(

>
> As an alernative to a strangely acting device, there could be a
> problem with libusb. However, this is the first time I hear about such
> trouble.
>
> I'll add some checks for altsetting !=0 to sanei_usb as they don't
> harm. But I think the problem is somewhere else.
Is a good idea, maybe some other user in future can occur in my same problem 
and can read a line like
"altsetting bug: this should not happen, please send email to mailing-list 
with `SANE_DEBUG_SANEI_USB=255 scanimage -L' output result" :-)

>
> > 3) as for 1) in tools/sane-find-scanner.c at line 627
>
> Could you send the output of "sane-find-scanner -v -v", please?
>

> > 4) at backend/gt68xx_high.c
> > I have commented out the check for the status, because in this point the
> > program blocks forever ( for my scanner ). changing status =
> > SANE_STATUS_GOOD for quickly replacement.
>
> Which status exactly? Which line of the code? Please send a log file
> of a scan where it blocks (without your change).
>

--- p/sane-backends/backend/gt68xx_high.c       2006-01-02 17:59:02.000000000 
+0100
+++ gt68xx_high.c       2006-01-25 21:54:17.000000000 +0100
@@ -669,11 +669,14 @@

   if (scanner->auto_afe)
     {
-      if (scanner->dev->model->is_cis)
-       status = gt68xx_afe_cis_auto (scanner);
-      else
-       status = gt68xx_afe_ccd_auto (scanner, request);
+      /*
+            if (scanner->dev->model->is_cis)
+       status = gt68xx_afe_cis_auto (scanner);
+            else
+       status = gt68xx_afe_ccd_auto (scanner, request);
+      */

+  status = SANE_STATUS_GOOD;
       if (status != SANE_STATUS_GOOD)
        {
          DBG (5, "gt68xx_scanner_calibrate: gt68xx_afe_*_auto failed: %s\n",

I tried to break with the debugger at `gt68xx_scanner_calibrate' before 
calling `gt68_afe_cis_auto` and the result for struct request is:

(gdb) print *request
$8 = {x0 = 0, y0 = 0, xs = 14221312, ys = 19595264, xdpi = 300, ydpi = 300, 
depth = 8, color = 0,
  mbs = -4172048, mds = 32767, mas = -1431604571, lamp = 1, calculate = 0, 
use_ta = 0, backtrack = 1,
  backtrack_lines = 16}

and the result for *scanner is in the attached `log3'.

NOTE: my platform is an AMD 64bit X2 with 64bit linux kernel and mixed 32/64 
bit multilib and the OS installed is from scratch (www.linuxfromscratch.org).
My kernel 2.6.14.5
Linux alpha 2.6.14.5 #12 SMP Thu Jan 19 CET 2006 x86_64 x86_64 x86_64 
GNU/Linux
My compiler is gnu gcc 4.0.2

my scanimage dependancies:
ldd `which scanimage`
        libsane.so.1 => /opt/lib/libsane.so.1 (0x00002aaaaabc7000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaaaccd000)
        libusb-0.1.so.4 => /opt/lib/libusb-0.1.so.4 (0x00002aaaaadd1000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaaaeda000)
        libm.so.6 => /lib64/libm.so.6 (0x00002aaaaafef000)
        libjpeg.so.62 => /opt/lib/libjpeg.so.62 (0x00002aaaab174000)
        libc.so.6 => /lib64/libc.so.6 (0x00002aaaab2a2000)
        /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)

Now I found the thing: the problem is that calibrate process takes long time 
for me depending if I have the cover of the scanner opened or closed, but in 
any case takes very long time before start and I thinked that's forever loop 
for the program but thisn't.

In fact if I have the cover opened before scanimage start it takes 53 seconds

real    0m53.263s
user    0m0.024s
sys     0m0.028s
attached log file : calib_log2

If the cover is closed the scanimage takes 11 seconds to start

real    0m11.465s
user    0m0.008s
sys     0m0.012s
attached log file : calib_log1

in any case for the 4) the scanner works, the only problem is the slow startup 
caused by the calibration process.

It's normal this long calibration time ?

> Bye,
>   Henning

thnx
lorenzo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: calib_log1.gz
Type: application/x-gzip
Size: 3703 bytes
Desc: not available
Url : 
http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20060126/7501f76d/calib_log1-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: calib_log2.gz
Type: application/x-gzip
Size: 6352 bytes
Desc: not available
Url : 
http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20060126/7501f76d/calib_log2-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log3.gz
Type: application/x-gzip
Size: 2543 bytes
Desc: not available
Url : 
http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20060126/7501f76d/log3-0001.bin
From oliver.schwa...@gmx.de  Thu Jan 26 23:27:40 2006
From: oliver.schwa...@gmx.de (Oliver Schwartz)
Date: Thu Jan 26 23:28:21 2006
Subject: [sane-devel] Try it out: SANE, JNI and Java all in an applet
In-Reply-To: <20060126135329.23593.qm...@web50011.mail.yahoo.com>
References: <20060126135329.23593.qm...@web50011.mail.yahoo.com>
Message-ID: <200601270027.41207.oliver.schwa...@gmx.de>

Hi,

> I noticed in my logs that some people are trying this.  However, I
> posted the wrong link.  This is the correct link to scan from your
> browser.

I didn't get it to work here, after several attempts. Some notes:
- In konqueror you need to disable the security manager (in settings / 
java), otherwise it won't load the jni library
- Enabling the java console is helpful (also in settings / java)
- On a 64 bit Linux installation you need a 32 bit jvm, as well as a 
32 bit version of the SANE libraries
- If you're using firefox you need to install the java plugin as 
described here: http://plugindoc.mozdev.org/linux.html#Java
- If no scanner can be found the applet crashes with:
caught this fat one: java.lang.ArrayIndexOutOfBoundsException: 0

After I solved these issue the applet initializes my scanner, but it 
doesn't scan. Instead, I get another exception:
caught this fat one: chiralsoftware.scanner.SaneException: Could not 
set an option value for name: depth

I guess this is because there's no option named depth for my scanner 
(it only supports one depth). So I guess the applet needs to check if 
an option exists before it tries to set it.

Also, for those who missed the link since it's only visible if you 
read the html mail, it's 
http://chiralsoftware.net/scanner/applet.html (in general, you should 
avoid posting of html messages to mailing lists).

Regards,
Oliver

Reply via email to