| <chapter id="installing"> |
| <title>Installing/compiling Wine</title> |
| <para>How to install Wine...</para> |
| |
| <sect1 id="replace-windows" xreflabel="--Installing Section--"> |
| <title>WWN #52 Feature: Replacing Windows</title> |
| |
| <para> |
| Written by &name-ove-kaaven; <email>&email-ove-kaaven;</email> |
| |
| </para> |
| |
| <sect2> |
| <title>Installation Overview</title> |
| |
| <para> |
| A Windows installation consists of many different parts. |
| </para> |
| |
| <itemizedlist> |
| <listitem> |
| <para> |
| Registry. Many keys are supposed to exist and contain |
| meaningful data, even in a newly-installed Windows. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Directory structure. Applications expect to find and/or |
| install things in specific predetermined locations. Most |
| of these directories are expected to exist. But unlike |
| Unix directory structures, most of these locations are |
| not hardcoded, and can be queried via the Windows API |
| and the registry. This places additional requirements on |
| a Wine installation. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| System DLLs. In Windows, these usually reside in the |
| <filename>system</filename> (or |
| <filename>system32</filename>) directories. Some Windows |
| applications check for their existence in these |
| directories before attempting to load them. While Wine |
| is able to load its own internal DLLs |
| (<filename>.so</filename> files) when the application |
| asks for a DLL, Wine does not simulate the existence of |
| nonexisting files. |
| </para> |
| </listitem> |
| </itemizedlist> |
| |
| <para> |
| While the users are of course free to set up everything |
| themselves, the Wine team will make the automated Wine source |
| installation script, <filename>tools/wineinstall</filename>, |
| do everything we find necessary to do; running the |
| conventional <userinput>configure && make depend && make && make |
| install</userinput> cycle is thus not recommended, unless |
| you know what you're doing. At the moment, |
| <filename>tools/wineinstall</filename> is able to create a |
| configuration file, install the registry, and create the |
| directory structure itself. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>The Registry</title> |
| <para> |
| The default registry is in the file |
| <filename>winedefault.reg</filename>. It contains directory |
| paths, class IDs, and more; it must be installed before most |
| <filename>INSTALL.EXE</filename> or |
| <filename>SETUP.EXE</filename> applications will work. The |
| registry is covered in more detail <link |
| linkend="registry">here</link>. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Directory Structure</title> |
| <para> |
| Here's the fundamental layout that Windows applications and |
| installers expect. Without it, they seldom operate |
| correctly. |
| </para> |
| |
| <programlisting> |
| C:\ Root directory of primary disk drive |
| Windows\ Windows directory, containing .INI files, |
| accessories, etc. |
| System\ Win3.x/95/98/ME directory for common DLLs |
| WinNT/2000 directory for common 16-bit DLLs |
| System32\ WinNT/2000 directory for common 32-bit DLLs |
| Start Menu\ Program launcher directory structure |
| Programs\ Program launcher links (.LNK files) to applications |
| Program Files\ Application binaries (.EXE and .DLL files) |
| </programlisting> |
| |
| <para> |
| Wine emulates drives by placing their virtual drive roots to |
| user-configurable points in the Unix filesystem, so it's |
| your choice where <medialabel>C:</medialabel>'s root should |
| be (<filename>tools/wineinstall</filename> will even ask |
| you). If you choose, say, <filename>/var/wine</filename>, as |
| the root of your virtual drive <medialabel>C</medialabel>, |
| then you'd put this in your <filename>~/.wine/config</filename>: |
| </para> |
| |
| <programlisting> |
| [Drive C] |
| "Path" = "/var/wine" |
| "Type" = "hd" |
| "Label" = "MS-DOS" |
| "Filesystem" = "win95" |
| </programlisting> |
| |
| <para> |
| With this configuration, what windows apps think of as |
| "c:\windows\system" would map to |
| <filename>/var/wine/windows/system</filename> in the UNIX |
| filesystem. Note that you need to specify |
| <literal>"Filesystem" = "win95"</literal>, NOT |
| <literal>"Filesystem" = "unix"</literal>, to make Wine simulate a |
| Windows-compatible (case-insensitive) filesystem, otherwise |
| most apps won't work. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>System DLLs</title> |
| <para> |
| The Wine team has determined that it is necessary to create |
| fake DLL files to trick many applications that check for |
| file existence to determine whether a particular feature |
| (such as Winsock and its TCP/IP networking) is available. If |
| this is a problem for you, you can create empty files in the |
| configured <filename>c:\windows\system</filename> directory |
| to make the application think it's there, and Wine's built-in DLL |
| will be loaded when the application actually asks for it. |
| (Unfortunately, <filename>tools/wineinstall</filename> does |
| not create such empty files itself.) |
| </para> |
| <para> |
| Applications sometimes also try to inspect the version |
| resources from the physical files (for example, to determine |
| the DirectX version). Empty files will not do in this case, |
| it is rather necessary to install files with complete |
| version resources. This problem is currently being worked |
| on. In the meantime, you may still need to grab some real |
| DLL files to fool these apps with. |
| </para> |
| <para> |
| And there are of course DLLs that wine does not currently |
| implement very well (or at all). If you do not have a real |
| Windows you can steal necessary DLLs from, you can always |
| get some from one of the Windows DLL archive sites |
| that can be found via internet search engine. |
| Please make sure to obey any licenses on the DLLs you fetch... |
| (some are redistributable, some aren't). |
| </para> |
| </sect2> |
| </sect1> |
| |
| <sect1 id="no-windows"> |
| <title>Installing Wine Without Windows</title> |
| <para> |
| Written by &name-james-juran; <email>&email-james-juran;</email> |
| </para> |
| <para> |
| (Extracted from <filename>wine/documentation/no-windows</filename>) |
| </para> |
| |
| <para> |
| A major goal of Wine is to allow users to run Windows programs |
| without having to install Windows on their machine. Wine |
| implements the functionality of the main DLLs usually |
| provided with Windows. Therefore, once Wine is finished, you |
| will not need to have Windows installed to use Wine. |
| </para> |
| <para> |
| Wine has already made enough progress that it may be possible |
| to run your target applications without Windows installed. If |
| you want to try it, follow these steps: |
| </para> |
| |
| <orderedlist> |
| <listitem> |
| <para> |
| Point <medialabel>[Drive C]</medialabel> in |
| <filename>~/.wine/config</filename> to the directory where you want |
| <filename>C:</filename> to be. Refer to the wine.conf man page |
| for more information. |
| The directory to be used for emulating a C: drive will be |
| the base directory for some Windows specific directories |
| created below. |
| Remember to use |
| <userinput>"Filesystem" = "win95"</userinput>! |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Within the directory to be used for C:, create empty |
| <filename>windows</filename>, |
| <filename>windows/system</filename>, |
| <filename>windows/Start Menu</filename>, and |
| <filename>windows/Start Menu/Programs</filename> |
| directories. Do not point Wine to a |
| <filename>Windows</filename> directory full of old |
| installations and a messy registry. (Wine creates a |
| special registry in your <filename >home</filename> |
| directory, in <filename>$HOME/.wine/*.reg</filename>. |
| Perhaps you have to remove these files). |
| In one line: |
| mkdir -p windows windows/system windows/Start\ Menu windows/Start\ Menu/Programs |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Use <filename>tools/wineinstall</filename> to compile Wine |
| and install the default registry. Or if you prefer to do |
| it yourself, compile <filename>programs/regapi</filename>, |
| and run: |
| </para> |
| <screen> |
| <userinput>programs/regapi/regapi setValue < winedefault.reg</userinput> |
| </screen> |
| </listitem> |
| <listitem> |
| <para> |
| Run and/or install your applications. |
| </para> |
| </listitem> |
| </orderedlist> |
| |
| <para> |
| Because Wine is not yet complete, some programs will work |
| better with native Windows DLLs than with Wine's |
| replacements. Wine has been designed to make this possible. |
| Here are some tips by Juergen Schmied (and others) on how to |
| proceed. This assumes that your |
| <filename>C:\windows</filename> directory in the configuration |
| file does not point to a native Windows installation but is in |
| a separate Unix file system. (For instance, <quote>C:\windows</quote> is |
| really subdirectory <quote>windows</quote> located in |
| <quote>/home/ego/wine/drives/c</quote>). |
| </para> |
| |
| <itemizedlist> |
| <listitem> |
| <para> |
| Run the application with <parameter>--debugmsg |
| +loaddll</parameter> to find out which files are |
| needed. Copy the required DLLs one by one to the |
| <filename>C:\windows\system</filename> directory. Do not |
| copy KERNEL/KERNEL32, GDI/GDI32, USER/USER32 or NTDLL. These |
| implement the core functionality of the Windows API, and |
| the Wine internal versions must be used. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Edit the <quote>[DllOverrides]</quote> section of |
| <filename>~/.wine/config</filename> to specify |
| <quote>native</quote> before <quote>builtin</quote> for |
| the Windows DLLs you want to use. For more information |
| about this, see the Wine manpage. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Note that some network DLLs are not needed even though |
| Wine is looking for them. The Windows |
| <filename>MPR.DLL</filename> currently does not work; you |
| must use the internal implementation. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Copy SHELL/SHELL32 and COMDLG/COMDLG32 COMMCTRL/COMCTL32 |
| only as pairs to your Wine directory (these DLLs are |
| <quote>clean</quote> to use). Make sure you have these |
| specified in the <quote>[DllPairs]</quote> section of |
| <filename>~/.wine/config</filename>. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Be consistent: Use only DLLs from the same Windows version |
| together. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Put <filename>regedit.exe</filename> in the |
| <filename>C:\windows</filename> directory. |
| (<application>Office 95</application> imports a |
| <filename>*.reg</filename> file when it runs with an empty |
| registry, don't know about |
| <application>Office 97</application>). |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Also add <filename>winhelp.exe</filename> and |
| <filename>winhlp32.exe</filename> if you want to be able |
| to browse through your programs' help function. |
| </para> |
| </listitem> |
| </itemizedlist> |
| </sect1> |
| |
| <sect1 id="with-windows"> |
| <title>Installing Wine Using An Existing Windows Partition As Base</title> |
| <para> |
| Some people intend to use the data of an existing Windows partition |
| with Wine in order to gain some better compatibility or to run already |
| installed programs in a setup as original as possible. |
| Note that many Windows programs assume that they have full write |
| access to all windows directories. |
| |
| This means that you either have to configure the Windows |
| partition mount point for write permission by your Wine user |
| (see <link linkend="vfat">Dealing with FAT/VFAT partitions</link> |
| on how to do that), or you'll have to copy over (some parts of) the Windows |
| partition content to a directory of a Unix partition and make |
| sure this directory structure is writable by your user. |
| We HIGHLY DISCOURAGE people from directly using a Windows partition with |
| write access as a base for Wine !! (some programs, notably |
| Explorer, corrupt large parts of the Windows partition in case |
| of an incorrect setup; you've been warned). |
| Not to mention that NTFS write support in Linux is still very |
| experimental and DANGEROUS (in case you're using an NT-based |
| Windows version using the NTFS file system). |
| Thus we advise you to go the Unix directory way. |
| </para> |
| </sect1> |
| |
| <sect1 id="vfat"> |
| <title>Dealing With FAT/VFAT Partitions</title> |
| <para> |
| Written by &name-steven-elliott; <email>&email-steven-elliott;</email> |
| </para> |
| <para> |
| (Extracted from <filename>wine/documentation/linux-fat-permissions</filename>) |
| </para> |
| <para> |
| This document describes how FAT and |
| VFAT file system permissions work in Linux |
| with a focus on configuring them for Wine. |
| </para> |
| |
| <sect2> |
| <title>Introduction</title> |
| <para> |
| Linux is able to access DOS and Windows file systems using |
| either the FAT (older 8.3 DOS filesystems) or VFAT (newer |
| Windows 95 or later long filename filesystems) modules. |
| Mounted FAT or VFAT filesystems provide the primary means |
| for which existing applications and their data are accessed |
| through Wine for dual boot (Linux + Windows) systems. |
| </para> |
| <para> |
| Wine maps mounted FAT filesystems, such as |
| <filename>/c</filename>, to driver letters, such as |
| <quote>c:</quote>, as indicated by the |
| <filename>~/.wine/config</filename> file. The following excerpt |
| from a <filename>~/.wine/config</filename> file does this: |
| </para> |
| <programlisting> |
| [Drive C] |
| "Path" = "/c" |
| "Type" = "hd" |
| </programlisting> |
| <para> |
| Although VFAT filesystems are preferable to FAT filesystems |
| for their long filename support the term <quote>FAT</quote> |
| will be used throughout the remainder of this document to |
| refer to FAT filesystems and their derivatives. Also, |
| <quote>/c</quote> will be used as the FAT mount point in |
| examples throughout this document. |
| </para> |
| <para> |
| Most modern Linux distributions either detect or allow |
| existing FAT file systems to be configured so that they can be |
| mounted, in a location such as <filename>/c</filename>, |
| either persistently (on bootup) or on an as needed basis. In |
| either case, by default, the permissions will probably be |
| configured so that they look like: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>cd /c</userinput> |
| <prompt>/c></prompt><userinput>ls -l</userinput> |
| <computeroutput>-rwxr-xr-x 1 root root 91 Oct 10 17:58 autoexec.bat |
| -rwxr-xr-x 1 root root 245 Oct 10 17:58 config.sys |
| drwxr-xr-x 41 root root 16384 Dec 30 1998 windows</computeroutput> |
| </screen> |
| <para> |
| where all the files are owned by "root", are in the "root" |
| group and are only writable by "root" |
| (<literal>755</literal> permissions). This is restrictive in |
| that it requires that Wine be run as root in order for |
| applications to be able to write to any part of the |
| filesystem. |
| </para> |
| <para> |
| There are three major approaches to overcoming the restrictive |
| permissions mentioned in the previous paragraph: |
| </para> |
| <orderedlist> |
| <listitem> |
| <para> |
| Run <application>Wine</application> as root |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Mount the FAT filesystem with less restrictive |
| permissions |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Shadow the FAT filesystem by completely or partially |
| copying it |
| </para> |
| </listitem> |
| </orderedlist> |
| <para> |
| Each approach will be discussed in the following sections. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Running Wine as root</title> |
| <para> |
| Running Wine as root is the easiest and most thorough way of giving |
| applications that Wine runs unrestricted access to FAT files systems. |
| Running wine as root also allows applications to do things unrelated |
| to FAT filesystems, such as listening to ports that are less than |
| 1024. Running Wine as root is dangerous since there is no limit to |
| what the application can do to the system. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Mounting FAT filesystems</title> |
| <para> |
| The FAT filesystem can be mounted with permissions less restrictive |
| than the default. This can be done by either changing the user that |
| mounts the FAT filesystem or by explicitly changing the permissions |
| that the FAT filesystem is mounted with. The permissions are |
| inherited from the process that mounts the FAT filesystem. Since the |
| process that mounts the FAT filesystem is usually a startup script |
| running as root the FAT filesystem inherits root's permissions. This |
| results in the files on the FAT filesystem having permissions similar |
| to files created by root. For example: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>whoami</userinput> |
| <computeroutput>root</computeroutput> |
| <prompt>~></prompt><userinput>touch root_file</userinput> |
| <prompt>~></prompt><userinput>ls -l root_file</userinput> |
| <computeroutput></computeroutput>-rw-r--r-- 1 root root 0 Dec 10 00:20 root_file |
| </screen> |
| <para> |
| which matches the owner, group and permissions of files seen |
| on the FAT filesystem except for the missing 'x's. The |
| permissions on the FAT filesystem can be changed by changing |
| root's umask (unset permissions bits). For example: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>umount /c</userinput> |
| <prompt>~></prompt><userinput>umask</userinput> |
| <computeroutput>022</computeroutput> |
| <prompt>~></prompt><userinput>umask 073</userinput> |
| <prompt>~></prompt><userinput>mount /c</userinput> |
| <prompt>~></prompt><userinput>cd /c</userinput> |
| <prompt>/c></prompt><userinput>ls -l</userinput> |
| <computeroutput>-rwx---r-- 1 root root 91 Oct 10 17:58 autoexec.bat |
| -rwx---r-- 1 root root 245 Oct 10 17:58 config.sys |
| drwx---r-- 41 root root 16384 Dec 30 1998 windows</computeroutput> |
| </screen> |
| <para> |
| Mounting the FAT filesystem with a umask of |
| <literal>000</literal> gives all users complete control over |
| it. Explicitly specifying the permissions of the FAT |
| filesystem when it is mounted provides additional control. |
| There are three mount options that are relevant to FAT |
| permissions: <literal>uid</literal>, <literal>gid</literal> |
| and <literal>umask</literal>. They can each be specified |
| when the filesystem is manually mounted. For example: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>umount /c</userinput> |
| <prompt>~></prompt><userinput>mount -o uid=500 -o gid=500 -o umask=002 /c</userinput> |
| <prompt>~></prompt><userinput>cd /c</userinput> |
| <prompt>/c></prompt><userinput>ls -l</userinput> |
| <computeroutput>-rwxrwxr-x 1 sle sle 91 Oct 10 17:58 autoexec.bat |
| -rwxrwxr-x 1 sle sle 245 Oct 10 17:58 config.sys |
| drwxrwxr-x 41 sle sle 16384 Dec 30 1998 windows</computeroutput> |
| </screen> |
| <para> |
| which gives "sle" complete control over |
| <filename>/c</filename>. The options listed above can be |
| made permanent by adding them to the |
| <filename>/etc/fstab</filename> file: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>grep /c /etc/fstab</userinput> |
| <computeroutput>/dev/hda1 /c vfat uid=500,gid=500,umask=002,exec,dev,suid,rw 1 1</computeroutput> |
| </screen> |
| <para> |
| Note that the umask of <literal>002</literal> is common in |
| the user private group file permission scheme. On FAT file |
| systems this umask assures that all files are fully |
| accessible by all users in the specified group |
| (<literal>gid</literal>). |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Shadowing FAT filesystems</title> |
| <para> |
| Shadowing provides a finer granularity of control. Parts of |
| the original FAT filesystem can be copied so that the |
| application can safely work with those copied parts while |
| the application continues to directly read the remaining |
| parts. This is done with symbolic links. For example, |
| consider a system where an application named |
| <application>AnApp</application> must be able to read and |
| write to the <filename>c:\windows</filename> and |
| <filename>c:\AnApp</filename> directories as well as have |
| read access to the entire FAT filesystem. On this system |
| the FAT filesystem has default permissions which should not |
| be changed for security reasons or can not be changed due to |
| lack of root access. On this system a shadow directory |
| might be set up in the following manner: |
| </para> |
| <screen> |
| <prompt>~></prompt><userinput>cd /</userinput> |
| <prompt>/></prompt><userinput>mkdir c_shadow</userinput> |
| <prompt>/></prompt><userinput>cd c_shadow</userinput> |
| <prompt>/c_shadow></prompt><userinput>ln -s /c_/* .</userinput> |
| <prompt>/c_shadow></prompt><userinput>rm windows AnApp</userinput> |
| <prompt>/c_shadow></prompt><userinput>cp -R /c_/{windows,AnApp} .</userinput> |
| <prompt>/c_shadow></prompt><userinput>chmod -R 777 windows AnApp</userinput> |
| <prompt>/c_shadow></prompt><userinput>perl -p -i -e 's|/c$|/c_shadow|g' /usr/local/etc/wine.conf</userinput> |
| </screen> |
| <para> |
| The above gives everyone complete read and write access to |
| the <filename>windows</filename> and |
| <filename>AnApp</filename> directories while only root has |
| write access to all other directories. |
| </para> |
| </sect2> |
| </sect1> |
| |
| <sect1 id="scsi-support"> |
| <title>SCSI Support</title> |
| <para> |
| Written by &name-bruce-milner; <email>&email-bruce-milner;</email>; |
| Additions by &name-andreas-mohr; <email>&email-andreas-mohr;</email> |
| </para> |
| <para> |
| (Extracted from <filename>wine/documentation/aspi</filename>) |
| </para> |
| |
| <para> |
| This file describes setting up the Windows ASPI interface. |
| </para> |
| |
| <para> |
| <warning><title>Warning/Warning/Warning!!!!!!</title> |
| <para>This may trash your system if used incorrectly. It may |
| even trash your system when used <emphasis>correctly</>! |
| </para> |
| </warning> |
| </para> |
| |
| <para> |
| Now that I have said that. ASPI is a direct link to SCSI devices from |
| windows programs. ASPI just forwards the SCSI commands that programs send |
| to it to the SCSI bus. |
| </para> |
| <para> |
| If you use the wrong SCSI device in your setup file, you can send |
| completely bogus commands to the wrong device - An example would be |
| formatting your hard drives (assuming the device gave you permission - |
| if you're running as root, all bets are off). |
| </para> |
| <para> |
| So please make sure that <emphasis>all</emphasis> SCSI devices not needed by the program |
| have their permissions set as restricted as possible ! |
| </para> |
| |
| <para> |
| Cookbook for setting up scanner: (At least how mine is to work) |
| (well, for other devices such as CD burners, MO drives, ..., too) |
| </para> |
| |
| <sect2> |
| <title>Windows requirements</title> |
| <orderedlist> |
| <listitem> |
| <para> |
| The scanner software needs to use the "Adaptec" |
| compatible drivers (ASPI). At least with Mustek, they |
| allow you the choice of using the builtin card or the |
| "Adaptec (AHA)" compatible drivers. This will not work |
| any other way. Software that accesses the scanner via a |
| DOS ASPI driver (e.g. ASPI2DOS) is supported, too. [AM] |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| You probably need a real windows install of the software |
| to set the LUN's/SCSI id's up correctly. I'm not exactly |
| sure. |
| </para> |
| </listitem> |
| </orderedlist> |
| </sect2> |
| |
| <sect2> |
| <title>Linux requirements</title> |
| <orderedlist> |
| <listitem> |
| <para> |
| Your SCSI card must be supported under Linux. This will |
| not work with an unknown SCSI card. Even for cheap'n |
| crappy "scanner only" controllers some special Linux |
| drivers exist on the net. |
| If you intend to use your IDE device, you need to use the |
| ide-scsi emulation. |
| Read |
| <ulink url="http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html"> |
| http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html</ulink> |
| for ide-scsi setup instructions. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Compile generic SCSI drivers into your kernel. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| This seems to be not required any more for newer (2.2.x) kernels: |
| Linux by default uses smaller SCSI buffers than Windows. |
| There is a kernel build define <literal>SG_BIG_BUFF</literal> (in |
| <filename>sg.h</filename>) that is by default set too |
| low. The SANE project recommends |
| <literal>130560</literal> and this seems to work just |
| fine. This does require a kernel rebuild. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| Make the devices for the scanner (generic SCSI devices) |
| - look at the SCSI programming HOWTO at |
| <ulink url="http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html"> |
| http://www.linuxdoc.org/HOWTO/SCSI-Programming-HOWTO.html</ulink> |
| for device numbering. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| I would recommend making the scanner device writable by |
| a group. I made a group called |
| <literal>scanner</literal> and added myself to it. |
| Running as root increases your risk of sending bad SCSI |
| commands to the wrong device. With a regular user, you |
| are better protected. |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| For Win32 software (WNASPI32), Wine has auto-detection in place. |
| For Win16 software (WINASPI), you need to add a SCSI device entry |
| for your particular scanner to ~/.wine/config. The format is |
| <literal>[scsi cCtTdD]</literal> where |
| <literal>"C" = "controller"</literal>, |
| <literal>"T" = "target"</literal>, <literal>D=LUN</literal> |
| </para> |
| <para> |
| For example, I set mine up as controller <literal>0</literal>, |
| Target <literal>6</literal>, LUN <literal>0</literal>. |
| <programlisting> |
| [scsi c0t6d0] |
| "Device" = "/dev/sgi" |
| </programlisting> |
| Yours will vary with your particular SCSI setup. |
| </para> |
| </listitem> |
| </orderedlist> |
| </sect2> |
| |
| <sect2> |
| <title>General Information</title> |
| <para> |
| The mustek scanner I have was shipped with a package |
| "ipplus". This program uses the TWAIN driver specification |
| to access scanners. |
| </para> |
| <para> |
| (TWAIN MANAGER) |
| </para> |
| <para> |
| <programlisting> |
| ipplus.exe <-> (TWAIN INTERFACE) <-> (TWAIN DATA SOURCE.ASPI) -> WINASPI |
| </programlisting> |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>NOTES/BUGS</title> |
| <para> |
| The biggest is that it only works under Linux at the moment. |
| </para> |
| <para> |
| The ASPI code has only been tested with: |
| </para> |
| <itemizedlist> |
| <listitem> |
| <para> |
| a Mustek 800SP with a Buslogic controller under Linux [BM] |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| a Siemens Nixdorf 9036 with Adaptec AVA-1505 under Linux |
| accessed via DOSASPI. Note that I had color problems, |
| though (barely readable result) [AM] |
| </para> |
| </listitem> |
| <listitem> |
| <para> |
| a Fujitsu M2513A MO drive (640MB) using generic SCSI |
| drivers. Formatting and ejecting worked perfectly. |
| Thanks to Uwe Bonnes for access to the hardware ! [AM] |
| </para> |
| </listitem> |
| </itemizedlist> |
| <para> |
| I make no warranty to the ASPI code. It makes my scanner |
| work. Your devices may explode. I have no way of determining |
| this. I take zero responsibility! |
| </para> |
| </sect2> |
| </sect1> |
| |
| </chapter> |
| |
| <!-- Keep this comment at the end of the file |
| Local variables: |
| mode: sgml |
| sgml-parent-document:("wine-doc.sgml" "set" "book" "chapter" "") |
| End: |
| --> |