[sane-devel] Possible bug in canon backend or > scanimage

Myroslav Kavatsyuk m.kavatsyuk at yahoo.com
Wed Nov 10 08:55:10 UTC 2010


Dear Stef,

I did not manage to compile SANE with the internal getopt_long. At
least with my distribution (Ubuntu 10.10) SANE was always built with
the glibc getopt_long and disregarding the definitions in the config.h.
However I modified the fetch_options function (scanimage.c:859) by
adding a line
if(opt->name == NULL) continue;
at 895. After this modification scanimage works as expected, namely
it recognizes all options! May be this is a bug in the glibc
implementation of getopt_long (it stops once it reaches NULL option).
But I would suggest to modify the scanimage.c.

Please find attached the usb log file of the canoscan 8400F.
I am not sure if it is complete (the log was recorded while scanner
reset and preview, but during the preview I notice that number
of recorded packets was not changing). Please let me know if you
need more information/tests.

The canoscan 3200F I will try during the Christmas holidays.

Best regards,
Myroslav


--- On Mon, 11/8/10, stef <stef.dev at free.fr> wrote:

> From: stef <stef.dev at free.fr>
> Subject: Re: [sane-devel] Possible bug in canon backend or > scanimage
> To: sane-devel at lists.alioth.debian.org
> Cc: "Myroslav Kavatsyuk" <m.kavatsyuk at yahoo.com>
> Date: Monday, November 8, 2010, 9:35 PM
> Le Monday 08 November 2010 12:54:11
> Myroslav Kavatsyuk, vous avez écrit :
> > Dear colleagues,
> > 
> > Thank you for your replies. I find that addition of
> the --all-options
> > is a nice idea to improve the user interface.
> Unfortunately it
> > does not solve my problem. This weekend I tried to
> debug sane
> > to find the source of the error. Just to remind you
> the problem:
> > 
> > scanner canoscan 2700F is supposed to have extra
> options (reported
> > when using --all-options flag, works with xsane) but
> this options
> > are not accessible with a scanimage (reported error
> > scanimage: unrecognized option '--af=yes')
> > 
> > As was pointed earlier, the message is coming from the
> getopt_long
> > function (frontend/scanimage.c:2094). With my
> compilation, the glibc
> > implementation of the getopt_long is used, therefore I
> could not
> > debug it. However, I have modified the scanimage.c in
> a way, to
> > printout all command-line parameters and the content
> of
> > full_optstring and all_options -- parameters of
> getopt_long
> > function (frontend/scanimage.c:2094). The output you
> can see in the
> > attachment (scanimage.out.highlight and
> scanimage.out.af). What I do
> > not like in the output is some (null) option-names in
> the printed
> > all_options (see line 29 of scanimage.out.af). This
> (null) string
> > is following after the "ae" option, which is still
> working.
> > All options below that (null) line do not work.
> 
>     Option group don't have a name, so it's
> normal you get null for them. I 
> see nothing obvious from the appended files. You can force
> the build and use 
> of the internal getopt_long by undef'ing HAVE_GETOPT_LONG
> in 
> include/sane/config.h, so you can really step in it with a
> debugger.
> 
> 
> > 
> > Here, just in case, few lines which I added to
> scanimage.c just before
> > while loop at the line 2094 to print parameters:
> > 
> >   
>    fprintf(stderr,"Full_options:
> %s\n",full_optstring);
> >   
>    for(i=0;i<all_options_len;i++)
> >       fprintf(stderr,"ap:
> %s\n",all_options[i].name);
> > 
> > Please let me know your opinion on this
> "investigation".
> > 
> > I just noticed that there is active development of the
> genesys
> > backend. I have a canoscan 8400F scanner which is
> build with
> > the GL843 chip. I would like to help to make backend
> for this
> > scanner. Please let me know how can I help you.
>     
>     To check how much it is different, we
> need a usbsnoop log of a preview 
> done under windows. By processing it with scripts, I can
> extract the 
> information needed to add it to the gl843 scanners.
> 
> > I also have a canoscan 3200F scanner, which I would
> like to
> > rebuild to a "film" scanner. But before taking it
> completely
> > apart I can try to see if we can make it ruining with
> sane.
> > 
>     In older CVS there was an experimental
> backend for this scanner. Maybe 
> you could look at it.
> 
> > Please find attached the output of the
> sane-find-scanner
> > utility.
> > 
> > Best regards,
> > Myroslav
> > 
> 
> Regards,
>     Stef
>


      
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Canoscan8400F.usblog
Type: application/octet-stream
Size: 14969 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20101110/f6da5346/attachment-0001.obj>


More information about the sane-devel mailing list