Need help building a new SANE driver

From: Marcio Luis Teixeira (marciot@holly.colostate.edu)
Date: Mon Jul 02 2001 - 18:49:13 PDT

  • Next message: Steven Ellis: "[Ann] Viceo / Genius USB Scanner driver for Sane 1.0.5"

    Hi everyone,

    I'm new to the mailing list and Sane, and to some extent, new to open
    source software development.

    To get aquainted, I was thinking of trying out a little project. I have a
    UMAX Astra 1220U scanner at home and would love to use it with
    SANE and the Gimp. While no SANE backend exists for it, Paul
    Mackerras has a GLPed command line driver for this scanner which
    works perfectly in my setup (Red Hat Linux 7.1). It accepts a few
    command line parameters and writes out a pnm file.

    It doesn't seem to me like it would be tremendously difficult to write
    a SANE backend based on that tool. One idea is to simply hack
    the SANE pnm backend to call the command line tool and read the
    pnm file it generates. Later, time permitting, it can be made into a self-
    contained backend.

    Anyhow, I decided to give this a try, but am having trouble getting
    my test backend to be recognized by SANE. Currently it is simply
    a copy of "pnm.c" with a couple minor changes. I did my best to
    hack the makefile and seem to have gotten everything to compile
    and install correctly. Alas, SANE only recognizes the pnm backend
    and not my modified copy of it. I'm stumped and don't know what
    else to do. Any ideas would be very much appreciated.

    Here is what I have done:

    1) I downloaded the Sane 1.0.5 distribution (backends and
    frontends), compiled it with the "--enable-pnm-backend" option,
    installed everything, and made sure I could use the pnm backend
    properly.

    2) I went into the "backend" directory of the source tree and
    copied "pnm.c" to "umax1220u.c".

    3) I changed the SANE_Device dev[] structure as such:

    static const SANE_Device dev[] =
    {{"0", "UMAX", "Astra 1220U", "flatbed scanner"},
      {"1", "UMAX", "Astra 1220U", "flatbed scanner"} };

    The purpose here was simply to make it easy for me to tell if
    my new "backend" was working.

    4) I edited "backends/Makefile.in" and added "umax1220u" to
    the end of the variable PRELOADABLE_BACKENDS and then
    added this line to the makefile:

    libsane-umax1220u.la: ../sanei/sanei_constrain_value.lo

    5) I did a "./configure", "make" and "make install".

    6) I did a "ls -l /usr/local/lib/sane/libsane-umax1220u.*" and
    confirmed I had five new files for my new driver.

    7) I edited "/usr/local/sane.d/dll.conf" and added "umax1220u"
    to the list.

    Anyhow, after all this was done, "scanimage -L" still fails to
    report my new driver. Where did I go wrong?

    Thank you in advance for any ideas!

    Marcio Luis Teixeira

    --
    Source code, list archive, and docs: http://www.mostang.com/sane/
    To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com
    



    This archive was generated by hypermail 2b29 : Mon Jul 02 2001 - 18:44:05 PDT