Microtek E6 and 1542 under FreeBSD 2.2.2

Jan Setje-Eilers (setje@lunatic.org)
Thu, 14 Jan 1999 17:20:12 -0800

Hi.

I've been trying to get a ScanMaker E6 working under FreeBSD using sane
with the microtek backend. So far all i have been able to do is to
generate lots of

uk0(aha0:1:0): timed out
uk0(aha0:1:0): timed out AGAIN

messges. Scanimage just sits for a long time (~2 minutes) and then exits.
Details follow:

The first thing that seems suspicious is that the scanner shows up 8
times each getting it's own unknown driver attached to it.

aha0 at 0x330-0x333 irq 11 drq 5 on isa
(aha0:1:0): " Scanner 600 1.90" type 6 fixed SCSI 3
uk0(aha0:1:0): Unknown
< 2 through 6 snipped to save space >
(aha0:1:7): " Scanner 600 1.90" type 6 fixed SCSI 3
uk7(aha0:1:7): Unknown

Does anyone running FreeBSD see (or not see) the same behavior?? This
is currently my prime suspect (another manifestation of a badly wired bus).

I assume that this is either normal or something in my scsi wiring is
bad causing things to show up multiple times. I am shlepping some fresh
wire home tonight to try to eliminate that possibility. It is the only
device on that card and i am not even sure the card is 100% - no reson to
suspect it is not, but i will try hooking up something else to see if
it works. There is also an ncr 53c825 wide scsi adapter in the machine,
but that should not really have any effect (i suppose i should try hooking
up the scanner to it, bottom line i don't want that as a permanent setup
though, to avoid having the scanner hang the bus that my root disk is
connected to - also the ncr does not allow me to adjust async per target
- which i have been led to beleive is required by the E6??)

I assume i can wire into the db25 pin port as well and just terminate
the centronics connector, rather than using the pass through centronics
terminator that came with the thing (which stinks a bit too much of black
magic to me). What is that game port looking plug on the back for anyway
- none of my docs mention anything short of "plug the thing in and
terminate it if you need to".

find-scanner looks promising:

impact:~/src/sane-1.00/tools> ./find-scanner -v /dev/uk0
# You may want to run this program as super-user to find all devices.
# Once you found the scanner devices, be sure to adjust access
# permissions as necessary.

find-scanner: searching for scanners:
find-scanner: checking /dev/uk0...
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.
[sanei_scsi] sanei_scsi_cmd: scsi returned with status 1
[sanei_scsi] sanei_scsi_cmd: scsi returned with status 1
find-scanner: found scanner " Scanner 600 1.90" at device /dev/uk0
find-scanner: done

just glimpsing at the code "[sanei_scsi] sanei_scsi_cmd: scsi returned with
status 1" looks like a succesful return.

As a side question the microtek.conf lists:

scsi * * Scanner

I assume that is the id string that is matched to see if a scanner has indeed
been found. As far as i can tell my E6 calls itself " Scanner 600" or
" Scanner 600 1.90" seemingly with a leading space. Should that line possibly
be changed to:

scsi Scanner * *

I've tried this both ways with the same results - scsi " Scanner * *" ???

dll.conf has everything short of microtek commented out.

scanimage does not seem to find the scanner (or more to the point does not
realize it found it).

impact:~/src/sane-1.00> scanimage -v -h
[sanei_init_debug]: Setting debug level of dll to 128.
[dll] adding backend microtek
Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write PNM image data to
standard output.

-d, --device-name=DEVICE use a given scanner device
-h, --help display this help message and exit
-L, --list-devices show available scanner devices
-v, --verbose give even more status messages
-V, --version print version information
[dll] loading backend microtek
[dll] dlopen()ing `/usr/local/lib/sane/libsane-microtek.so.1'
[dll] init: initializing backend `microtek'
[sanei_init_debug]: Setting debug level of microtek to 128.
[microtek] sane_init: MICROTEK says hello! (v0.10.0)
[microtek] sane_init: config- #Uncomment following line to disable "clever precalibration" routines...
[microtek] sane_init: config- #noprecal
[microtek] sane_init: config- scsi Scanner * *
[microtek] sane_init: config- /dev/uk0
[microtek] attach_scanner: /dev/uk0
[microtek] attach_scanner: opening /dev/uk0
[sanei_init_debug]: Setting debug level of sanei_scsi to 128.

<about 2 minutes here - i have not but could do some real timing here>

[microtek] attach_scanner: sending INQUIRY

<about another minute here>

[sanei_scsi] sanei_scsi_cmd: scsi returned with status 1
[microtek] attach_scanner: inquiry failed (Device busy)
[microtek] sane_get_devices
scanimage: no SANE devices found
[dll] exiting
[dll] calling backend `microtek's exit function
[microtek] sane_exit...
[microtek] sane_exit: MICROTEK says goodbye.

Does anyone have any ideas as to what is going on? At this point i'm
still trying to get things to behave without actually looking at the
code (i should at least verify that the scsi bus is totally sane first).

I hope i've not made any stupid mistakes / omissions (if i did i'd be very
thankfull if someone could point them out). I've gone through the archives
up to late 97, and could not find anything quite like this.

thanks for any help or ideas

-jan

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com