sane(7) SANE Scanner Access Now Easy sane(7)NAMEsane - Scanner Access Now Easy: API for accessing scanners
DESCRIPTION
SANE is an application programming interface (API) that
provides standardized access to any raster image scanner
hardware. The standardized interface makes it possible to
write just one driver for each scanner device instead of
one driver for each scanner and application.
While SANE is primarily targeted at a UNIX environment,
the standard has been carefully designed to make it possi-
ble to implement the API on virtually any hardware or
operating system.
This manual page provides a summary of the information
available about SANE.
If you have trouble getting your scanner detected, read
the PROBLEMS section.
TERMINOLOGY
An application that uses the SANE interface is called a
SANE frontend. A driver that implements the SANE inter-
face is called a SANE backend. A meta backend provides
some means to manage one or more other backends.
SOFTWARE PACKAGES
The package `sane-backends' contains a lot of backends,
documentation (including the SANE standard), networking
support, and the command line frontend `scanimage'. The
frontends `xscanimage', `xcam', and `scanadf' are included
in the package `sane-frontends'. Both packages can be
downloaded from the SANE homepage
(http://www.mostang.com/sane/). Information about other
frontends and backends can be found on the frontend page
(http://www.mostang.com/sane/frontends.html).
GENERAL INFORMATION
The following sections provide short descriptions and
links to more information about several aspects of SANE.
A name with a number in parenthesis (e.g. `sane-dll(5)')
points to a manual page. In this case `man 5 sane-dll'
will display the page. Entries like `/usr/free-
ware/share/doc/sane-backends/sane.tex' are references to
text files that were copied to the SANE documentation
directory (/usr/freeware/share/doc/sane-backends/) during
installation. Everything else is a URL to a resource on
the web.
SANE homepage
Information on all aspects of SANE including a tutorial
and a link to the SANE FAQ can be found on the SANE
homepage: http://www.mostang.com/sane/.
SANE device lists
The SANE device lists contain information about the sta-
tus of SANE support for a specific device. If your scan-
ner is not listed there (either supported or unsup-
ported), please contact us. See section HOW CAN YOU HELP
SANE for details. There are lists for specific releases
of SANE, for the current development version and a
search engine: http://www.mostang.com/sane/sane-sup-
ported-devices.html. The lists are also installed on
your system at /usr/freeware/share/doc/sane-backends/.
SANE mailing list
There is a mailing list for the purpose of discussing
the SANE standard and its implementations: sane-devel.
Despite its name, the list is not only intended for
developers, but also for users. Since this is currently
the only mailing list devoted to SANE, it's perfectly OK
to ask questions that are not strictly related to SANE
development. How to subscribe and unsubscribe:
http://www.mostang.com/sane/mail.html.
SANE IRC channel
The IRC (Internet Relay Chat) channel #sane can be found
on the Freenode network (irc.freenode.net). It's for
discussing SANE problems, talking about development and
general SANE related chatting. Before asking for help,
please read the other documentation mentioned in this
manual page.
Compiling and installing SANE
Look at /usr/freeware/share/doc/sane-backends/README and
the os-dependent README files for information about com-
piling and installing SANE.
SCSI configuration
For information about various systems and SCSI con-
trollers see sane-scsi(5).
USB configuration
For information about USB configuration see sane-usb(5).
FRONTENDS AND MISCELLANEOUS PROGRAMS
scanimage
Command-line frontend. See scanimage(1).
saned
SANE network daemon that allows remote clients to access
image acquisition devices available on the local host.
See saned(1).
sane-find-scanner
Command-line tool to find SCSI and USB scanners and
determine their Unix device files. See sane-find-scan-
ner(1).
Also, have a look at the sane-frontends package (including
xscanimage, xcam, and scanadf) and the frontend informa-
tion page at http://www.mostang.com/sane/sane-fron-
tends.html.
BACKENDS FOR SCANNERS
abaton
The SANE backend for Abaton flatbed scanners supports
the Scan 300/GS (8bit, 256 levels of gray) and the Scan
300/S (black and white, untested). See sane-abaton(5)
for details.
agfafocus
This backend supports AGFA Focus scanners and the
Siemens S9036 (untested). See sane-agfafocus(5) for
details.
apple
The SANE backend for Apple flatbed scanners supports the
following scanners: AppleScanner, OneScanner and Col-
orOneScanner. See sane-apple(5) for details.
artec
The SANE Artec backend supports several Artec/Ultima
SCSI flatbed scanners as well as the BlackWidow BW4800SP
and the Plustek 19200S. See sane-artec(5) for details.
artec_eplus48u
The SANE artec_eplus48u backend supports the scanner
Artec E+ 48U and re-badged models like Tevion MD 9693,
Medion MD 9693, Medion MD 9705 and Trust Easy Webscan
19200. See sane-artec_eplus48u(5) for details.
as6e
This is a SANE backend for using the Artec AS6E parallel
port interface scanner. See sane-as6e(5) for details.
avision
This backend supports several Avision based scanners.
This includes the original Avision scanners (like AV
630, AV 620, ...) as well as the HP ScanJet 53xx and
74xx series, Fujitsu ScanPartner, some Mitsubishi and
Minolta film-scanners. See sane-avision(5) for details.
bh
The bh backend provides access to Bell+Howell Copiscan
II series document scanners. See sane-bh(5) for details.
canon
The canon backend supports the CanoScan 300, CanoScan
600, and CanoScan 2700F SCSI flatbed scanners. See
sane-canon(5) for details.
canon630u
The canon630u backend supports the CanoScan 630u and
636u USB scanners. See sane-canon630u(5) for details.
canon_pp
The canon_pp backend supports the CanoScan FB330P,
FB630P, N340P and N640P parallel port scanners. See
sane-canon_pp(5) for details.
coolscan
This is a SANE backend for Nikon Coolscan film-scanners.
See sane-coolscan(5) for details.
coolscan2
This is a SANE backend for Nikon Coolscan film-scanners.
See sane-coolscan2(5) or http://coolscan2.source-
forge.net for details.
epson
The SANE epson backend provides support for Epson SCSI,
parallel port and USB flatbed scanners. See
sane-epson(5) for details.
fujitsu
The fujitsu backend provides support for Fujitsu 3091,
3093, 3096 and fi-4340 SCSI scanners. See
sane-fujitsu(5) for details.
gt68xx
The gt68xx backend provides support for scanners based
on the Grandtech GT-6801 and GT-6816 chips like the
Artec Ultima 2000 and several Mustek BearPaw CU and TA
models. Some Genius, Lexmark, Medion, Packard Bell,
Plustek, and Trust scanners are also supported. See
sane-gt68xx(5) for details.
hp
The SANE hp backend provides access to Hewlett-Packard
ScanJet scanners which support SCL (Scanner Control Lan-
guage by HP). See sane-hp(5) for details.
hpsj5s
The SANE backend for the Hewlett-Packard ScanJet 5S
scanner. See sane-hpsj5s(5) for details.
hp5400
The SANE backend for the Hewlett-Packard ScanJet 54XXC
series. See sane-hp5400(5) for details.
ibm
The SANE backend for some IBM and Ricoh SCSI scanners.
See sane-ibm(5) for details.
leo
This backend supports the Leo S3 and the Across FS-1130,
which is a re-badged LEO FS-1130 scanner. See
sane-leo(5) for details.
ma1509
The ma1509 backend supports the Mustek BearPaw 1200F USB
flatbed scanner. See sane-ma1509(5) for details.
matsushita
This backend supports some Panasonic KVSS high speed
scanners. See sane-matsushita(5) for details.
microtek
The microtek backend provides access to the "second gen-
eration" Microtek scanners with SCSI-1 command set. See
sane-microtek(5) for details.
microtek2
The microtek2 backend provides access to some Microtek
scanners with a SCSI-2 command set. See
sane-microtek2(5) for details.
mustek
The SANE mustek backend supports most Mustek SCSI
flatbed scanners including the Paragon and ScanExpress
series and the 600 II N (non-SCSI). Some Trust scanners
are also supported. See sane-mustek(5) for details.
mustek_pp
The mustek_pp backend provides access to Mustek parallel
port flatbed scanners. See sane-mustek_pp(5) for
details.
mustek_usb
The mustek_usb backend provides access to some Mustek
ScanExpress USB flatbed scanners. See sane-mustek_usb(5)
for details.
nec
The SANE nec backend supports the NEC PC-IN500/4C SCSI
scanner. See sane-nec(5) for details.
pie
The pie backend provides access to Pacific Image Elec-
tronics (PIE) and Devcom SCSI flatbed scanners. See
sane-pie(5) for details.
plustek
The SANE plustek backend supports Plustek parallel port
and LM983[1/2/3] based USB flatbed scanners. Scanners
using the LM983x chips include some models from Plustek,
KYE/Genius, Hewlett-Packard, Mustek, Umax, Epson, and
Canon. See sane-plustek(5) for details.
ricoh
The ricoh backend provides access to the following Ricoh
flatbed scanners: IS50 and IS60. See sane-ricoh(5) for
details.
s9036
The s9036 backend provides access to Siemens 9036
flatbed scanners. See sane-s9036(5) for details.
sceptre
The sceptre backend provides access to the Sceptre S1200
flatbed scanner. See sane-sceptre(5)
for details.
sharp
The SANE sharp backend supports Sharp SCSI scanners. See
sane-sharp(5) for details.
sm3600
The SANE sm3600 backend supports the Microtek ScanMaker
3600 USB scanner. See sane-sm3600(5) for details.
snapscan
The snapscan backend supports AGFA SnapScan flatbed
scanners. See sane-snapscan(5) for details.
sp15c
This backend supports the Fujitsu FCPA ScanPartner 15C
flatbed scanner. See sane-sp15c(5) for details.
st400
The sane-st400 backend provides access to Siemens ST400
and ST800. See sane-st400(5) for details.
tamarack
The SANE tamarack backend supports Tamarack Artiscan
flatbed scanners. See sane-tamarack(5) for details.
teco1 teco2 teco3
The SANE teco1, teco2 and teco3 backends support some
TECO scanners, usually sold under the Relisys, Trust,
Primax, Piotech, Dextra names. See sane-teco1(5),
sane-teco2(5) and sane-teco3(5) for details.
umax
The sane-umax backend provides access to several UMAX-
SCSI-scanners and some Linotype Hell SCSI-scanners. See
sane-umax(5) for details.
umax_pp
The sane-umax_pp backend provides access to Umax paral-
lel port flatbed scanners and the HP 3200C. See
sane-umax_pp(5) for details.
umax1200u
The sane-umax1220u backend supports the UMAX Astra 1220U
(USB) flatbed scanner (and also the UMAX Astra 2000U,
sort of). See sane-umax1220u(5) for details.
Also, have a look at the backend information page at
http://www.mostang.com/sane/sane-supported-devices.html
and the list of projects in /usr/freeware/share/doc/sane-
backends/PROJECTS.
BACKENDS FOR DIGITAL CAMERAS
dc210
Backend for Kodak DC210 Digital Camera. See
sane-dc210(5).
dc240
Backend for Kodak DC240 Digital Camera. See
sane-dc240(5).
dc25
Backend for Kodak DC20/DC25 Digital Cameras. See
sane-dc25(5).
dmc
Backend for the Polaroid Digital Microscope Camera. See
sane-dmc(5).
gphoto2
Backend for digital cameras supported by the gphoto2
library package. (See http://www.gphoto.org for more
information and a list of supported cameras.) Gphoto2
supports over 140 different camera models. However,
please note that more development and testing is needed
before all of these cameras will be supported by SANE
backend. See sane-gphoto2(5).
qcam
Backend for Connectix QuickCam cameras. See
sane-qcam(5).
Also, have a look at the backend information page at
http://www.mostang.com/sane/sane-supported-devices.html
and the list of projects in /usr/freeware/share/doc/sane-
backends/PROJECTS.
MISCELLANEOUS BACKENDS
dll
The sane-dll library implements a SANE backend that pro-
vides access to an arbitrary number of other SANE back-
ends by dynamic loading. See sane-dll(5).
net
The SANE network daemon saned provides access to scan-
ners located on different computers in connection with
the net backend. See sane-net(5) and saned(1).
pnm
PNM image reader pseudo-backend. The purpose of this
backend is primarily to aid in debugging of SANE fron-
tends. See sane-pnm(5).
pint
Backend for scanners that use the PINT (Pint Is Not
Twain) device driver. The PINT driver is being actively
developed on the OpenBSD platform, and has been ported
to a few other *nix-like operating systems. See
sane-pint(5).
test
The SANE test backend is for testing frontends and the
SANE installation. It provides test pictures and vari-
ous test options. See sane-test(5).
v4l
The sane-v4l library implements a SANE backend that pro-
vides generic access to video cameras and similar equip-
ment using the V4L (Video for Linux) API. See
sane-v4l(5).
Also, have a look at the backend information page at
http://www.mostang.com/sane/sane-supported-devices.html
and the list of projects in /usr/freeware/share/doc/sane-
backends/PROJECTS.
CHANGING THE TOP-LEVEL BACKEND
By default, all SANE backends (drivers) are loaded dynami-
cally by the sane-dll meta backend. If you have any ques-
tions about the dynamic loading, read sane-dll(5). SANE
frontend can also be linked to other backends directly by
copying or linking a backend to libsane.so in /usr/free-
ware/lib32/sane.
DEVELOPER'S DOCUMENTATION
It's not hard to write a SANE backend. It can take some
time, however. You should have basic knowledege of C and
enough patience to work through the documentation and find
out how your scanner works. Appended is a list of some
documents that help to write backends and frontends.
The SANE standard defines the application programming
interface (API) that is used to communicate between fron-
tends and backends. It can be found at /usr/free-
ware/share/doc/sane-backends/sane.ps (if latex is
installed on your system) and on the SANE website:
http://www.mostang.com/sane/html/ (HTML), or
http://www.mostang.com/sane/sane.ps (Postscript).
There is some more information for programmers in
/usr/freeware/share/doc/sane-backends/backend-writing.txt.
Most of the internal SANE routines (sanei) are documented
using doxygen: http://sanei.meier-geinitz.de/. Before a
new backend or frontend project is started, have a look at
/usr/freeware/share/doc/sane-backends/PROJECTS for pro-
jects that are planned or not yet included into the SANE
distribution and at the todo list: /usr/free-
ware/share/doc/sane-backends/TODO.
There are some links on how to find out about the protocol
of a scanner: http://www.meier-
geinitz.de/sane/misc/develop.html.
If you start writing a backend or frontend or any other
part of SANE, please contact the sane-devel mailing list
for coordination so the same work isn't done twice.
FILES
/usr/freeware/etc/sane.d/*.conf
The backend configuration files.
/usr/freeware/lib32/sane/libsane-*.a
The static libraries implementing the backends.
/usr/freeware/lib32/sane/libsane-*.so
The shared libraries implementing the backends
(present on systems that support dynamic loading).
/usr/freeware/share/doc/sane-backends/*
SANE documentation: The standard, READMEs, text
files for backends etc.
PROBLEMS
If your device isn't found but you know that it is sup-
ported, make sure that it is detected by your operating
system. For SCSI and USB scanners, use the sane-find-scan-
ner tool (see sane-find-scanner(1) for details). It prints
one line for each scanner it has detected and some com-
ments (#). If sane-find-scanner finds your scanner only as
root but not as normal user, the permissions for the
device files are not adjusted correctly. If the scanner
isn't found at all, the operating system hasn't detected
it and may need some help. Depending on the type of your
scanner, read sane-usb(5) or sane-scsi(5). If your scan-
ner (or other device) is not connected over the SCSI bus
or USB, read the backend's manual page for details on how
to set it up.
Now your scanner is detected by the operating system but
not by SANE? Try scanimage -L. If the scanner is not
found, check that the backend's name is mentioned in
/usr/freeware/etc/sane.d/dll.conf. Some backends are com-
mented out by default. Remove the comment sign for your
backend in this case. Also some backends aren't compiled
at all if one of their prerequisites are missing. Examples
include dc210, dc240, canon_pp, hpsj5s, gphoto2, pint,
qcam, v4l, net, sm3600, snapscan, pnm. If you need one of
these backends and they aren't available, read the build
instructions in the README file and the individual manual
pages of the backends.
Another reason for not beeing detected by scanimage -L may
be a missing or wrong configuration in the backend's con-
figuration file. While SANE tries to automatically find
most scanners, some can't be setup correctly without the
intervention of the administrator. Also on some operating
systems auto-detection may not work. Check the backend's
manual page for details.
If your scanner is still not found, try setting the vari-
ous environment variables that are available to assist in
debugging. The environment variables are documented in
the relevant manual pages. For example, to get the
maximum amount of debug information when testing a Mustek
SCSI scanner, set environment variables SANE_DEBUG_DLL,
SANE_DEBUG_MUSTEK, and SANE_DEBUG_SANEI_SCSI to 128 and
then invoke scanimage -L . The debug messages for the dll
backend tell if the mustek backend was found and loaded at
all. The mustek messages explain what the mustek backend
is doing while the SCSI debugging shows the low level han-
dling. If you can't find out what's going on by checking
the messages carefully, contact the sane-devel mailing
list for help (see REPORTING BUGS below).
Now that your scanner is found by scanimage -L, try to do
a scan: scanimage >image.pnm. This command starts a scan
for the default scanner with default settings. All the
available options are listed by running scanimage --help.
If scanning aborts with an error message, turn on debug-
ging as mentioned above. Maybe the configuration file
needs some tuning, e.g. to setup the path to a firmware
that is needed by some scanners. See the backend's maunal
page for details. If you can't find out what's wrong, con-
tact sane-devel.
To check that the SANE libraries are installed correctly
you can use the test backend, even if you don't have a
scanner or other SANE device:
scanimage -d test -T
You should get a list of PASSed tests. You can do the same
with your backend by changing "test" to your backend's
name.
So now scanning with scanimage works and you want to use
one of the graphical frontends like xsane, xscanimage, or
quiteinsane but those frontends don't detect your scanner?
One reason may be that you installed two versions of SANE.
E.g. the version that was installed by your distribution
in /usr and one you installed from source in /usr/local/.
Make sure that only one version is installed. Another pos-
sible reason is, that your system's dynamic loader can't
find the SANE libraries. For Linux, make sure that
/etc/ld.so.conf contains /usr/local/lib and does not con-
tain /usr/local/lib/sane. See also the documentation of
the frontends.
HOW CAN YOU HELP SANE
We appreciate any help we can get. Here are some topics on
which you can work:
Writing backends
Without a backend, a scanner doesn't work. So it's
crucial we have backends for as much devices as
possible. It's not necessary to be an experienced
programmer to start writing a backend. If you have
an unsupported scanner, writing a backend yourself
is probably the only way to get it supported. See
DEVELOPER'S DOCUMENTATION for details. But first
make sure that you get any information about your
scanner that is available (see below), and check if
your scanner can be supported by an already exist-
ing backend with only small modifications.
Writing frontends
There are already some very capable frontends. So
helping with improving the existing frontends may
make more sense than to write yet another one. On
the other hand there may be reasons to start writ-
ing a completely new frontend, like support for a
specific widget set, a programming language or a
special type of devices (e.g. cameras, slide scan-
ners). In any case, keep the sane-devel mailinglist
informed of your plans.
Reporting unsupported scanners
Even if you can't write a backend for your unsup-
ported scanner, please send us all the information
you have about it. We need the make and the model
name of your scanner. Also provide an output of
sane-find-scanner -v -v. For Linux: If it's a SCSI
scanner, show us the output of cat /proc/scsi/scsi,
for a USB scanner: cat /proc/bus/usb/devices (if
the file is not there, do mount -t usbdevfs
/proc/bus/usb /proc/bus/usb). See CONTACT section.
Reporting bugs and missing features
If you think something in SANE isn't working as it
should, please don't hesiate to contact us (see
COTACT scetion). Please provide as many details as
possible. Describe which software you are using
(operating system + version, distribution, version
of sane-backends and of the frontend you use).
Explain exactly what doesn't work, is wrong or
missing.
Adding and fixing documentation
If you found a bug in any documentation (man pages,
web site, READMEs), please contact us (see CONTACT
section). Also write us if you think some documen-
tation is missing. Please include a patch in this
case, if possible. Don't hesitate to send spelling
and grammar mistakes.
Translations
The options of the backends can be translated. For
some languages, the translations are almost com-
plete, but some are lacking a lot of words and for
most languages there is no translation at all. If
you want to help to translate the options to your
native language (or a language you speak fluently),
contact the sane-devel mailing list and have a look
at the po/ directory in the source code.
Success reports
If you had success using SANE we want to know about
that, too. Especially if your scanner is not in the
lists yet or is marked "untested".
CONTACT
If you want to comment on a backend-specific problem, con-
tact the author of your backend. Usually the email address
can be found in the /usr/freeware/share/doc/sane-back-
ends/AUTHORS file or the backend's manpage. If the author
isn't marked as `active maintainer' or doesn't answer, you
can also contact the SANE mailing list sane-devel (see
http://www.mostang.com/sane/mail.html for details). You
must be subscribed to the list, otherwise your mail won't
be sent to the subscribers.
If you want to report bugs concerning security,
compilation, installation, porting, and documentation of
SANE, you can also contact the author of this manual page:
<henning@meier-geinitz.de>.
SEE ALSOsaned(1), sane-find-scanner(1), scanimage(1), sane-aba-
ton(5), sane-agfafocus(5), sane-apple(5), sane-artec(5),
sane-artec_eplus48u(5), sane-as6e(5), sane-avision(5),
sane-bh(5), sane-canon(5), sane-canon630u(5),
sane-canon_pp(5), sane-coolscan2(5), sane-coolscan(5),
sane-dc210(5), sane-dc240(5), sane-dc25(5), sane-dll(5),
sane-dmc(5), sane-epson(5), sane-fujitsu(5),
sane-gphoto2(5), sane-gt68xx(5), sane-hp(5),
sane-hpsj5s(5), sane-hp5400(5)sane-ibm(5), sane-leo(5),
sane-ma1509(5), sane-matsushita(5), sane-microtek2(5),
sane-microtek(5), sane-mustek(5), sane-mustek_pp(5),
sane-mustek_usb(5), sane-nec(5), sane-net(5), sane-pie(5),
sane-pint(5), sane-plustek(5), sane-pnm(5), sane-qcam(5),
sane-ricoh(5), sane-s9036(5), sane-sceptre(5),
sane-scsi(5), sane-sharp(5), sane-sm3600(5), sane-snap-
scan(5), sane-sp15c(5), sane-st400(5), sane-tamarack(5),
sane-teco1(5), sane-teco2(5), sane-teco3(5), sane-test(5),
sane-umax1220u(5), sane-umax(5), sane-umax_pp(5),
sane-usb(5), sane-v4l(5)AUTHOR
David Mosberger-Tang and many many more (see /usr/free-
ware/share/doc/sane-backends/AUTHORS for details). This
man page was written by Henning Meier-Geinitz. Quite a lot
of text was taken from the SANE standard, several man
pages, and README files.
sane-backends 1.0.12 19 Apr 2003 sane(7)