LinuxNetMag
Wine: Installation and Setup
List | Home
TOC
   
LinuxNetMag #3

  Software
 MP3
Xaudio, xmms, mp3blaster
freeztag, kmp3te
 Games
TTY-Quake, Quake3Test
Descent, LDescent, DX1
Flightsimulators
 Applications
Wine: Installation and Setup
VCron, Kcrontab
Passwords with Gpasman
 Misc.
Bootlogos: Welcome2L...
[email protected] and tools
Lightspeed
  
 

Network

Alternative Web-Browser
Linpopup
VNC - Windows X-Server
Fetchmail Part II
Apache the webserver
Windows networks: Samba
Webpublishing: Sitecopy
downloadhelp Wget
Webalizer
recommended links
  
 

Hardware

HD-/Floppy- Access
Jslaunch
  
 

Misc.

Editorial
Guestbook
Mailingliste
Complete list of articles



printer-version


 
Wine

WineInstalling wine has become easier now that precompiled versions and rpms can be downloaded from all over the web. However, these versions are always a little bit older than the newest source code. Since every leap in the version numbers always is a big leap in development, this may be quite a large disadvantage.  

Therefore we do not describe how to install one of these precompiled version (there would not be much to describe) but we try to generate a wine version using the source code instead.

First, you should download the newest wine version from http://www.winehq.com/. This may take a while, even with ISDN about 20 minutes. For the creation of this text, the version wine-990815 has been used.

After unzipping the program to /tmp with

>> tar zxvf wine-990815.tgz -C /tmp
change to the newly created directory and execute
>> make depend && make
On our system it did not compile without errors. It stopped at the file windows/dinput.c, which handles the joystick support for wine. Either the error occurs since we do not have included joystick support into the kernel or this part is not correctly programed. You ought to know that wine is still in an alpha state. If you get the same error but you do not need the joystick for running WINDOWS (playing Unreal is much better with a mouse) then it should help if you comment the faulty parts out. Search for the corresponding part in the file and change it as in the example below.
 
File /tmp/wine-990815/windows/dinput.c
static void joy_polldev(JoystickAImpl *This) {
    struct timeval tv;
    fd_set readfds;
    struct js_event;/* jse;*/

    if (This->joyfd==-1)
 return;
    while (1) {
 memset(&tv,0,sizeof(tv));
 FD_ZERO(&readfds);FD_SET(This->joyfd,&readfds);
 if (1>select(This->joyfd+1,&readfds,NULL,NULL,&tv))
     return;
 /* we have one event, so we can read 
 if (sizeof(jse)!=read(This->joyfd,&jse,sizeof(jse))) {
     return;
 }
 TRACE("js_event: type 0x%x, number %d, value %d\n",
jse.type,jse.number,jse.value);
 if (jse.type & JS_EVENT_BUTTON) {
     GEN_EVENT(DIJOFS_BUTTON(jse.number),
jse.value?0x80:0x00,jse.time,evsequence++);
     This->js.rgbButtons[jse.number] = jse.value?0x80:0x00;
 }
 if (jse.type & JS_EVENT_AXIS) {
     switch (jse.number) {
     case 0:
  GEN_EVENT(jse.number*4,jse.value,jse.time,evsequence++);
  This->js.lX = map_axis(jse.value);
  break;
     case 1:
  GEN_EVENT(jse.number*4,jse.value,jse.time,evsequence++);
  This->js.lY = map_axis(jse.value);
  break;
     case 2:
  GEN_EVENT(jse.number*4,jse.value,jse.time,evsequence++);
  This->js.lZ = map_axis(jse.value);
  break;
     default:
  FIXME("more then 3 axes (%d) not handled!\n",jse.number);
  break;
     }
 }*/
    }
}


 

<--Here, the original code read "struct js_event jse;"
 
 
 
 
 
 
 

<-- Here the end of the comment was removed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

<-- Now the comment ends here 

After a second

>> make
wine should compile the whole code.

Afterwards you copy the whole source code together with the binary file to /usr/local/ . Make sure you are logged in as root user to do this and that enough hard disk-space is left. The whole directory needs about 230MB.

>> su
Enter password
>> cp -a /tmp/wine-990815/ /usr/local
[If you do not have enough space left you could leave copying it out and install wine directly from the tmp directory]

Then change to the new directory

>> cd /usr/local/wine-990815/
and install the package with
>> make install
Now you have to adapt wine to your system. For this task a graphical frontend is already available. It is started with
>> /usr/local/wine-990815/tools/wineconf.tcl


Wine-Konfiguration

Choose the button "Auto-generate a new configuration file". Then the program will ask for some information on the hardware in your system like CD-drivers or CD-writers. After you have answered these questions the program will install the config file wine.conf into the directory /usr/local/etc . Too bad the program always stops when generating the configuration file and prints an error message on our system.

It would help if you used the program wineinstall

>> /usr/local/wine-990815/tools/wineinstall
, which does not have a graphical frontend but generates the configuration file immaculately.
[This is just an emergency solution for the case that wineconf does not work. If wineconf.tcl runs on your system without problems there is no need to take this last step!]

Now you got the file /usr/local/etc/wine.conf . This file is the default config file for your system. It is recommended to create a .winerc -file in your home directory which you can adapt to your wishes. .winerc overwrites the settings made by /usr/local/etc/wine.conf .

As a normal user (not any longer as root) you now should copy the file into your home directory with

>> cp /usr/local/etc/wine.conf ~/.winerc
The next step is a restart of wineconf.tcl (/usr/local/wine-990815/tools/wineconf.tcl) , clicking the button "Use existing config file:" and choosing the file "~/.winerc" in the menu on the right.
The following config window appears:

Konfiguration

Here you can define which letter belongs to which hard disk. It is recommended to create one drive for the Linux directory /tmp/ (it is drive j in the screenshot) and select this one at "Wine section:" as the "Temp" drive. Then you won't have any permission problems later on.

Now we try using wine:
If you want to start a WINDOWs program using the emulation, you have to be able to reach it under Linux. Normally these drives are mounted to /mnt/cdos, /mnt/ddos/ ...

To use the emulation you start wine together with the path to the windows program. Starting for example wordpad would look like

>> wine /mnt/cdos/Programme/wordpad.exe


Screenshot

Since the introduction of a graphical frontend for this program, configuration has become much simpler. Only the traps while compiling and installing the source code disturb the user. It is still an alpha version but it is already quite useful.
Wine is good for working but playing is possible as well. Not only Unreal and StarCraft, but many other games work with wine as well, which has supported direct3d and 3Dfx for a long time (of course, you need a 3Dfx card to use it). The configuration of wine is much more complicated in these cases and we do not go any deeper in here. More information on the configuration of wine for playing is available at "Wine Success Stories" at http://www.linuxgames.com/wine/  .

Links

 
print
Other issues of Linux NetMag
[ #1 | #2 | #3 | Main ]