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