How do ya (get this sucker working?)

Mustek MFS 1200 SP Scanner

getting it running under Linux with the

„Pseudo-SCSI-Card“ , „SCSI-Port“ , an ISA-Card that bears a chip labled „DTC-436P“

that is packaged with the Scanner by Mustek.

        The chip

When I finally got sick of booting windows to scan in a few lines I hunted through the net to find out if this card was supported by Linux.

I learned it was.

I learned that the card was actually a very cheap SCSI-controller that doesn't use an IRQ.

The OS has to poll it, which means it has to continuously be asked wether it has data or not and thus the OS is slowed down by such a device.

I learned that I was better off throwing it away and buying a real SCSI controller, the cheapest that I could get.

One with a NCR810 chip was recommended.

Furthermore I found out that the scanner itself doesn't deal with connect/reconnect and therefore all SCSI-devices on the same bus will be blocked during the scanning process so it should have it's own controller to keep other resources available.

Okay, knowing all that I still wanted to see if I could get it running.

I was working on a SuSE 7.0 running on a 2.2.16 kernel.

Make sure that jumper 1 on the card is capped and jumper 2 is open.


I had to recompile my kernel. You most likely will have to do so, too.

make menuconfig

Make the following changes:

SCSI-Support: [*] SCSI generic support

SCSI low level drivers --->

                    <M> generic NCR5380/53c400 SCSI support

                    [*] Enable NCR53c400 extensions

                    [Port] NCR5380/53c400 mapping method [use port ...]

Selecting „port “ is important 'cause else you'll earn segfaults loading the driver!

I chose to compile the generic NCR5380 as a module so I could experiment.
Besides that I read that the system is likely to lock up when you use a 'compiled in driver' and turn off the scanner's power.

Off course you can compile the driver into the kernel. In that case you will have to add an append line in your /etc/lilo.conf: append="dtc3181e=0x280,1"

Compile the kernel and power down.

Turn on scanner before restarting Linux.

OK, back a the prompt do:

As root enter:
modprobe g_NCR5380 dtc_3181e=1 ncr_addr=0x280

modprobe sg

At this point I used YaST(1) to create the devices.
[YaST] [system administration] [Integrate hardware into system] [configure your scanner]

There you go! Got it made!

For the heck of it do a cat /proc/scsi/scsi

You should see your scanner in your row of SCSI devices.

Attached devices:

Host: scsi0 Channel: 00 Id: 00 Lun: 00

Vendor: IBM Model: DCAS-34330 Rev: S65A

Type: Direct-Access ANSI SCSI revision: 02

Host: scsi0 Channel: 00 Id: 03 Lun: 00

Vendor: YAMAHA Model: CRW8424S Rev: 1.0d

Type: CD-ROM ANSI SCSI revision: 02

Host: scsi1 Channel: 00 Id: 06 Lun: 00

Vendor: SCANNER Model: Rev: 1.02

Type: Scanner ANSI SCSI revision: 01 CCS

If you have SANE installed go into the tools-directory an enter (as root) ./find-scanner

# Note that find-scanner will find any scanner that is connected

# to a SCSI bus. It will even find scanners that are not supported

# at all by SANE. It won't find a scanner that is connected to a

# parallel, USB or other non-SCSI port.

find-scanner: found scanner "SCANNER 1.02" at device /dev/scanner

find-scanner: found scanner "SCANNER 1.02" at device /dev/sg2

find-scanner: found scanner "SCANNER 1.02" at device /dev/sgc

Okay, all set to run a first scan.

Enter scanimage -d mustek:/dev/scanner

and you'll hear your scanner twitch and start moving slowly as your console fills with hyroglyphs.

Okay, seems to work.

Now enter scanimage -d mustek:/dev/scanner >test.pnm

This time there won't be a mess on your screen. You'll have your first scanned image instead.

Here's mine :o)))

Send questions,criticism, remarks ... to Berlin Germany, January 2001
Literature & links: gives good information on drivers Musteks page of I/O cards with pictures