Scanner Access Now Easy ― Backends
Go to file
Wolfram Sang 3e8cd75207 Merge branch 'document_fw_usage' into 'master'
add firmware names to description comments

See merge request sane-project/backends!830
2024-02-27 10:07:15 +00:00
ChangeLogs Update DMC author's contact details 2023-12-11 22:15:30 -05:00
backend Merge branch 'epson2/ignore_cancel' into 'master' 2024-02-04 19:07:33 +00:00
doc artec_eplus48u: desc: add firmware names to comments 2024-02-15 20:12:20 +01:00
frontend Correctly set O_NONBLOCK flag and disallow further reception using shutdown on saned data fd once a connection is open. 2023-10-07 22:51:00 +01:00
include avision: added ADF and lightbox installed options. 2023-02-19 15:08:59 -08:00
japi Use URL to refer users to copies of the GPL and LGPL 2021-02-12 17:41:38 +09:00
lib Use URL to refer users to copies of the GPL and LGPL 2021-02-12 17:41:38 +09:00
m4 m4: Move byteorder.m4 back to m4/ directory 2019-07-06 21:48:15 +09:00
newsfragments Resolve "[hp5590] Read only values aren't accessible via CLI options (unrecognized option)" 2022-02-21 22:13:28 +00:00
patches Collect patches in one place and distribute them 2021-01-31 16:51:01 +09:00
po update french translation 2024-02-01 03:35:24 +00:00
sanei sanei_usb: Fix build with libxml2 2.12 2023-11-28 21:35:01 +01:00
testsuite genesys: corrections to include file order. 2022-10-02 18:14:25 -07:00
tools Drop ldflags from the file 2022-11-30 15:31:19 +01:00
.editorconfig Add escl backend 2019-12-14 08:13:54 +00:00
.gitignore Prepare backend build files 2022-11-24 12:08:29 +01:00
.gitlab-ci.yml CI: Workaround build failures on Alpine 2023-11-07 00:13:37 +03:00
AUTHORS Merge branch 'lexmark_X2670_backend' into 'master' 2024-01-01 23:11:26 +00:00
COPYING COPYING: Sync with current plain text version on the FSF site 2021-02-12 18:34:45 +09:00
ChangeLog ChangeLog: Fix awkward grammar 2019-07-14 17:08:08 +09:00
INSTALL.linux spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
LICENSE Update references to the SANE standard 2020-03-05 21:14:34 +09:00 Add extra documentation and utility file to the source tarball 2021-02-14 16:01:01 +09:00
NEWS Merge tag '1.2.1' 2024-01-17 15:54:42 -08:00
PROBLEMS doc/saned: Improve security warnings 2022-04-14 19:45:56 -04:00
PROJECTS Removed link to BeOS (link goes to nowhere, SANE website has links to 2005-10-03 14:29:30 +00:00
README apt install also requires sudo 2023-05-08 11:00:00 +00:00
README.aix .editorconfig: trim trailing blank lines 2017-05-29 21:14:30 +09:00
README.beos .editorconfig: trim trailing whitespace 2017-05-29 21:14:29 +09:00
README.darwin New date for good libusb from CVS 2005-09-17 04:48:55 +00:00
README.djpeg .editorconfig: trim trailing whitespace 2017-05-29 21:14:29 +09:00
README.freebsd .editorconfig: trim trailing whitespace 2017-05-29 21:14:29 +09:00
README.hp-ux .editorconfig: trim trailing whitespace 2017-05-29 21:14:29 +09:00
README.linux .editorconfig: trim trailing whitespace 2017-05-29 21:14:29 +09:00
README.netbsd spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
README.openbsd Fix typo 2019-06-30 12:45:03 +09:00
README.os2 spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
README.solaris spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
README.unixware2 spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
README.unixware7 spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00 spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
README.zeta spelling fixes for docs, READMEs, ... 2020-08-29 09:18:04 +02:00
acinclude.m4 Always use pthreads for macOS 2024-01-11 20:20:47 -08:00 Reconstruct version from ChangeLog files (for CI) 2023-11-07 23:34:24 +03:00 Merge branch 'lexmark_X2670_backend' into 'master' 2023-12-10 18:36:08 +00:00
towncrier.toml Setup release notes build using towncrier 2022-01-18 22:12:17 +02:00


How to configure, build, and install SANE.

SANE stands for Scanner Access Now Easy.
This package contains the SANE libraries (this means backends and
network scanning parts) and the command line frontend scanimage.
You always find the most recent version of SANE on:

At the same location there are also links to snapshots of the Git server and
sometimes beta releases of sane-backends. These are unstable development
versions, so be careful when using them. Please report any problems to us. See
contact section for details.

There are several graphical frontends available for SANE, see the list at

Quick install:

./    # only if you just cloned the git repository
make install

man sane

Pre-built binaries:

In addition to versions included in releases, some platforms have more current versions available.

Ubuntu PPA

sudo add-apt-repository ppa:sane-project/sane-release
sudo apt update
sudo apt install libsane libsane-common sane-utils


In order to build SANE, the following tools and libraries are required:

	- GNU make: version 3.70 or newer

	- ISO C99 compiler: GNU C (gcc) is recommended for best results,
	  but any ISO C99 compliant compiler should do

Some more libraries are not strictly necessary to compile SANE, but some
functionality may be lost if they are not available. Make sure that these
libraries and their respective header files are available before running
configure. On some Linux distributions the header files are part of separate
packages (e.g. usb.h in libusb-devel or libusb-dev). These must also be

        - libusb: Strongly recommended if you use a USB scanner.
          Some backends won't work without libusb at all.

        - libjpeg (>=6B): For the dc210, dc240, and gphoto2 backends.

        - libieee1284 (>=0.1.5): For some parallel port backends.

        - libgphoto2 (>=2.0): For the gphoto2 backend.

        - a C++11 compliant C++ compiler for the genesys backend.

If you got the source straight from the git repository, as opposed to
a source tarball, you will need a few more utilities.  These utilities
should normally *not* be needed for source archives downloaded from
the project's website at

        - autoconf (>= 2.69) as well as the autoconf-archive (for the

        - automake (>=1.15)

        - libtool (>=2.4.6)

        - gettext (>=0.19.8)

        - git (>= 2.1.4)

SANE should build on most Unix-like systems. Support for OS/2, MacOS X, BeOS,
and Microsoft Windows is also available. For more details look at the
operating system specific README.* files. For a detailed support matrix, see:

This table may be out of date. Please tell us about any corrections or
additions. Please mention your operating system and platform and all the other
details mentioned in the table. See also the contact section.

Please check that there aren't any older versions of SANE installed on your
system. Especially if SANE libraries are installed in a different prefix
directory (e.g. /usr/lib/) this may cause problems with external
frontends. Please remove these libraries (libsane.*, sane/libsane-*) by using
your package manager or manually before installing this version of SANE.


Simply invoke configure in the top-level directory.  Besides the usual GNU
configure options, there are the following SANE specific options:

	Don't use shared libraries.  Useful for debugging or when there
	is a problem building shared libraries.  This implicitly turns
	on --disable-dynamic --enable-static as well.

	Disable dynamic loading of backends (in the dll backend).
	configure normally turns on dynamic loading when it
	can find the appropriate header files and libraries
	(<dlfcn.h> and -ldl).

        Use static libraries (turned off by default).

        Preload backends into DLL backend.  This is useful for debugging,
	when dynamic loading is unavailable, to reduce runtime linking
	overheads, or when you only want to distribute a single DLL with
	all backends available.  If dynamic loading or shared libraries are
	unavailable or disabled, this option is turned on automatically.

        Specify the buffer size of the buffer for SCSI commands. The default
	value is 131072 bytes (128 kb). This may be changed at runtime by
	setting	the environment variable SANE_SG_BUFFERSIZE to the desired
	value. The option is Linux-only at this time.
	--enable-scsibuffersize and SANE_SG_BUFFERSIZE have no effect for
	the Mustek, Umax and Sharp backends. For these backends, the buffer
	size is set automatically and/or can be specified in the backend's
	configuration file. Please refer to the backend's man pages for

	Means, that some backends will use a lockfile for allowing multiple
	access to one scanner. This is useful, i.e. one frontend is scanning
	the button status and another one will scan. The path to the lock
	files is defined by --localstatedir at the configure step and is
	$localstatedir/lock. The default group is uucp and can be changed
	by using --with-group=newgroup. If you do not want any backend to
	use a lockfile, simply use --disable-locking.
	Note: The Plustek backend is currently the only backend that makes
	      use of this feature.

To limit the backends that are compiled, set the variable BACKENDS to
the list of backends to compile.  The following will limit compiling
to the epson2 and fujitsu backends:

  ./configure BACKENDS="epson2 fujitsu"

To limit the backends that are preloaded into the DLL, set the variable
PRELOADABLE_BACKENDS.  The following will limit compiling to the epson2
and fujitsu backends but only preloads the epson2 backend:

  ./configure BACKENDS="epson2 fujitsu" PRELOADABLE_BACKENDS="epson2"

In addition to these configuration options, there are some more SANE-specific
options and many standard-options.  To get a description of available options,
invoke configure with option --help.

If you plan on debugging one of the SANE programs, we recommend to run
configure like this:

   CFLAGS="-g -O -Wall" ./configure --disable-shared

For operating system specific information, look at the README.* files.


To build SANE, simply type "make" in the top-level directory.

To clean up the executables and libraries in the source directory, type "make
clean". To restore everything to the status after unpacking the package, type
"make distclean".

Installation and Configuration

Once the build has finished, install SANE with "make install".  By
default, this will place the SANE libraries in /usr/local/lib/, the
configuration files in /usr/local/etc/sane.d/, and the manual pages in
/usr/local/man/.  The location of these directories can be overridden
with configure options; see "configure --help" for details.

Before running any SANE program, read the PROBLEMS file in this directory.

For information on configuring and trouble-shooting the various SANE
components, please refer to the manual page sane(7).

The tools/ directory contains some small programs that may be helpful. They
are described in tools/README.


Type "make uninstall" to remove SANE from your system. This will also remove
older versions of SANE if they have been installed at the same prefix.
Warning: Your configuration files will be deleted also so make sure you have a
backup. By default the configuration files are located in the directory


For questions and general discussion about SANE contact the sane-devel mailing
list. You must be subscribed to the list to send mail. See for details.

If you want to submit a bug report or feature request please use our bug
tracking system.  See for details. You
may also contact the author of a specific backend directly. See the AUTHORS
file for a list of addresses.