Man Linux: Main Page and Category List


       sane - Scanner Access Now Easy: API for accessing scanners


       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

       While  SANE  is  primarily targeted at a UNIX environment, the standard
       has been carefully designed to make it possible to implement the API on
       virtually any hardware or operating system.

       This  manual page provides a summary of the information available about

       If you have trouble getting your scanner detected,  read  the  PROBLEMS


       An  application that uses the SANE interface is called a SANE frontend.
       A driver that implements the SANE interface is called a  SANE  backend.
       A  meta  backend  provides  some  means  to  manage  one  or more other


       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
       (   Information about other frontends and
       backends can also be found on the SANE homepage.


       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/share/doc/libsane/sane.tex’ are references  to  text  files  that
       were     copied     to     the     SANE     documentation     directory
       (/usr/share/doc/libsane/) 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:

       SANE device lists
         The  SANE  device  lists contain information about the status of SANE
         support for a specific device. If your scanner is  not  listed  there
         (either supported or unsupported), 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:   The  lists
         are also installed on your system at /usr/share/doc/libsane/.

       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. There
         are also some more lists for  special  topics,  however,  for  users,
         sane-devel  is  the  right  list.  How  to subscribe and unsubscribe:

       SANE IRC channel
         The IRC (Internet Relay Chat) channel  #sane  can  be  found  on  the
         Freenode   network   (  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. The channel’s topic is also  used  for
         announcements  of  problems  with SANE infrastructure (mailing lists,
         web server, etc.).

       Compiling and installing SANE
         Look at /usr/share/doc/libsane/README  and  the  os-dependent  README
         files for information about compiling and installing SANE.

       SCSI configuration
         For  information  about  various  systems  and  SCSI  controllers see

       USB configuration
         For information about USB configuration see sane-usb(5).


         Command-line frontend. See scanimage(1).

         SANE network daemon  that  allows  remote  clients  to  access  image
         acquisition devices available on the local host. See saned(8).

         Command-line  tool  to find SCSI and USB scanners and determine their
         Unix device files. See sane-find-scanner(1).

       Also, have a look at the sane-frontends package (including  xscanimage,
       xcam,   and   scanadf)   and   the   frontend   information   page   at


         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.

         This backend supports AGFA  Focus  scanners  and  the  Siemens  S9036
         (untested).  See sane-agfafocus(5) for details.

         The  SANE  backend  for Apple flatbed scanners supports the following
         scanners:   AppleScanner,   OneScanner   and   ColorOneScanner.   See
         sane-apple(5) for details.

         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.

         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.

         This is a SANE  backend  for  using  the  Artec  AS6E  parallel  port
         interface scanner. See sane-as6e(5) for details.

         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

         The  bh  backend  provides  access  to Bell+Howell Copiscan II series
         document scanners. See sane-bh(5) for details.

         The canon backend  supports  the  CanoScan  300,  CanoScan  600,  and
         CanoScan  2700F SCSI flatbed scanners. See sane-canon(5) for details.

         The canon630u  backend  supports  the  CanoScan  630u  and  636u  USB
         scanners.  See sane-canon630u(5) for details.

         The  canon_dr  backend  supports the Canon DR-Series ADF SCSI and USB
         scanners. See sane-canon_dr(5) for details.

         The canon_pp backend supports the CanoScan FB330P, FB630P, N340P  and
         N640P parallel port scanners.  See sane-canon_pp(5) for details.

         This  backend  provides  support for Corex Cardscan USB scanners. See
         sane-cardscan(5) for details.

         This  is  a  SANE  backend  for  Nikon  Coolscan  film-scanners.  See
         sane-coolscan(5) for details.

         This  is  a  SANE  backend  for  Nikon  Coolscan  film-scanners.  See
         sane-coolscan2(5) or for details.

         The epjitsu backend provides  support  for  Epson-based  Fujitsu  USB
         scanners. See sane-epjitsu(5) for details.

         The SANE epson backend provides support for Epson SCSI, parallel port
         and USB flatbed scanners. See sane-epson(5) for details.

         The fujitsu backend provides support for most Fujitsu SCSI  and  USB,
         flatbed and adf scanners. See sane-fujitsu(5) for details.

         The  genesys  backend  provides  support  for  scanners  based on the
         Genesys Logic GL646 and GL841 chips like the Medion 6471 and Hewlett-
         Packard  2300c.   Support  for GL841 based scanners is far from being
         complete. See sane-genesys(5) for details.

         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.

         The SANE  hp  backend  provides  access  to  Hewlett-Packard  ScanJet
         scanners  which  support  SCL  (Scanner  Control Language by HP). See
         sane-hp(5) for details.

         The SANE backend for the  Hewlett-Packard  ScanJet  5S  scanner.  See
         sane-hpsj5s(5) for details.

         The  SANE  backend  for  the Hewlett-Packard ScanJet 3500 series. See
         sane-hp3500(5) for details.

         The SANE backend for the Hewlett-Packard  ScanJet  3900  series.  See
         sane-hp3900(5) for details.

         The  SANE  backend  for  the Hewlett-Packard ScanJet 4200 series. See
         sane-hp4200(5) for details.

         The SANE backend for the Hewlett-Packard ScanJet  54XXC  series.  See
         sane-hp5400(5) for details.

         The  SANE backend for the Hewlett-Packard LaserJet M1005 scanner. See
         sane-hpljm1005(5) for details.

         The SANE backend for the Ricoh IS450 family  of  SCSI  scanners.  See
         sane-hs2p(5) for details.

         The   SANE  backend  for  some  IBM  and  Ricoh  SCSI  scanners.  See
         sane-ibm(5) for details.

         The SANE backend for some large Kodak scanners. See sane-kodak(5) for

         The    SANE   backend   for   Panasonic   KV-S102xC   scanners.   See
         sane-kvs1025(5) for details.

         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.

         This  backend  supports the Lexmark X1100 series of USB scanners. See
         sane-lexmark(5) for details.

         The ma1509 backend supports the  Mustek  BearPaw  1200F  USB  flatbed
         scanner. See sane-ma1509(5) for details.

         This  backend  supports  some Panasonic KVSS high speed scanners. See
         sane-matsushita(5) for details.

         The microtek backend  provides  access  to  the  "second  generation"
         Microtek  scanners  with SCSI-1 command set. See sane-microtek(5) for

         The microtek2 backend provides access to some Microtek scanners  with
         a SCSI-2 command set. See sane-microtek2(5) for details.

         The  SANE  mustek  backend supports most Mustek SCSI flatbed scanners
         including the Paragon and ScanExpress series and the 600 II N and 600
         II  EP  (non-SCSI).  Some  Trust  scanners  are  also  supported. See
         sane-mustek(5) for details.

         The mustek_pp backend provides access to Mustek parallel port flatbed
         scanners. See sane-mustek_pp(5) for details.

         The mustek_usb backend provides access to some Mustek ScanExpress USB
         flatbed scanners. See sane-mustek_usb(5) for details.

         The mustek_usb2 backend provides access to scanners using  the  SQ113
         chipset  like the Mustek BearPaw 2448 TA Pro USB flatbed scanner. See
         sane-mustek_usb2(5) for details.

         The SANE nec backend supports the NEC PC-IN500/4C SCSI  scanner.  See
         sane-nec(5) for details.

         The niash backend supports the Agfa Snapscan Touch and the HP ScanJet
         3300c, 3400c, and 4300c USB flatbed scanners. See  sane-niash(5)  for

         The  SANE backend for Primax PagePartner. See sane-p5(5) for details.

         The pie backend provides access to Pacific  Image  Electronics  (PIE)
         and Devcom SCSI flatbed scanners. See sane-pie(5) for details.

         The  pixma  backend  supports  Canon  PIXMA MP series (multi-function
         devices). See sane-pixma(5)  or
         for details.

         The  SANE  plustek backend supports USB flatbed scanners that use the
         National  Semiconductor  LM983[1/2/3]-chipset  aka  Merlin.  Scanners
         using this LM983x chips include some models from Plustek, KYE/Genius,
         Hewlett-Packard, Mustek, Umax, Epson, and Canon. See  sane-plustek(5)
         for details.

         The  SANE  plustek_pp  backend supports Plustek parallel port flatbed
         scanners.  Scanners using the Plustek ASIC P96001, P96003, P98001 and
         P98003  include  some  models  from  Plustek, KYE/Genius, Primax. See
         sane-plustek_pp(5) for details.

         The ricoh backend provides access  to  the  following  Ricoh  flatbed
         scanners: IS50 and IS60. See sane-ricoh(5) for details.

         The  s9036  backend provides access to Siemens 9036 flatbed scanners.
         See sane-s9036(5) for details.

         The sceptre backend provides access  to  the  Sceptre  S1200  flatbed
         scanner. See sane-sceptre(5) for details.

         The   SANE   sharp   backend   supports   Sharp  SCSI  scanners.  See
         sane-sharp(5) for details.

         The SANE sm3600 backend supports  the  Microtek  ScanMaker  3600  USB
         scanner. See sane-sm3600(5) for details.

         The  SANE  sm3840  backend  supports  the Microtek ScanMaker 3840 USB
         scanner.  See sane-sm3840(5) for details.

         The snapscan backend supports AGFA  SnapScan  flatbed  scanners.  See
         sane-snapscan(5) for details.

         This  backend  supports  the  Fujitsu  FCPA  ScanPartner  15C flatbed
         scanner. See sane-sp15c(5) for details.

         The sane-st400 backend provides access to Siemens  ST400  and  ST800.
         See sane-st400(5) for details.

         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.

         The sane-u12 backend provides USB flatbed scanners based on Plustek’s
         ASIC  98003  (parallel-port  ASIC)  and a GeneSys Logics’ USB-parport
         bridge chip like the Plustek OpticPro  U(T)12.  See  sane-u12(5)  for

         The  sane-umax  backend provides access to several UMAX-SCSI-scanners
         and some Linotype Hell SCSI-scanners. See sane-umax(5) for details.

         The sane-umax_pp  backend  provides  access  to  Umax  parallel  port
         flatbed scanners and the HP 3200C. See sane-umax_pp(5) for details.

         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 and the list of
       projects in /usr/share/doc/libsane/PROJECTS.


         Backend for Kodak DC210 Digital Camera. See sane-dc210(5).

         Backend for Kodak DC240 Digital Camera. See sane-dc240(5).

         Backend for Kodak DC20/DC25 Digital Cameras. See sane-dc25(5).

         Backend  for the Polaroid Digital Microscope Camera. See sane-dmc(5).

         Backend for digital cameras supported by the gphoto2 library package.
         (See  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).

         Backend for Connectix QuickCam cameras. See sane-qcam(5).

         The sane-st680 backend provides access to webcams with a stv680 chip.
         See sane-st680(5) for details.

       Also,   have   a   look   at   the   backend   information   page    at and the list of
       projects in /usr/share/doc/libsane/PROJECTS.


         The sane-dll library implements a SANE backend that  provides  access
         to an arbitrary number of other SANE backends by dynamic loading. See

         The SANE network daemon saned provides access to scanners located  on
         different   computers   in  connection  with  the  net  backend.  See
         sane-net(5) and saned(8).

         PNM image reader pseudo-backend.  The  purpose  of  this  backend  is
         primarily to aid in debugging of SANE frontends. See sane-pnm(5).

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

         The  SANE  test  backend  is  for  testing  frontends  and  the  SANE
         installation.   It  provides  test pictures and various test options.
         See sane-test(5).

         The sane-v4l library implements a SANE backend that provides  generic
         access  to  video  cameras and similar equipment using the V4L (Video
         for Linux) API. See sane-v4l(5).

       Also,   have   a   look   at   the   backend   information   page    at and the list of
       projects in /usr/share/doc/libsane/PROJECTS.


       By default, all SANE backends (drivers) are loaded dynamically  by  the
       sane-dll  meta  backend.  If  you  have any questions 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 in

       It’s not hard to write a SANE backend. It can take some time,  however.
       You  should  have  basic  knowledge  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 frontends and backends. It can be
       found at /usr/share/doc/libsane/ (if latex is installed on  your
       system)  and  on  the  SANE  website:
       (HTML), or (Postscript).

       There    is    some    more    information    for    programmers     in
       /usr/share/doc/libsane/backend-writing.txt.   Most of the internal SANE
       routines      (sanei)      are      documented      using      doxygen:   Before  a new backend or frontend
       project is started, have a look at /usr/share/doc/libsane/PROJECTS  for
       projects   that   are  planned  or  not  yet  included  into  the  SANE
       distribution      and      at      our       bug-tracking       system:

       There  are  some  links  on  how  to  find  out about the protocol of a

       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.


              The backend configuration files.

              The static libraries implementing the backends.

              The shared  libraries  implementing  the  backends  (present  on
              systems that support dynamic loading).

              SANE  documentation:  The  standard,  READMEs,  text  files  for
              backends etc.


       If your device isn’t found but you know that it is supported, make sure
       that  it  is  detected  by  your  operating  system.  For  SCSI and USB
       scanners, use the sane-find-scanner tool (see sane-find-scanner(1)  for
       details).  It prints one line for each scanner it has detected and some
       comments (#). 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 scanner (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 /etc/sane.d/dll.conf.  Some backends are
       commented  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

       Another  reason for not being detected by scanimage -L may be a missing
       or wrong configuration in the backend’s configuration 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 various 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 handling. 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

       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  debugging  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 manual page for details. If you
       can’t find out what’s wrong, contact 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

              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
       possible  reason  is,  that your system’s dynamic loader can’t find the
       SANE libraries. For Linux,  make  sure  that  /etc/  contains
       /usr/local/lib  and does not contain /usr/local/lib/sane.  See also the
       documentation of the frontends.


       We appreciate any help we can get. Please have a look at our  web  page
       about contributing to SANE:


       For  reporting  bugs  or  requesting  new features, please use our bug-
       tracking system:  You  can  also
       contact  the author of your backend directly. Usually the email address
       can  be  found  in  the  /usr/share/doc/libsane/AUTHORS  file  or   the
       backend’s  manpage.  For  general discussion about SANE, please use the
       SANE          mailing          list           sane-devel           (see for details).


       saned(8),     sane-find-scanner(1),    scanimage(1),    sane-abaton(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_dr(5),  sane-canon_pp(5),
       sane-cardscan(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-genesys(5),   sane-gphoto2(5),  sane-gt68xx(5),
       sane-hp(5),     sane-hpsj5s(5),     sane-hp3500(5),     sane-hp3900(5),
       sane-hp4200(5),    sane-hp5400(5),    sane-hpljm1005(5),   sane-ibm(5),
       sane-kodak(5),    sane-leo(5),     sane-lexmark(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-mustek_usb2(5),     sane-nec(5),    sane-net(5),    sane-niash(5),
       sane-pie(5),   sane-pint(5),    sane-plustek(5),    sane-plustek_pp(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-sm3840(5),    sane-snapscan(5),    sane-sp15c(5),   sane-st400(5),
       sane-stv680(5),   sane-tamarack(5),    sane-teco1(5),    sane-teco2(5),
       sane-teco3(5),     sane-test(5),     sane-u12(5),    sane-umax1220u(5),
       sane-umax(5), sane-umax_pp(5), sane-usb(5), sane-v4l(5)


       David     Mosberger-Tang     and     many      many      more      (see
       /usr/share/doc/libsane/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.

                                  14 Jul 2008                          sane(7)