SANE-1.0.27
Introduction to SANE
SANE is short for Scanner Access
Now Easy. Scanner access, however, is far from easy, since every
vendor has their own protocols. The only known protocol that should
bring some unity into this chaos is the TWAIN interface, but this
is too imprecise to allow a stable scanning framework. Therefore,
SANE comes with its own protocol,
and the vendor drivers can't be used.
SANE is split into back ends and
front ends. The back ends are drivers for the supported scanners
and cameras. The front ends are user interfaces to access the
backends.
This package is known to build and work properly using an LFS-9.1
platform.
Back Ends Package Information
Additional Downloads (Front Ends)
SANE Dependencies
Optional (Back Ends)
Avahi-0.7, Cups-2.3.1, libjpeg-turbo-2.0.4, LibTIFF-4.1.0, libusb-1.0.23,
v4l-utils-1.18.0, Net-SNMP, libieee1284, libgphoto2, and texlive-20190410 (or install-tl-unx)
Optional (Front Ends)
X Window
System, GTK+-2.24.32, and Gimp-2.10.18
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sane
Kernel Configuration,
Drivers and Additional Packages
To access your scanner, you will probably need the related kernel
drivers and/or additional support packages. A SCSI scanner will
need SCSI drivers, a parallel port scanner needs parallel port
support (you should use enhanced EPP modes) and perhaps libieee1284, and a USB
scanner will need the libusb-1.0.23 package. For HP devices,
you may need hplip.
Ensure you have the necessary drivers properly configured to access
the devices.
Installation of SANE
Installation of SANE Back Ends
The SANE daemon should run with
its own group. Create this group by issuing the following
commands as the root
user:
groupadd -g 70 scanner
Note
configure assumes
that the user building SANE-backends is a member of the
scanner
group for testing the
existence of this group. So the user building the package
should be added to the scanner
group. As the root
user:
usermod -G scanner -a username
For a USB scanner, if you are linking to libusb-1.0.23,
include the configure switch --enable-libusb_1_0. Install
SANE-backends by running the
following commands:
sg scanner -c " \
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-group=scanner \
--with-docdir=/usr/share/doc/sane-backends-1.0.27" &&
make
To test the results, issue: make
check.
Now, as the root
user:
make install &&
install -m 644 -v tools/udev/libsane.rules \
/etc/udev/rules.d/65-scanner.rules &&
chgrp -v scanner /var/lock/sane
With the scanner on, run scanimage
-L and the name and location of the device should
appear. Of course, you need the device drivers configured, in
order to run this test.
Installation of SANE Front Ends
The SANE-frontends package
includes the graphical frontends xscanimage and xcam, and a command-line
frontend scanadf.
You don't need this package if you intend to use one of the more
advanced graphical frontends like XSane-0.999. For a list of
frontend packages, see http://www.sane-project.org/sane-frontends.html.
To install SANE-frontends, use
the following commands:
tar -xf ../sane-frontends-1.0.14.tar.gz &&
cd sane-frontends-1.0.14 &&
sed -i -e "/SANE_CAP_ALWAYS_SETTABLE/d" src/gtkglue.c &&
./configure --prefix=/usr --mandir=/usr/share/man &&
make
This package does not come with a test suite.
Now, as the root
user:
make install &&
install -v -m644 doc/sane.png xscanimage-icon-48x48-2.png \
/usr/share/sane
If GIMP was linked into the
build and you wish GIMP to use
xscanimage as a
scanning plugin, issue the following command as the root
user:
ln -v -s ../../../../bin/xscanimage /usr/lib/gimp/2.0/plug-ins
Note
If the plugin xscanimage is disabled in
GIMP's menu, in order to
enable it, "create" a blank image using the menu or Ctrl-N.
After that, it is enabled.
Command Explanations
sg scanner -c "...":
runs the command between double quotes with principal group
scanner
. This may be needed if the
user has been newly added to group scanner, and has not looged out
and in.
--sysconfdir=/etc
: This
switch installs the configuration files in /etc/sane.d
instead of /usr/etc/sane.d
.
--with-group=scanner
: This
parameter causes the directory created for the locking files to be
group owned by the scanner
group
instead of the default uucp
group.
exit: This command is
used to exit the shell created by the su command.
Configuring SANE
Config Files
/etc/sane.d/*.conf
Configuration Information
The backend configuration files are located in /etc/sane.d
. Information for configuring the
various backends can be found by using the man(5) page for the
desired backend. Run man
sane-<backend>
,
substituting the desired backend.
Add any desired users to the scanner
group.
If you want to access a network scanner, include two lines in
net.conf
, as root
user (make sure to replace
<server_ip> by the actual value, below):
cat >> /etc/sane.d/net.conf << "EOF"
connect_timeout = 60
<server_ip>
EOF
On the server side, include the client ip in the access list of
/etc/sane.d/saned.conf
, restart
the saned daemon,
and make sure the firewall, if any, is open to the client.
If you use a desktop environment like Gnome or KDE you may wish to create a xscanimage.desktop
file so that xscanimage appears in the panel's menus.
As the root
user:
mkdir -pv /usr/share/{applications,pixmaps} &&
cat > /usr/share/applications/xscanimage.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=XScanImage - Scanning
Comment=Acquire images from a scanner
Exec=xscanimage
Icon=xscanimage
Terminal=false
Type=Application
Categories=Application;Graphics
EOF
ln -svf ../sane/xscanimage-icon-48x48-2.png /usr/share/pixmaps/xscanimage.png
For general information about configuring and using
SANE, see man sane. Linux-2.6.x brings
some special issues into the picture. See http://www.sane-project.org/README.linux
for information about using SANE with the Linux-2.6.x kernel. For
information about USB scanning devices, run man sane-usb. For information
about SCSI devices, run man
sane-scsi.
Configuration and setup of the
'saned' daemon
The saned daemon
is not meant to be used for untrusted clients. You should
provide Firewalling protection to
ensure only trusted clients access the daemon. Due to the
complex security requirements to ensure only trusted clients
access the daemon, BLFS does not provide instructions to
configure the saned daemon. If you desire
to make the daemon available, ensure you provide adequate
security, configure your [x]inetd.conf
file and send a SIGHUP
to the [x]inetd
daemon. Some good information for setting up and securing the
saned daemon can
be found at http://penguin-breeder.org/sane/saned/.
Contents
Back Ends:
Installed Programs:
gamma4scanimage, sane-config, saned,
sane-find-scanner, and scanimage
Installed Libraries:
libsane.so and numerous scanner backend
modules
Installed Directories:
/etc/sane.d,
/usr/{include,lib,share}/sane, and
/usr/share/doc/sane-1.0.27
Front Ends:
Installed Programs:
scanadf, xcam, and xscanimage
Installed Library:
GIMP
plugin embedded in xscanimage
Installed Directories:
None
Short Descriptions
gamma4scanimage
|
creates a gamma table in the format expected by
scanimage.
|
sane-config
|
is a tool used to determine the compiler and linker flags
that should be used to compile and link SANE.
|
saned
|
is the SANE daemon that
allows remote clients to access image acquisition devices
available on the local host.
|
sane-find-scanner
|
is a command-line tool to find SCSI and USB scanners and
determine their device files. Its primary purpose is to
make sure that scanners can be detected by SANE backends.
|
scanadf
|
is a command-line interface to control image acquisition
devices which are equipped with an automatic document
feeder (ADF).
|
scanimage
|
is a command line interface for scanning from image
acquisition devices such as flatbed scanners or cameras.
It is also used to list the available backend devices.
|
xcam
|
is a graphical camera front end for SANE.
|
xscanimage
|
is a graphical user interface for scanning.
|
libsane.so
|
is the application programming interface that is used to
communicate between frontends and backends.
|
libsane-*.so
|
modules are backend scanning library plugins used to
interface with scanning devices. See
http://www.sane-project.org/sane-supported-devices.html
for a list of supported backends.
|
Last updated on 2020-02-19 16:31:22 -0800