sane-dll - SANE dynamic backend loader
The sane-dll library implements a SANE (Scanner Access Now Easy) backend that provides
access to an arbitrary number of other SANE backends. These backends may either be pre-
loaded at the time the sane-dll library is built or, on systems that support dynamic load-
ing of shared libraries, the backends may be loaded at runtime. In the latter case,
adding support for a new backend simply involves installing the relevant library in
/usr/lib/sane and adding an entry to the dll.conf configuration file. In other words, no
applications need to be modified or recompiled to add support for new devices.
This backend expects device names of the form:
Where backend is the name of the backend and device is the name of the device in this
backend that should be addressed. If the device name does not contain a colon (:), then
the entire string is treated as the device string for the default backend. The default
backend is the backend listed last in the configuration file (see below) or the first pre-
loaded backend (if any).
The contents of the dll.conf file is a list of backend names that may be loaded dynami-
cally upon demand. Empty lines and lines starting with a hash mark (#) are ignored. A
sample configuration file is shown below:
# this is a comment
Note that backends that were pre-loaded when building this library do not have to be
listed in this configuration file. That is, if a backend was preloaded, then that backend
will always be present, regardless of whether it's listed in the configuration file or
The list of preloaded backends is determined by macro PRELOADABLE_BACKENDS in file back-
end/Makefile.in of the SANE source code distribution. After changing the value of this
macro, it is necessary to reconfigure, rebuild, and reinstall SANE for the change to take
Aliases are defined in the config file dll.aliases. It can contain entries of the form
alias SomeName SaneDeviceName
alias "Some Name" SaneDeviceName
alias Epson net:somehost:epson:/dev/sgX
alias "Siemens ST400" st400:/dev/sgY
alias "Read from file" pnm:0
Aliased device names are automatically hidden.
The idea is that users don't have to deal with complicated device names (especially for
networked devices), and to hide other exported devices which might confuse them. Note that
a hidden device can still be accessed if the device name is known, it just doesn't appear
on the list.
The list of aliased or hidden backends.
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
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. E.g., a value of 128 requests all debug
output to be printed. Smaller levels reduce verbosity.
0 print severe errors only
1 print normal errors and important messages
2 print normal messages
3 print debugging messages
4 print everything
sane(7), scanimage(1), sane-"backendname"(5)
11 Nov 2001 sane-dll(5)