sane-mustek - SANE backend for Mustek flatbed scanners
The sane-mustek library implements a SANE (Scanner Access Now Easy) backend that provides
access to Mustek (and some relabeled Trust and Primax) flatbed scanners. At present, the
following scanners are known to work more or less with this backend:
Paragon MFC-600S, 600 II CD, ScanMagic 600 II SP
Paragon MFC-800S, 800 II SP
Paragon MFS-1200SP, MFS-12000SP
ScanExpress 12000SP, 12000SP Plus, Paragon 1200 III SP, ScanMagic 9636S, 9636S Plus
Paragon 1200 LS
ScanExpress A3 SP
Paragon 1200 SP Pro
Paragon 1200 A3 Pro
Paragon 600 II N
Trust Imagery 1200
Trust Imagery 1200 SP
Trust Imagery 4800 SP
Trust SCSI Connect 19200
Primax Compact 4800 SCSI
More details can be found on the Mustek backend homepage http://www.meier-
Don't mix up MFS (Paragon), Pro and ScanExpress models! They're completely different.
Check the exact model name!
Note that most of the above scanners come with a SCSI interface. The only non-SCSI scan-
ner that has some support at this point is the 600 II N scanner which comes with its own
parallel port adapter (i.e., it does not attach to the printer port). More info on how to
use the 600 II N can be found below in section PARAGON 600 II N. Other parallel port scan-
ners are not supported by this backend but you may be successful using the Mustek parallel
port backend (mustek_pp). USB scanners are also not supported by this backend but
mustek_usb includes support for some of them.
Mustek scanners have no protection against exceeding the physical scan area height. That
is, if a scan is attempted with a height that exceeds the height of the scan surface, the
scanner begins making loud noises and the scan mechanism may be damaged. Thus, if you
hear such a noise, IMMEDIATELY turn off the scanner. This shouldn't happen if your scanner
is in the list of known scanners. There is more information in the /usr/share/doc/sane-
If you own a Mustek (or Trust) scanner other than the ones listed above that works with
this backend, please let us know by sending the scanner's exact model name (look at the
front and back of the scanner) and a debug output to firstname.lastname@example.org. You can get
the debug output by setting the environment variable SANE_DEBUG_MUSTEK to 5 and showing
the list of available scanners with scanimage -L . Please send all of it to the mailing
list. You must be subscribed to sane-devel before you can send mail to the list. See
http://www.mostang.com/sane/mail.html for details.
This backend expects device names of the form:
Where special is either the path-name for the special device that corresponds to a SCSI
scanner or the port number at which the 600 II N can be found (see section PARAGON 600 II
N below). For SCSI scanners, the special device name must be a generic SCSI device or a
symlink to such a device. The program sane-find-scanner helps to find out the correct
device. Under Linux, such a device name could be /dev/sga or /dev/sge, for example. See
sane-scsi(5) for details.
The contents of the mustek.conf file is a list of options and device names that correspond
to Mustek scanners. Empty lines and lines starting with a hash mark (#) are ignored. See
sane-scsi(5) on details of what constitutes a valid device name.
The supported options are linedistance-fix, lineart-fix, legal-size, buffersize, block-
size, strip-height, disable-double-buffering, disable-backtracking, and force-wait
Options come in two flavors: global and positional ones. Global options apply to all
devices managed by the backend whereas positional options apply just to the most recently
mentioned device. Note that this means that the order in which the options appear mat-
Option linedistance-fix is positional and works around a problem that occurs with some
SCSI controllers (notably the ncr810 controller under Linux). If color scans have hori-
zontal stripes and/or the colors are off, then it's likely that your controller suffers
from this problem. Turning on this option usually fixes the problem.
Option lineart-fix is positional and works around a timing problem that seems to exist
with certain MFS-12000SP scanners. The problem manifests itself in dropped lines when
scanning in lineart mode. Turning on this option should fix the problem but may slow down
scanning a bit.
Option legal-size is positional and sets the size of the scan area to Legal format. Set
this option if you own a Paragon 12000 LS. It can't be distinguished by software from a
ScanExpress 12000 SP (ISO A4 format).
Option buffersize is a positional option that overrides the default value set for the size
of the SCSI buffer. The buffer size is specified in kilobytes. The default value is 128.
Because of double buffering the buffer actually sent to the scanner is half the size of
this value. Try to increase this value to achieve higher scan speeds. Note that some
ScanExpress scanners don't like buffer sizes above 64 kb (buffersize = 128). If your sg
driver can't set SCSI buffer sizes at runtime you may have to change that value, too. See
sane-scsi(5) for details.
Option blocksize is a positional option that overrides the default value set for the maxi-
mum amount of data scanned in one block. The buffer size is specified in kilobytes. Some
scanners freeze if this value is bigger than 2048. The default value is 1 GB (so effec-
tively no limit) for most scanners. Don't change this value if you don't know exactly what
Option strip-height is a global option that limits the maximum height of the strip scanned
with a single SCSI read command. The height is specified in inches and may contain a
fractional part (e.g., 1.5). Setting the strip-height to a small value (one inch, for
example) reduces the likelihood of encountering problems with SCSI driver timeouts and/or
timeouts with other devices on the same SCSI bus. Unfortunately, it also increases scan
times. With current SCSI adapters and drivers this option shouldn't be needed any more.
Option disable-double-buffering is a global option. If set, the backend will only send one
buffer at a time to the scanner. Try this option if you have trouble while scanning, e.g.
SCSI errors, freezes, or the first few cm are repeated over and over again in your image.
Option disable-backtracking is a positional option. If set, the scanner will not move back
its slider after each SCSI buffer is filled (`backtracking'). Setting this option will
lead to faster scans but may also produce horizontal stripes. This option doesn't work
with every scanner (only some of the paragon models can modify backtracking).
Finally, force-wait is a global option. If set, the backend will wait until the device is
ready before sending the inquiry command. Further more the backend will force the scan
slider to return to its starting position (not implemented for all scanners). This option
may be necessary with the 600 II N or when scanimage is used multiple times (e.g. in
scripts). The default is off (not set).
A sample configuration file is shown below:
# limit strip height of all scanners to 1.5 inches:
option strip-height 1.5
/dev/scanner # first Mustek scanner
# 1 MB buffer for /dev/scanner:
option buffersize 1024
/dev/sge # second Mustek scanner
# turn on fixes for /dev/sge:
SCSI ADAPTER TIPS
Mustek SCSI scanners are typically delivered with an ISA SCSI adapter. Unfortunately,
that adapter is not worth much since it is not interrupt driven. It is (sometimes) possi-
ble to get the supplied card to work, but without interrupt line, scanning will be very
slow and put so much load on the system, that it becomes almost unusable for other tasks.
If you already have a working SCSI controller in your system, you should consider that
Mustek scanners do not support the SCSI-2 disconnect/reconnect protocol and hence tie up
the SCSI bus while a scan is in progress. This means that no other SCSI device on the
same bus can be accessed while a scan is in progress.
Because the Mustek-supplied adapter is not worth much and because Mustek scanners do not
support the SCSI-2 disconnect/reconnect protocol, it is recommended to install a separate
(cheap) SCSI controller for Mustek scanners. For example, ncr810 based cards are known to
work fine and cost as little as fifty US dollars.
For Mustek scanners, it is typically necessary to configure the low-level SCSI driver to
disable synchronous transfers, tagged command queuing, and target disconnects. See
sane-scsi(5) for driver and platform-specific information.
The ScanExpress models have sometimes trouble with high resolution color mode. If you
encounter sporadic corrupted images (parts duplicated or shifted horizontally) kill all
other applications before scanning and (if sufficient memory is available) disable swap-
PARAGON 600 II N
This backend has support for the Paragon 600 II N parallel port scanner. Note that this
scanner comes with its own ISA card that implements a funky parallel port (in other words,
the scanner does not connected to the printer parallel port).
This scanner can be configured by listing the port number of the adapter in the
mustek.conf file. Valid port numbers are 0x26b, 0x2ab, 0x2eb, 0x22b, 0x32b, 0x36b, 0x3ab,
0x3eb. Pick one that doesn't conflict with the other hardware in your computer. Put only
one number on a single line. Example:
Note that for this scanner root privileges are required to access the I/O ports. Thus,
either make frontends such as scanimage(1) and xscanimage(1) setuid root (generally not
recommended for safety reasons) or, alternatively, access this backend through the network
daemon saned(1). On systems which support this feature, the scanner can be accessed
through /dev/port. Don't forget to adjust the permissions for /dev/port. At least with
recent Linux kernels root privileges are necessary for /dev/port access, too.
If your images have horizontal stripes in color mode, check option linedistance-fix (see
above). Apply this option for a scanner with firmware version 2.x and disable it for ver-
If the Mustek backend blocks while sending the inqiury command to the scanner, add the
option force-wait to mustek.conf.
Also note that after a while of no activity, some scanners themself (not the SANE backend)
turns off their CCFL lamps. This shutdown is not always perfect with the result that the
lamp sometimes continues to glow dimly at one end. This doesn't appear to be dangerous
since as soon as you use the scanner again, the lamp turns back on to the normal high
brightness. However, the first image scanned after such a shutdown may have stripes and
appear to be over-exposed. When this happens, just take another scan, and the image will
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. Higher debug levels increase the ver-
bosity of the output.
0 no output
1 print fatal errors
2 print important messages
3 print non-fatal errors and less important messages
4 print all but debugging messages
5 print everything
sane(7), sane-find-scanner(1), sane-scsi(5), sane-mustek_usb(5), sane-mustek_pp(5)
David Mosberger, Andreas Czechanowski, Andreas Bolsch (SE extensions), Henning Meier-
Scanning with the SCSI adapters supplied by Mustek is very slow at high resolutions and
Some scanners (e.g. Paragon 1200 A3 + Pro, SE A3) need more testing.
More detailed bug information is available at the Mustek backend homepage
22 Dec 2001 sane-mustek(5)