sane-genesys(5)          SANE Scanner Access Now Easy          sane-genesys(5)


       sane-genesys  -  SANE  backend for GL646, GL841, GL843, GL847 and GL124
       based USB flatbed scanners


       The sane-genesys library implements a SANE (Scanner  Access  Now  Easy)
       backend  that  provides  access  to  USB  flatbed scanners based on the
       Genesys GL646, GL841, GL843, GL847 and GL124 chips.   At  present,  the
       following scanners are known to work with this backend:

              Canon LiDE 35/40/50/60/100/110/200/210/700
              Hewlett-Packard HP2300C/HP2400/HP3670/HP3690/G4010/G4050
              Medion MD5345/MD6228/MD6274
              Panasonic KV-SS080
              Plustek OpticBook 3600
              Pentax DSmobile 600
              Syscan/Ambir DocketPORT 467/485/487/665/685
              Visioneer OneTouch 7100/Strobe XP100 (rev3)/XP200/XP300/Roadwar‐
              Xerox Travel Scanner 100, OneTouch 2400

       This is stable software for supported models. But if you  test  new  or
       untested  scanners, keep your hand at the scanner's plug and unplug it,
       if the head bumps at the end of the scan area.

       If you own a scanner other than the ones listed above that  works  with
       this  backend,  please  let me know this by sending the scanner's exact
       model  name  and  the  USB   vendor   and   device   ids   (e.g.   from
       /proc/bus/usb/devices,  sane-find-scanner  or syslog) to the sane-devel
       mailing list. Even if the scanner's name  is  only  slightly  different
       from the models mentioned above, please let me know.

       If you own a scanner that isn't detected by the genesys backend but has
       a GL646, GL841, GL843, GL847 or GL124 chipset, you can try to add it to
       the backend.


       To give correct image quality, sheet fed scanners need to be calibrated
       using the calibration sheet sold with the scanner. To  do  calibration,
       you must insert this target in the feeder then start calibration either
       by passing the --calibrate option to scanimage or by  clicking  on  the
       available  'calibrate'  button in the 'advanced options' in a graphical
       frontend. The result of the calibration is stored in a file in the home
       directory  of  the  user  doing it.  If you plug the scanner in another
       machine or use it with another account, calibration  will  have  to  be


       --lamp-off-time number
                      The  lamp  will  be  turned off after the given time (in
              minutes). A value of 0 means that the lamp won't be turned off.

       --threshold percent
                   0..100% (in steps of 1). Select minimum brightness to get a
              white  point.  Pixels  whith brightness below that value will be
              scanned as black.

       --brightness value
                   -100..100 (in steps of 1). Set the brightness  enhancement.
              0  for  no  enhancement, negative values to decrease brigthness,
              and positive values to increase it.

       --contrast value
                   -100..100 (in steps of 1). Set the contrast enhancement.  0
              for  no  enhancement,  negative values to decrease contrast, and
              positive values to increase it.

       --disable-interpolation yes|no
                      When using high resolutions where the horizontal resolu‐
              tion  is  smaller  than vertical resolution, data is expanded by
              software to preserve picture geometry. This can be  disabled  by
              this option to get real scanned data.

       --disable-dynamic-lineart yes|no
                      Disable use of a software adaptive algorithm to generate
              lineart and rely on hardware lineart.

       --color-filter None|Red|Green|Blue
                      When using gray or lineart this option selects the  used
              color.  Using  a  color  filter will give a monochrome scan. CIS
              based scanners can to true gray when no filter (None  value)  is

                      The lamp will be turned off during the scan. Calibration
              is still done with lamp on.

                      Clear calibration cache data, triggering a new  calibra‐
              tion for the device when the next scan will happen.

                      Specify  the  calibration file name to use. At least the
              directory containing the file must exist, since it won't be cre‐
              ated. This allow to handle the case of several identical devices
              that would otherwise use the same calibration data. This  option
              is disabled if the backend is ran as root.

       Additionally,  several  'software'  options are exposed by the backend.
       These are reimplementations of features  provided  natively  by  larger
       scanners,  but  running  on  the  host  computer.  This enables smaller
       machines to have similar capabilities. Please note that these  features
       are  somewhat  simplistic,  and  may  not perform as well as the native
       implementations. Note also that these features  all  require  that  the
       driver  cache  the  entire  image in memory. This will almost certainly
       result in a reduction of scanning speed.

                   Requests the driver to detect the extremities of the  paper
              within the larger image, and crop the empty edges.

                   Requests  the  driver  to  detect the rotation of the paper
              within the larger image, and counter the rotation.

       --swdespeck --despeck X
                   Requests the driver to find and remove dots of  X  diameter
              or  smaller  from the image, and fill the space with the average
              surrounding color.

       --swskip 0..100% (in steps of 1) [0]
                      Request driver to discard pages with low numbers of dark

       --swderotate[=(yes|no)] [no]
                      Request  driver  to  detect  and correct 90 degree image


       This backend needs libusb-0.1.6 or later installed, and  hasn't  tested
       in other configuration than a linux kernel 2.6.9 or higher. However, it
       should work any system with libusb where the SANE package can  be  com‐
       piled.  For  setting  permissions  and  general USB information look at


       The contents of the genesys.conf file is a list of usb lines containing
       vendor  and  product  ids that correspond to USB scanners. The file can
       also contain option lines.  Empty lines and lines starting with a  hash
       mark  (#)  are ignored.  The scanners are autodetected by usb vendor_id
       product_id statements which are  already  included  into  genesys.conf.
       "vendor_id"  and "product_id" are hexadecimal numbers that identify the


              The  backend  configuration  file  (see  also   description   of
              SANE_CONFIG_DIR below).

              The static library implementing this backend.

              The shared library implementing this backend (present on systems
              that support dynamic loading).


              This environment variable specifies the list of directories that
              may contain the configuration file.  Under UNIX, the directories
              are separated by a colon (`:'), under OS/2, they  are  separated
              by a semi-colon (`;').  If this variable is not set, the config‐
              uration file is searched in two default directories: first,  the
              current working directory (".") and then in /etc/sane.d.  If the
              value of the environment variable ends with the directory  sepa‐
              rator character, then the default directories are searched after
              the explicitly  specified  directories.   For  example,  setting
              SANE_CONFIG_DIR  to  "/tmp/config:"  would result in directories
              "tmp/config", ".", and "/etc/sane.d"  being  searched  (in  this

              If  the  library  was  compiled with debug support enabled, this
              environment variable controls the debug level for this  backend.
              Higher debug levels increase the verbosity of the output. If the
              debug level is set to 1 or higher,  some  debug  options  become
              available  that are normally hidden. Handle them with care. This
              will print messages related to core genesys functions.

              This environment variable controls the debug level for low level
              functions common to all genesys ASICs.

              This  environment variable controls the debug level for the spe‐
              cific GL646 code part.

              This environment variable controls the debug level for the  spe‐
              cific GL841 code part.

              This  environment variable controls the debug level for the spe‐
              cific GL843 code part.

              This environment variable controls the debug level for the  spe‐
              cific GL847 code part.

              This  environment variable controls the debug level for the spe‐
              cific GL124 code part.

              Example (full and highly verbose output for gl646):
              export SANE_DEBUG_GENESYS=255
              export SANE_DEBUG_GENESYS_LOW=255
              export SANE_DEBUG_GENESYS_GL646=255


       Jack McGill for donating several sheetfed and flatbed  scanners,  which
       made possible to add support for them in the genesys backend:
              Hewlett-Packard HP3670
              Visioneer Strobe XP100 (rev3)/XP200/XP300/Roadwarrior
              Canon LiDE 200
              Pentax DSmobile 600
              Syscan/Ambir DocketPORT 467/485/487/665/685
              Xerox Travel Scanner 100, Onetouch 2400

       cncsolutions  (  sponsored and supported
       the work on the Panasonic KV-SS080.

       Brian Paavo from Benthic Science Limited for donating a  Canoscan  LiDE


       sane(7), sane-usb(5)


       Oliver Rauch
       Henning Meier-Geinitz <>
       Gerhard Jaeger <>
       Stéphane Voltz <>
       Philipp Schmid <>
       Pierre Willenbrock <>
       Alexey Osipov <> for HP2400 final support


       Powersaving  isn't  implemented  for gl646 based scanner. Dynamic (emu‐
       lated from gray data and with dithering) isn't enabled for gl646  scan‐
       ners.  Hardware  lineart is limited up to 600 dpi for gl847 based scan‐
       ners, due to the way image sensors are built.

       This backend will be much slower if not using libusb-1.0.  So  be  sure
       that sane-backends is built with the --enable-libusb_1_0 option.


       For the LiDE 200, the scanned data at 4800 dpi is obtained "as is" from
       sensor. It seems the windows driver does  some  digital  processing  to
       improve it, which is not implemented in the backend.

                                  4 Jul 2012                   sane-genesys(5)

Man(1) output converted with man2html