Section: SANE Scanner Access Now Easy (5)
Updated: 13 Jul 2008
Index Return to Main Contents


sane-genesys - SANE backend for GL646 and GL841 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 and GL841 chips. At present, the following scanners are known to work with this backend:

Medion MD6228
Medion MD6274
Hewlett-Packard HP2300C
Visioneer Strobe XP200
Canon LiDE 35/40/50/60

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 or GL841 chipset, you can try to add it to the backend.



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 compiled. For setting permissions and general USB information look at sane-usb(5).



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 scanner.



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 configuration 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 separator 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 order).
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 the specific GL646 code part.
This environment variable controls the debug level for the specific GL841 code part.

Example (full and highly verbose output for gl646):



   Jack McGill for donating several sheetfed scanners, which made possible to add support for them in the genesys backend.



sane(7), sane-usb(5)



Oliver Rauch
Henning Meier-Geinitz <>
Gerhard Jaeger <>
St['e]phane Voltz <>
Philipp Schmid <>
Pierre Willenbrock <>



Powersaving isn't implemented for gl646 based scanner.
Calibration for sheetfed scanners isn't implemented yet.



Currently no known bug.