sane-project-website/old-archive/2000-06/0134.html

189 wiersze
8.1 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>sane-devel: How to support a scanner without documentation</TITLE>
<META NAME="Author" CONTENT="Henning Meier-Geinitz (hmg-ml@gmx.de)">
<META NAME="Subject" CONTENT="How to support a scanner without documentation">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>How to support a scanner without documentation</H1>
<!-- received="Sun Jun 18 12:09:00 2000" -->
<!-- isoreceived="20000618190900" -->
<!-- sent="Sun, 18 Jun 2000 20:26:30 +0200" -->
<!-- isosent="20000618182630" -->
<!-- name="Henning Meier-Geinitz" -->
<!-- email="hmg-ml@gmx.de" -->
<!-- subject="How to support a scanner without documentation" -->
<!-- id="20000618202630.C27397@hmg1.vortex.swb.de" -->
<STRONG>From:</STRONG> Henning Meier-Geinitz (<A HREF="mailto:hmg-ml@gmx.de?Subject=Re:%20How%20to%20support%20a%20scanner%20without%20documentation&In-Reply-To=&lt;20000618202630.C27397@hmg1.vortex.swb.de&gt;"><EM>hmg-ml@gmx.de</EM></A>)<BR>
<STRONG>Date:</STRONG> Sun Jun 18 2000 - 11:26:30 PDT
<P>
<!-- next="start" -->
<LI><STRONG>Next message:</STRONG> <A HREF="0135.html">John Fremlin: "Re: How to support a scanner without documentation"</A>
<UL>
<LI><STRONG>Previous message:</STRONG> <A HREF="0133.html">Henning Meier-Geinitz: "New Mustek backend released (1.0-86)"</A>
<!-- nextthread="start" -->
<LI><STRONG>Next in thread:</STRONG> <A HREF="0135.html">John Fremlin: "Re: How to support a scanner without documentation"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0138.html">Simon Edwards: "Re: How to support a scanner without documentation"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0164.html">Jochen Eisinger: "Re: How to support a scanner without documentation"</A>
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#134">[ date ]</A>
<A HREF="index.html#134">[ thread ]</A>
<A HREF="subject.html#134">[ subject ]</A>
<A HREF="author.html#134">[ author ]</A>
</UL>
<HR NOSHADE><P>
<!-- body="start" -->
<P>
Hello SANE developers,
<BR>
<P>as Mustek doesn't provide any programming documentation for their scanners I
<BR>
had to use different methods more then once. Maybe other developers can take
<BR>
advantage of them. Don't hesitate to add more experiences.
<BR>
<P>The Problem:
<BR>
&nbsp;&nbsp;I have a Scanner supplied with a MS Windows driver and want to
<BR>
&nbsp;&nbsp;support it by a SANE backend. I need to know the SCSI commands and
<BR>
&nbsp;&nbsp;buffers the driver sends to the scanner (and the scanner's response).
<BR>
&nbsp;&nbsp;The same goes for USB and parallel port scanners.
<BR>
&nbsp;&nbsp;
<BR>
(Maybe-) solutions:
<BR>
<P>&nbsp;&nbsp;1) WINE: Some Windows drivers can be used with WINE.
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCSI:
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I had success with a Mustek ScanExpress 12000SP. This works if the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanner driver is able to connect to a SCSI adapter using ASPI
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Adaptec's &quot;standard&quot; for talking directly to SCSI devices; similar to
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sg driver for Linux). If the Windows driver can only use the SCSI
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter supplied by the manufacturer we are out of luck. Otherwise the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WINE ASPI libs can be used. There is some information about this in the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;documentation directory of WINE. Be sure WINE's libs are used
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(wine.conf). Debugging can be enabled by wine --debugmsg aspi progname.
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If this is not sufficient more debug output can be added in WINE or
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the kernel driver (e.g. drivers/scsi/sg.c for Linux).
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parallel port:
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I haven't tried this but there is support for similar tricks for
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parallel port devices: read documentation/ioport-trace-hints.
<BR>
&nbsp;&nbsp;&nbsp;
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USB:
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I haven't found anything about USB in WINE but as my Windows 95 doesn't
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have any USB support I didn't try hard.
<BR>
<P>&nbsp;&nbsp;2) VMWARE: This doesn't work at the moment because only SCSI disks and
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tapes are supported. According to VMWARE this may change in future.
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I haven't checked parallel and USB devices.
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<BR>
&nbsp;&nbsp;3) Windows spy programs: I could only find one such program. It's in the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aspisdk from Adaptec (&quot;aspispy.exe&quot;). This program connects to the ASPI
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layer and records any ASPI commands sent to a device. That's nice, but
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it doesn't seem to be able to print the buffers sent by drivers. Maybe
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there are commercial solutions but I couldn't find information about
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this type of program.
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I don't know about parallel port and USB spies.
<BR>
<P>&nbsp;&nbsp;4) Wrapper SCSI dll: I have written a small dll which wraps the Windows
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;winaspi.dll and sends all the SCSI commands and the beginnings of the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffers to a text file. This was pretty helpful for supporting the
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mustek Paragon 1200 A3 Pro. It only works if the scanner driver can
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect to ASPI complient SCSI adapters and doesn't insist on their own
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter. The wrapper dll is written in Delphi 1 and is for the 16 bit
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;winaspi.dll only (not wnaspi32.dll). If somebody is interested I can
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email the dll and source code.
<BR>
<P>&nbsp;&nbsp;5) Disassembling the Windows driver: I have never done this, other people
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on this list may talk about this. I think it's a lot of work and needs
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;good understatement of assembler and the windows API.
<BR>
&nbsp;&nbsp;
<BR>
&nbsp;&nbsp;6) Hardware solutions: There are SCSI hardware debuggers but they seem
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to be pretty expensive. Same goes for USB and parallel port.
<BR>
<P>hope this helps,
<BR>
<P>&nbsp;&nbsp;Henning
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<BR>
<P><PRE>
--
Source code, list archive, and docs: <A HREF="http://www.mostang.com/sane/">http://www.mostang.com/sane/</A>
To unsubscribe: echo unsubscribe sane-devel | mail <A HREF="mailto:majordomo@mostang.com?Subject=Re:%20How%20to%20support%20a%20scanner%20without%20documentation&In-Reply-To=&lt;20000618202630.C27397@hmg1.vortex.swb.de&gt;">majordomo@mostang.com</A>
</PRE>
<P><!-- body="end" -->
<HR NOSHADE>
<UL>
<!-- next="start" -->
<LI><STRONG>Next message:</STRONG> <A HREF="0135.html">John Fremlin: "Re: How to support a scanner without documentation"</A>
<LI><STRONG>Previous message:</STRONG> <A HREF="0133.html">Henning Meier-Geinitz: "New Mustek backend released (1.0-86)"</A>
<!-- nextthread="start" -->
<LI><STRONG>Next in thread:</STRONG> <A HREF="0135.html">John Fremlin: "Re: How to support a scanner without documentation"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0138.html">Simon Edwards: "Re: How to support a scanner without documentation"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0164.html">Jochen Eisinger: "Re: How to support a scanner without documentation"</A>
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#134">[ date ]</A>
<A HREF="index.html#134">[ thread ]</A>
<A HREF="subject.html#134">[ subject ]</A>
<A HREF="author.html#134">[ author ]</A>
</UL>
<!-- trailer="footer" -->
<HR NOSHADE>
<P>
<SMALL>
<EM>
This archive was generated by <A HREF="http://www.hypermail.org/">hypermail 2b29</A>
: <EM>Sun Jun 18 2000 - 12:11:29 PDT</EM>
</EM>
</SMALL>
</BODY>
</HTML>