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/120/200/210/220/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/Roadwarrior
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 redone, unles you use the --calibration-file option. If no home directory is defined, USERAPPPROFILE will be used, then TMPDIR or TMP. If none of these directories exist, the backend will try to write in the current working directory. Flatbed scanners also make use of the calibration file as a cache to avoid calibration before each scan. Calibration file name is the name of the scanner model if only one scanner is detected. In the case of several identical model, the file name will be the name of the logical USB device name. The expiration time manages the time a calibration is valid in cache. A value of -1 means forever, 0 means no cache.
--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
resolution 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
selected.
--lamp-off-scan
The lamp will be turned off during the scan. Calibration
is still done with lamp on.
--clear-calibration
Clear calibration cache data, triggering a new
calibration for the device when the next scan will happen.
--calibration-file
Specify the calibration file name to use. At least the
directory containing the file must exist, since it won't be
created. This option is disabled if the backend is ran as root.
It maybe used in case of sheet-fed scanners to share a
calibration file for several users.
--expiration-time
Specify the time (in minutes) a cached calibration is
considered valid. If older than the given value, a new
calibration is done. A value of -1 means no expiration and
cached value are kept forever unless cleared by userwith the
calibration clear option. A value of 0 means cache is disabled.
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.
--swcrop
Requests the driver to detect the extremities of the paper
within the larger image, and crop the empty edges.
--swdeskew
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
pixels.
--swderotate[=(yes|no)] [no]
Request driver to detect and correct 90 degree image
rotation.
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.
/etc/sane.d/genesys.conf
The backend configuration file (see also description of
SANE_CONFIG_DIR below).
/usr/lib/arch_triplet/sane/libsane-genesys.a
The static library implementing this backend.
/usr/lib/arch_triplet/sane/libsane-genesys.so
The shared library implementing this backend (present on systems
that support dynamic loading).
SANE_CONFIG_DIR
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).
SANE_DEBUG_GENESYS
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.
SANE_DEBUG_GENESYS_LOW
This environment variable controls the debug level for low level
functions common to all genesys ASICs.
SANE_DEBUG_GENESYS_GL646
This environment variable controls the debug level for the
specific GL646 code part.
SANE_DEBUG_GENESYS_GL841
This environment variable controls the debug level for the
specific GL841 code part.
SANE_DEBUG_GENESYS_GL843
This environment variable controls the debug level for the
specific GL843 code part.
SANE_DEBUG_GENESYS_GL847
This environment variable controls the debug level for the
specific GL847 code part.
SANE_DEBUG_GENESYS_GL124
This environment variable controls the debug level for the
specific 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 (http://www.cncsolutions.com.br) sponsored and supported
the work on the Panasonic KV-SS080.
Brian Paavo from Benthic Science Limited for donating a Canoscan LiDE
700F.
Dany Qumsiyeh for donating a Canoscan LiDE 210 and a LiDE 220.
sane(7), sane-usb(5)
Oliver Rauch Henning Meier-Geinitz <[email protected]> Gerhard Jaeger <[email protected]> Stphane Voltz <[email protected]> Philipp Schmid <[email protected]> Pierre Willenbrock <[email protected]> Alexey Osipov <[email protected]> for HP2400 final support
Powersaving isn't implemented for gl646 based scanner. Dynamic (emulated from gray data and with dithering) isn't enabled for gl646 scanners. Hardware lineart is limited up to 600 dpi for gl847 based scanners, 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)
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.