
Welcome to MUSCAN


WHAT'S IT ALL ABOUT:
muscan is a package containing a scanner driver for the
Mustek Paragon 6000CX (an unexpensive color flatbed scanner).
There also is a X-based frontend.
You have to enable the GENERIC SCSI in your kernel and to create a
device /dev/scanner. 

Example: If you have one SCSI disk at ID 0 and one tape at ID 2, the scanner
at ID 3 and a CDROM at ID 6, you will issue the following command:

mknod /dev/scanner c 21 2; chmod 666 /dev/scanner 

(or, if you are paranoid about your system's security, 
chmod 660 /dev/scanner; chgrp <scannergroup> /dev/scanner 
and add users who are allowed to use it to this group)

This means, the scanner is the 3rd device at the SCSI bus. But take care if you
remove (in this example) the tape, for the scanner will then be the 2nd device!
(mknod ... 21 1!!!)

You have to use a supported SCSI adapter, for this is no device driver
which implements the use of the adapter shipped with the scanner but an user
level driver.

ATTENTION:
Sometimes the scanner seems to lock the SCSI bus. So you eventually have
to hard-reset your computer, which isn't too good for your filesystem.
Especially if you are using xmuscan with some windows in the middle half
of the whole image, this might happen.
One way to avoid this is to install a secondary SCSI-controller for the scanner,
like one cheap AHA1542B (at least I do this; I've got some trouble to run
the scanner as the only device at the adapter, finally I had to use at least
one device with a lower SCSI ID at the same adapter. This seems to be gone
with a new firmware, but I have version 1.81; the new scanners have a model
number unequal to MU... [I guess it was BI...]; the problem should be fixed)
Because this works fine for me, I do not to intend to support the shipped
card (NCR 53C400) and leave this to whoever is interested in doing so...
(the kernel does support some 53Cxxx cards, but 53C400 support woes)

I am using a kernel v1.2.6; this works fine. If you are using older kernels,
you probably might encounter problems with the generic SCSI driver. So you might
want to update... (at least I know of one 1.1.x kernel, which has not the sg_header
struct as my program needs it)

INSTALLATION:
Look at the Makefile and modify the values, if neccessary.
DEVICE is the name of the scanner device (usually /dev/scanner),
which is created like stated above.

If your Linux source is not in /usr/src/linux, you have to change the
#include </usr/src/linux/drivers/scsi/sg.h> in muscan.c to an appropriate
value.

If you want to use the X11 frontend with 3D buttons and you have the 3D-Athena
widgets installed, you might want to use libXaw3d (else change XAWLIB to Xaw)

Do -as root- a: make install.

That's it. Try to scan one image by simply typing "muscan -f test.file"
You now can watch your scanned image using (i.e.) xv. The file is written
in PBM-raw.
(and you should of course read the manpage!)

There is a front-end called xmuscan. You can use this as well. xv is required to
display scanned images.

TIPS:
To get quick scan results, you should have SG_BIG_BUFF enable (this enlargens
the SCSI buffer from 4096 bytes to the value in this constant). This is the
default behaviour in Linux 1.2.10 (and maybe other version, too). I guess it is
possible to set a higher value here. Maybe 64k or more... You have to recompile the
kernel and muscan to get a higher value working (if you set the value to a lower one,
muscan detects it by itself)

NOTES:
Read the LICENSE and COPYRIGHT, if you are interested in this stuff.

Please report any bugs (and if you like the program, this too) to:
eichner@rhrk.uni-kl.de

THANKS:
Thanks to Gunther Mayer (gmayer@physik.uni-kl.de) for valuable tips about
backtracking and SG_BIG_BUFF support.

AUTHOR:
Torsten Eichner, eichner@rhrk.uni-kl.de
