Fixed corruption when copying to the same surface (with the help of
[wine] / documentation / installing.sgml
1   <chapter id="installing">
2     <title>Installing/compiling Wine</title>
3     <para>How to install Wine...</para>
4
5     <sect1 id="replace-windows" xreflabel="--Installing Section--">
6       <title>WWN #52 Feature: Replacing Windows</title>
7
8       <para>
9         Written by &name-ove-kaaven; <email>&email-ove-kaaven;</email>
10         
11       </para>
12
13       <sect2>
14         <title>Installation Overview</title>
15
16         <para>
17           A Windows installation consists of many different parts.
18         </para>
19
20         <itemizedlist>
21           <listitem>
22             <para>
23               Registry. Many keys are supposed to exist and contain
24               meaningful data, even in a newly-installed Windows.
25             </para>
26           </listitem>
27           <listitem>
28             <para>
29               Directory structure. Applications expect to find and/or
30               install things in specific predetermined locations. Most
31               of these directories are expected to exist. But unlike
32               Unix directory structures, most of these locations are
33               not hardcoded, and can be queried via the Windows API
34               and the registry. This places additional requirements on
35               a Wine installation.
36             </para>
37           </listitem>
38           <listitem>
39             <para>
40               System DLLs. In Windows, these usually reside in the
41               <filename>system</filename> (or
42               <filename>system32</filename>) directories. Some Windows
43               applications check for their existence in these
44               directories before attempting to load them. While Wine
45               is able to load its own internal DLLs
46               (<filename>.so</filename> files) when the application
47               asks for a DLL, Wine does not simulate the existence of
48               nonexisting files.
49             </para>
50           </listitem>
51         </itemizedlist>
52
53         <para>
54           While the users are of course free to set up everything
55           themselves, the Wine team will make the automated Wine source
56           installation script, <filename>tools/wineinstall</filename>,
57           do everything we find necessary to do; running the
58           conventional <userinput>configure && make depend && make && make
59             install</userinput> cycle is thus not recommended, unless
60           you know what you're doing. At the moment,
61           <filename>tools/wineinstall</filename> is able to create a
62           configuration file, install the registry, and create the
63           directory structure itself.
64         </para>
65       </sect2>
66
67       <sect2>
68         <title>The Registry</title>
69         <para>
70           The default registry is in the file
71           <filename>winedefault.reg</filename>. It contains directory
72           paths, class IDs, and more; it must be installed before most
73           <filename>INSTALL.EXE</filename> or
74           <filename>SETUP.EXE</filename> applications will work. The
75           registry is covered in more detail in an earlier article.
76         </para>
77       </sect2>
78
79       <sect2>
80         <title>Directory Structure</title>
81         <para>
82           Here's the fundamental layout that Windows applications and
83           installers expect. Without it, they seldom operate
84           correctly.
85         </para>
86
87 <programlisting>
88 C:\                Root directory of primary disk drive
89   Windows\         Windows directory, containing .INI files,
90                      accessories, etc.
91   System\          Win3.x/95/98/ME directory for common DLLs
92                      WinNT/2000 directory for common 16-bit DLLs
93   System32\        WinNT/2000 directory for common 32-bit DLLs
94   Start Menu\      Program launcher directory structure
95     Programs\      Program launcher links (.LNK files) to applications
96   Program Files\   Application binaries (.EXE and .DLL files)
97 </programlisting>
98
99         <para>
100           Wine emulates drives by placing their virtual drive roots to
101           user-configurable points in the Unix filesystem, so it's
102           your choice where <medialabel>C:</medialabel>'s root should
103           be (<filename>tools/wineinstall</filename> will even ask
104           you). If you choose, say, <filename>/var/wine</filename>, as
105           the root of your virtual drive <medialabel>C</medialabel>,
106           then you'd put this in your <filename>~/.wine/config</filename>:
107         </para>
108
109         <programlisting>
110 [Drive C]
111 "Path" = "/var/wine"
112 "Type" = "hd"
113 "Label" = "MS-DOS"
114 "Filesystem" = "win95"
115         </programlisting>
116
117         <para>
118           With this configuration, what windows apps think of as
119           "c:\windows\system" would map to
120           <filename>/var/wine/windows/system</filename> in the UNIX
121           filesystem. Note that you need to specify
122           <literal>"Filesystem" = "win95"</literal>, NOT
123           <literal>"Filesystem" = "unix"</literal>, to make Wine simulate a
124           Windows-compatible (case-insensitive) filesystem, otherwise
125           most apps won't work.
126         </para>
127       </sect2>
128
129       <sect2>
130         <title>System DLLs</title>
131         <para>
132           The Wine team has determined that it is necessary to create
133           fake DLL files to trick many applications that check for
134           file existence to determine whether a particular feature
135           (such as Winsock and its TCP/IP networking) is available. If
136           this is a problem for you, you can create empty files in the
137           <filename>system</filename> directory to make the
138           application think it's there, and Wine's built-in DLL will
139           be loaded when the application actually asks for it.
140           (Unfortunately, <filename>tools/wineinstall</filename> does
141           not create such empty files itself.)
142         </para>
143         <para>
144           Applications sometimes also try to inspect the version
145           resources from the physical files (for example, to determine
146           the DirectX version). Empty files will not do in this case,
147           it is rather necessary to install files with complete
148           version resources. This problem is currently being worked
149           on. In the meantime, you may still need to grab some real
150           DLL files to fool these apps with.
151         </para>
152         <para>
153           And there are of course DLLs that wine does not currently
154           implement very well (or at all). If you do not have a real
155           Windows you can steal necessary DLLs from, you can always
156           get some from one of the Windows DLL archive sites
157           that can be found via internet search engine.
158           Please make sure to obey any licenses on the DLLs you fetch...
159           (some are redistributable, some aren't).
160         </para>
161       </sect2>
162     </sect1>
163
164     <sect1 id="no-windows">
165       <title>Installing Wine Without Windows</title>
166       <para>
167         Written by &name-james-juran; <email>&email-james-juran;</email>
168       </para>
169       <para>
170         (Extracted from <filename>wine/documentation/no-windows</filename>)
171       </para>
172
173       <para>
174         A major goal of Wine is to allow users to run Windows programs
175         without having to install Windows on their machine. Wine
176         implements the functionality of the main DLLs usually
177         provided with Windows. Therefore, once Wine is finished, you
178         will not need to have windows installed to use Wine.
179       </para>
180       <para>
181         Wine has already made enough progress that it may be possible
182         to run your target applications without Windows installed. If
183         you want to try it, follow these steps:
184       </para>
185
186       <orderedlist>
187         <listitem>
188           <para>
189             Create empty <filename>C:\windows</filename>,
190             <filename>C:\windows\system</filename>,
191             <filename>C:\windows\Start Menu</filename>, and
192             <filename>C:\windows\Start Menu\Programs</filename>
193             directories. Do not point Wine to a
194             <filename>Windows</filename> directory full of old
195             installations and a messy registry. (Wine creates a
196             special registry in your <filename >home</filename>
197             directory, in <filename>$HOME/.wine/*.reg</filename>.
198             Perhaps you have to remove these files).
199           </para>
200         </listitem>
201         <listitem>
202           <para>
203             Point <medialabel>[Drive C]</medialabel> in
204             <filename>~/.wine/config</filename> to where you want
205             <filename>C:</filename> to be. Refer to the Wine man page
206             for more information. Remember to use
207             <userinput>"Filesystem" = "win95"</userinput>!
208           </para>
209         </listitem>
210         <listitem>
211           <para>
212             Use <filename>tools/wineinstall</filename> to compile Wine
213             and install the default registry. Or if you prefer to do
214             it yourself, compile <filename>programs/regapi</filename>,
215             and run: 
216           </para>
217                   <screen>
218                         <userinput>programs/regapi/regapi setValue &lt; winedefault.reg</userinput>
219                   </screen>
220         </listitem>
221         <listitem>
222           <para>
223             Run and/or install your applications.
224           </para>
225         </listitem>
226       </orderedlist>
227
228       <para>
229         Because Wine is not yet complete, some programs will work
230         better with native Windows DLLs than with Wine's
231         replacements. Wine has been designed to make this possible.
232         Here are some tips by Juergen Schmied (and others) on how to
233         proceed. This assumes that your
234         <filename>C:\windows</filename> directory in the configuration
235         file does not point to a native Windows installation but is in
236         a separate Unix file system. (For instance, <quote>C:\windows</quote> is
237         really subdirectory <quote>windows</quote> located in
238         <quote>/home/ego/wine/drives/c</quote>).
239       </para>
240
241       <itemizedlist>
242         <listitem>
243           <para>
244             Run the application with <parameter>--debugmsg
245               +module,+file</parameter> to find out which files are
246             needed. Copy the required DLLs one by one to the
247             <filename>C:\windows\system</filename> directory. Do not
248             copy KERNEL/KERNEL32, GDI/GDI32, or USER/USER32. These
249             implement the core functionality of the Windows API, and
250             the Wine internal versions must be used.
251           </para>
252         </listitem>
253         <listitem>
254           <para>
255             Edit the <quote>[DllOverrides]</quote> section of
256             <filename>~/.wine/config</filename> to specify
257             <quote>native</quote> before <quote>builtin</quote> for
258             the Windows DLLs you want to use. For more information
259             about this, see the Wine manpage.
260           </para>
261         </listitem>
262         <listitem>
263           <para>
264             Note that some network DLLs are not needed even though
265             Wine is looking for them. The Windows
266             <filename>MPR.DLL</filename> currently does not work; you
267             must use the internal implementation.
268           </para>
269         </listitem>
270         <listitem>
271           <para>
272             Copy SHELL/SHELL32 and COMDLG/COMDLG32 COMMCTRL/COMCTL32
273             only as pairs to your Wine directory (these DLLs are
274             <quote>clean</quote> to use).  Make sure you have these
275             specified in the <quote>[DllPairs]</quote> section of
276             <filename>~/.wine/config</filename>.
277           </para>
278         </listitem>
279         <listitem>
280           <para>
281             Be consistent: Use only DLLs from the same Windows version
282             together.
283           </para>
284         </listitem>
285         <listitem>
286           <para>
287             Put <filename>regedit.exe</filename> in the
288             <filename>C:\windows</filename> directory.
289             (<application>Office 95</application> imports a
290             <filename>*.reg</filename> file when it runs with an empty
291             registry, don't know about
292             <application>Office 97</application>).
293           </para>
294         </listitem>
295         <listitem>
296           <para>
297             Also add <filename>winhelp.exe</filename> and
298             <filename>winhlp32.exe</filename> if you want to be able
299             to browse through your programs' help function.
300           </para>
301         </listitem>
302       </itemizedlist>
303     </sect1>
304
305     <sect1 id="vfat">
306       <title>Dealing With FAT/VFAT Partitions</title>
307       <para>
308         Written by &name-steven-elliott; <email>&email-steven-elliott;</email>
309       </para>
310       <para>
311         (Extracted from <filename>wine/documentation/linux-fat-permissions</filename>)
312       </para>
313       <para>
314         This document describes how FAT and
315         VFAT file system permissions work in Linux
316         with a focus on configuring them for Wine.
317       </para>
318
319       <sect2>
320         <title>Introduction</title>
321         <para>
322           Linux is able to access DOS and Windows file systems using
323           either the FAT (older 8.3 DOS filesystems) or VFAT (newer
324           Windows 95 or later long filename filesystems) modules.
325           Mounted FAT or VFAT filesystems provide the primary means
326           for which existing applications and their data are accessed
327           through Wine for dual boot (Linux + Windows) systems.
328         </para>
329         <para>
330           Wine maps mounted FAT filesystems, such as
331           <filename>/c</filename>, to driver letters, such as
332           <quote>c:</quote>, as indicated by the
333           <filename>~/.wine/config</filename> file.  The following excerpt
334           from a <filename>~/.wine/config</filename> file does this:
335         </para>
336         <programlisting>
337 [Drive C]
338 "Path" = "/c"
339 "Type" = "hd"
340         </programlisting>
341         <para>
342           Although VFAT filesystems are preferable to FAT filesystems
343           for their long filename support the term <quote>FAT</quote>
344           will be used throughout the remainder of this document to
345           refer to FAT filesystems and their derivatives. Also,
346           <quote>/c</quote> will be used as the FAT mount point in
347           examples throughout this document.
348         </para>
349         <para>
350           Most modern Linux distributions either detect or allow
351           existing FAT file systems to be configured so that they can be
352           mounted, in a location such as <filename>/c</filename>,
353           either persistently (on bootup) or on an as needed basis. In
354           either case, by default, the permissions will probably be
355           configured so that they look like:
356         </para>
357         <screen>
358 <prompt>~></prompt><userinput>cd /c</userinput>
359 <prompt>/c></prompt><userinput>ls -l</userinput>
360 <computeroutput>-rwxr-xr-x   1 root     root           91 Oct 10 17:58 autoexec.bat
361 -rwxr-xr-x   1 root     root          245 Oct 10 17:58 config.sys
362 drwxr-xr-x  41 root     root        16384 Dec 30  1998 windows</computeroutput>
363         </screen>
364         <para>
365           where all the files are owned by "root", are in the "root"
366           group and are only writable by "root"
367           (<literal>755</literal> permissions). This is restrictive in
368           that it requires that Wine be run as root in order for
369           applications to be able to write to any part of the
370           filesystem.
371         </para>
372         <para>
373           There are three major approaches to overcoming the restrictive
374           permissions mentioned in the previous paragraph:
375         </para>
376         <orderedlist>
377           <listitem>
378             <para>
379               Run <application>Wine</application> as root
380             </para>
381           </listitem>
382           <listitem>
383             <para>
384               Mount the FAT filesystem with less restrictive
385               permissions
386             </para>
387           </listitem>
388           <listitem>
389             <para>
390               Shadow the FAT filesystem by completely or partially
391               copying it
392             </para>
393           </listitem>
394         </orderedlist>
395         <para>
396           Each approach will be discussed in the following sections.
397         </para>
398       </sect2>
399
400       <sect2>
401         <title>Running Wine as root</title>
402         <para>
403           Running Wine as root is the easiest and most thorough way of giving
404           applications that Wine runs unrestricted access to FAT files systems.
405           Running wine as root also allows applications to do things unrelated
406           to FAT filesystems, such as listening to ports that are less than
407           1024.  Running Wine as root is dangerous since there is no limit to
408           what the application can do to the system.
409         </para>
410       </sect2>
411
412       <sect2>
413         <title>Mounting FAT filesystems</title>
414         <para>
415           The FAT filesystem can be mounted with permissions less restrictive
416           than the default.  This can be done by either changing the user that
417           mounts the FAT filesystem or by explicitly changing the permissions
418           that the FAT filesystem is mounted with.  The permissions are
419           inherited from the process that mounts the FAT filesystem.  Since the
420           process that mounts the FAT filesystem is usually a startup script
421           running as root the FAT filesystem inherits root's permissions.  This
422           results in the files on the FAT filesystem having permissions similar
423           to files created by root.  For example:
424         </para>
425         <screen>
426 <prompt>~></prompt><userinput>whoami</userinput>
427 <computeroutput>root</computeroutput>
428 <prompt>~></prompt><userinput>touch root_file</userinput>
429 <prompt>~></prompt><userinput>ls -l root_file</userinput>
430 <computeroutput></computeroutput>-rw-r--r--   1 root     root            0 Dec 10 00:20 root_file
431         </screen>
432         <para>
433           which matches the owner, group and permissions of files seen
434           on the FAT filesystem except for the missing 'x's.  The
435           permissions on the FAT filesystem can be changed by changing
436           root's umask (unset permissions bits).  For example:
437         </para>
438         <screen>
439 <prompt>~></prompt><userinput>umount /c</userinput>
440 <prompt>~></prompt><userinput>umask</userinput>
441 <computeroutput>022</computeroutput>
442 <prompt>~></prompt><userinput>umask 073</userinput>
443 <prompt>~></prompt><userinput>mount /c</userinput>
444 <prompt>~></prompt><userinput>cd /c</userinput>
445 <prompt>/c></prompt><userinput>ls -l</userinput>
446 <computeroutput>-rwx---r--   1 root     root           91 Oct 10 17:58 autoexec.bat
447 -rwx---r--   1 root     root          245 Oct 10 17:58 config.sys
448 drwx---r--  41 root     root        16384 Dec 30  1998 windows</computeroutput>
449         </screen>
450         <para>
451           Mounting the FAT filesystem with a umask of
452           <literal>000</literal> gives all users complete control over
453           it. Explicitly specifying the permissions of the FAT
454           filesystem when it is mounted provides additional control.
455           There are three mount options that are relevant to FAT
456           permissions: <literal>uid</literal>, <literal>gid</literal>
457           and <literal>umask</literal>.  They can each be specified
458           when the filesystem is manually mounted.  For example:
459         </para>
460         <screen>
461 <prompt>~></prompt><userinput>umount /c</userinput>
462 <prompt>~></prompt><userinput>mount -o uid=500 -o gid=500 -o umask=002 /c</userinput>
463 <prompt>~></prompt><userinput>cd /c</userinput>
464 <prompt>/c></prompt><userinput>ls -l</userinput>
465 <computeroutput>-rwxrwxr-x   1 sle      sle            91 Oct 10 17:58 autoexec.bat
466 -rwxrwxr-x   1 sle      sle           245 Oct 10 17:58 config.sys
467 drwxrwxr-x  41 sle      sle         16384 Dec 30  1998 windows</computeroutput>
468         </screen>
469         <para>
470           which gives "sle" complete control over
471           <filename>/c</filename>.  The options listed above can be
472           made permanent by adding them to the
473           <filename>/etc/fstab</filename> file:
474         </para>
475         <screen>
476 <prompt>~></prompt><userinput>grep /c /etc/fstab</userinput>
477 <computeroutput>/dev/hda1  /c  vfat  uid=500,gid=500,umask=002,exec,dev,suid,rw 1 1</computeroutput>
478         </screen>
479         <para>
480           Note that the umask of <literal>002</literal> is common in
481           the user private group file permission scheme.  On FAT file
482           systems this umask assures that all files are fully
483           accessible by all users in the specified group
484           (<literal>gid</literal>).
485         </para>
486       </sect2>
487
488       <sect2>
489         <title>Shadowing FAT filesystems</title>
490         <para>
491           Shadowing provides a finer granularity of control.  Parts of
492           the original FAT filesystem can be copied so that the
493           application can safely work with those copied parts while
494           the application continues to directly read the remaining
495           parts.  This is done with symbolic links. For example,
496           consider a system where an application named
497           <application>AnApp</application> must be able to read and
498           write to the <filename>c:\windows</filename> and
499           <filename>c:\AnApp</filename> directories as well as have
500           read access to the entire FAT filesystem.  On this system
501           the FAT filesystem has default permissions which should not
502           be changed for security reasons or can not be changed due to
503           lack of root access.  On this system a shadow directory
504           might be set up in the following manner:
505         </para>
506         <screen>
507 <prompt>~></prompt><userinput>cd /</userinput>
508 <prompt>/></prompt><userinput>mkdir c_shadow</userinput>
509 <prompt>/></prompt><userinput>cd c_shadow</userinput>
510 <prompt>/c_shadow></prompt><userinput>ln -s /c_/* .</userinput>
511 <prompt>/c_shadow></prompt><userinput>rm windows AnApp</userinput>
512 <prompt>/c_shadow></prompt><userinput>cp -R /c_/{windows,AnApp} .</userinput>
513 <prompt>/c_shadow></prompt><userinput>chmod -R 777 windows AnApp</userinput>
514 <prompt>/c_shadow></prompt><userinput>perl -p -i -e 's|/c$|/c_shadow|g' /usr/local/etc/wine.conf</userinput>
515         </screen>
516         <para>
517           The above gives everyone complete read and write access to
518           the <filename>windows</filename> and
519           <filename>AnApp</filename> directories while only root has
520           write access to all other directories.
521         </para>
522       </sect2>    
523     </sect1>
524
525     <sect1 id="scsi-support">
526       <title>SCSI Support</title>
527       <para>
528         Written by &name-bruce-milner; <email>&email-bruce-milner;</email>;
529         Additions by &name-andreas-mohr; <email>&email-andreas-mohr;</email>
530       </para>
531       <para>
532         (Extracted from <filename>wine/documentation/aspi</filename>)
533       </para>
534
535       <para>
536         This file describes setting up the Windows ASPI interface.
537       </para>
538
539       <para>
540         <warning><title>Warning/Warning/Warning!!!!!!</title>
541           <para>This may trash your system if used incorrectly.  It may
542                   even trash your system when used <emphasis>correctly</>!
543           </para>
544         </warning>
545       </para>
546
547       <para>
548         Now that I have said that. ASPI is a direct link to SCSI devices from
549         windows programs. ASPI just forwards the SCSI commands that programs send
550         to it to the SCSI bus.
551       </para>
552       <para>
553         If you use the wrong SCSI device in your setup file, you can send
554         completely bogus commands to the wrong device - An example would be
555         formatting your hard drives (assuming the device gave you permission -
556         if you're running as root, all bets are off).
557       </para>
558       <para>
559         So please make sure that <emphasis>all</emphasis> SCSI devices not needed by the program 
560         have their permissions set as restricted as possible ! 
561       </para>
562
563       <para>
564         Cookbook for setting up scanner: (At least how mine is to work)
565         (well, for other devices such as CD burners, MO drives, ..., too)
566       </para>
567
568       <sect2>
569         <title>Windows requirements</title>
570         <orderedlist>
571           <listitem>
572             <para>
573               The scanner software needs to use the "Adaptec"
574               compatible drivers (ASPI). At least with Mustek, they
575               allow you the choice of using the builtin card or the
576               "Adaptec (AHA)" compatible drivers. This will not work
577               any other way. Software that accesses the scanner via a
578               DOS ASPI driver (e.g. ASPI2DOS) is supported, too. [AM]
579             </para>
580           </listitem>
581           <listitem>
582             <para>
583               You probably need a real windows install of the software
584               to set the LUN's/SCSI id's up correctly. I'm not exactly
585               sure.
586             </para>
587           </listitem>
588         </orderedlist>
589       </sect2>
590
591       <sect2>
592         <title>LINUX requirements:</title>
593         <orderedlist>
594           <listitem>
595             <para>
596               Your SCSI card must be supported under Linux. This will
597               not work with an unknown SCSI card. Even for cheap'n
598               crappy "scanner only" controllers some special Linux
599               drivers exist on the net.
600               If you intend to use your IDE device, you need to use the
601               ide-scsi emulation.
602               Read
603               <ulink url="http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html">
604                           http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html</ulink>
605               for ide-scsi setup instructions.
606             </para>
607           </listitem>
608           <listitem>
609             <para>
610               Compile generic SCSI drivers into your kernel.
611             </para>
612           </listitem>
613           <listitem>
614             <para>
615               This seems to be not required any more for newer (2.2.x) kernels:
616               Linux by default uses smaller SCSI buffers than Windows.
617               There is a kernel build define <literal>SG_BIG_BUFF</literal> (in
618               <filename>sg.h</filename>) that is by default set too
619               low. The SANE project recommends
620               <literal>130560</literal> and this seems to work just
621               fine. This does require a kernel rebuild.
622             </para>
623           </listitem>
624           <listitem>
625             <para>
626               Make the devices for the scanner (generic SCSI devices)
627               - look at the SCSI programming HOWTO at
628               <ulink url="http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html">
629                           http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html</ulink>
630               for device numbering.
631             </para>
632           </listitem>
633           <listitem>
634             <para>
635               I would recommend making the scanner device writable by
636               a group. I made a group called
637               <literal>scanner</literal> and added myself to it.
638               Running as root increases your risk of sending bad SCSI
639               commands to the wrong device. With a regular user, you
640               are better protected.
641             </para>
642           </listitem>
643           <listitem>
644             <para>
645               For Win32 software (WNASPI32), Wine has auto-detection in place.
646               For Win16 software (WINASPI), you need to add a SCSI device entry
647               for your particular scanner to ~/.wine/config. The format is
648               <literal>[scsi cCtTdD]</literal> where
649               <literal>"C" = "controller"</literal>,
650               <literal>"T" = "target"</literal>, <literal>D=LUN</literal>
651             </para>
652             <para>
653               For example, I set mine up as  controller <literal>0</literal>,
654               Target <literal>6</literal>, LUN <literal>0</literal>.
655               <programlisting>
656 [scsi c0t6d0]
657 "Device" = "/dev/sgi"
658               </programlisting>
659               Yours will vary with your particular SCSI setup.
660             </para>
661           </listitem>
662         </orderedlist>
663       </sect2>
664
665       <sect2>
666         <title>General Information</title>
667         <para>
668           The mustek scanner I have was shipped with a package
669           "ipplus". This program uses the TWAIN driver specification
670           to access scanners.
671         </para>
672         <para>
673           (TWAIN MANAGER)
674         </para>
675         <para>
676           <programlisting>
677 ipplus.exe &lt;-&gt; (TWAIN INTERFACE) &lt;-&gt; (TWAIN DATA SOURCE.ASPI) -&gt; WINASPI
678           </programlisting>
679         </para>
680       </sect2>
681
682       <sect2>
683         <title>NOTES/BUGS</title>
684         <para>
685           The biggest is that it only works under Linux at the moment.
686         </para>
687         <para>
688           The ASPI code has only been tested with:
689         </para>
690         <itemizedlist>
691           <listitem>
692             <para>
693               a Mustek 800SP with a Buslogic controller under Linux [BM]
694             </para>
695           </listitem>
696           <listitem>
697             <para>
698               a Siemens Nixdorf 9036 with Adaptec AVA-1505 under Linux
699               accessed via DOSASPI. Note that I had color problems,
700               though (barely readable result) [AM]
701             </para>
702           </listitem>
703           <listitem>
704             <para>
705               a Fujitsu M2513A MO drive (640MB) using generic SCSI
706               drivers. Formatting and ejecting worked perfectly.
707               Thanks to Uwe Bonnes for access to the hardware ! [AM]
708             </para>
709           </listitem>
710         </itemizedlist>
711         <para>
712           I make no warranty to the ASPI code. It makes my scanner
713           work. Your devices may explode. I have no way of determining
714           this. I take zero responsibility!
715         </para>
716       </sect2>
717     </sect1>
718
719 </chapter>
720
721 <!-- Keep this comment at the end of the file
722 Local variables:
723 mode: sgml
724 sgml-parent-document:("wine-doc.sgml" "set" "book" "chapter" "")
725 End:
726 -->