sane-apple -- SANE backend for Apple flatbed scanners


sane-apple implements a SANE (Scanner Access Now Easy) backend that provides access to Apple flatbed scanners. At present, the following scanners are supported from this backend: sane-apple expects device names of the form:


where special is the path-name for the special device that corresponds to a SCSI scanner. For SCSI scanners, the special device name must be a generic SCSI device or a symbolic link to such a device.

apple.conf contains a list of options and device names that correspond to Apple scanners. Empty lines and lines starting with a hash (``#'') are ignored.

Options are either global or positional. Global options apply to all devices managed by the backend whereas positional options apply just to the most recently mentioned device. The order in which the options appear affects the outcome.

The SANE_CONFIG_DIR environment variable specifies the list of directories that may contain the configuration file. The directories are separated by a colon (``:''). If this variable is not set, the configuration file is searched in two default directories: firstly, the current working directory (``.'') and then in /usr/local/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 /usr/local/etc/sane.d being searched (in this order).

The SANE_DEBUG_APPLE environment variable controls the debug level for this backend if the library was compiled with debug support enabled. For example, a value of 255 requests all debug output to be printed. Smaller levels reduce verbosity.


The backend configuration file (see the description of SANE_CONFIG_DIR).

The static library implementing this backend.

The shared library implementing this backend (present on systems that support dynamic loading).


There are some GUI and scanner problems with the sane-apple backend.

The GUI does not always display a parameter as active.

Some dependencies may be missing. For example the Apple Scanners Programming Guide says nothing about the threshold parameter. It is assumed that it is valid only in Line Art mode.

Scanner specific problems are due to rounding values in order to scan.

Other problems are due to SCSI communication, SCSI connects and disconnects. You may encounter buffer overruns, null pointers, memory corruption and SANE API violations. For example, changing the SCSI card from Adaptec 2940UW to a dual-channel Symbios 786 chipset causes Gray16 scans to give a stream of SCSI error messages on the console. Ultimately it hangs with a message saying the scanner is not releasing the SCSI bus.

SCSI scanners are usually delivered with an ISA SCSI adapter. This adapter is not interrupt driven and in many cases it will not work with the scanner. It is possible to get the supplied card to work, but without the interrupt line, scanning will put so much load on the system, that it becomes unusable for other tasks.

When you try to modify the scan area from the slice bar, sane-apple produces a core dump. If you select the scan area from the preview window, or type the scan area dimensions, sane-apple works correctly.

It is possible that sane-apple options panel can exceed the dimensions of your screen, especially for the ColorOneScanner. If this happens try using smaller fonts in the X server, or use virtual screens.

If you encounter a problem, set the environment variable SANE_DEBUG_APPLE to 255 and re-run the exact sequence of keystrokes and menu selections to reproduce it.

Author is Milon Firikis.


sane-abaton(5), sane-agfafocus(5), saned(1), sane-dc25(5), sane-dll(5), sane-dmc(5), sane-epson(5), sane-hp(5), sane-microtek(5), sane-microtek2(5), sane-mustek(5) sane-net(5), sane-pint(5), sane-pnm(5), sane-umax(5), scanimage(1), xsane(1), xscanimage(1)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004