Wine, Windows progs in Linux

Vroeger hier ook een stukje over samba; verhuisd naar mijn NSLU2 met Debian page.

Op deze pagina (een onderpagina van mijn Linux page) wat aandacht over de koppeling tussen Windows en Linux, met name Wine (draaien van Windows programma's onder Linux). Een korte cursus Wine (in het Nederlands) is te vinden op de pages van de HCC

Wine

Leuk, Linux... Maar, ik heb toch nog wat programma's die alleen voor Windows beschikbaar zijn? Wat doe ik nu?

Wel, daar is nu Wine voor ontwikkeld. Wine is een open-source implementatie van de Windows API (Application Programmers Interface) bovenop X, OpenGL, en Unix (waar linux een variant van is). Moeilijke woorden, maar dat wil zeggen dat programma's die met behulp van Wine draaien, denken dat er Windows (inclusief DirectX) onder zit in plaats van Linux. Ps: Wine staat voor "Wine Is Not an Emulator".

Voorbeelden van programma's die draaien onder Wine zijn: Guild Wars, PhotoShop CS2, World of Warcraft 2.4.X,  Microsoft Office 2003 (grotendeels), en veel anderen. Maar, er zijn ook heel wat 'echte' Linux-alternatieven, zo gebruik ik OpenOffice in plaats van Microsoft Office.

Alternatieve methode: installeer Windows op een PC emulator, zoals Qemu, VMware of VirtualBox. Hiermee heb je echt een volledige (virtuele) Windows PC onder Linux. Wine is zelf geen emulator, maar implementeert (een deel van) de Windows API.

Hoe kom ik aan Wine?

In Ubuntu kan je Wine laden via het Applications -> Add/Remove menu. Voer 'wine' in in het zoekveld, kies wine, en installeer. Fluitje van een cent. Na installatie is er een Wine groep toegevoegd in het applicatie-menu, waar je geïnstalleerde Windows programma's kan vinden. Als voorbeeld is 'notepad' al standaard voorgeïnstalleerd, en die werkt. Ook kan je hier een entry vinden voor het configureren van Wine (Applications -> Wine -> Configure Wine); in ieder geval bij de 'drives' tab de zaak automatisch even laten invullen (Autodetect), en ook de audio-tab even doorlopen (test sound); standaard-instellingen zijn in het algemeen OK.

Irfanview in Wine

Maar, werkt het dan ook? Om dat te proberen heb ik mijn favoriete image-viewer, IrfanView (versie 4.10), geprobeerd te installeren. Volgens de Wine applicatie-database zou dit moeten kunnen, al waren er wel wat problemen gesignaleerd. Via applicatie menu een terminal opgestart, en de eerder gedownloade irfanview installer gedraaid:

wine iview410_setup.exe

Irfan 4.25 werkt nu ook in Ubuntu 9.10 Karmic Koala; maar moet wel met argument /one gestart worden. Verder de eerste keer de .ini file weggooien, anders crasht'ie. Ook zijn de icoontjes niet altijd zichtbaar.

Helaas, niet in een keer soepel, gezien het resultaat:

ubuntu@ubuntu-1ghz:~$ wine iview410_setup.exe
preloader: Warning: failed to reserve range 00000000-60000000
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
err:module:import_dll Library MFC42.DLL (which is needed by L"H:\\
iview410_setup.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"H:\\
iview410_setup.exe" failed, status c0000135
ubuntu@ubuntu-1ghz:~$

Hulp nodig bij installeren, of geen zin zelf configuraties aan te passen? Kijk eens naar Wine-Doors, een package manager waarmee veel gebruikelijke Windows programma's makkelijk geïnstalleerd kunnen worden.

Alternatief: met behulp van WineTricks kan je simpel ontbrekende DLL's laten installeren, zoals de genoemde mfc42.dll.

Bij wat zoeken op de Wine site bleken hier twee problemen te zijn:

  • Niet alle Windows API's zijn zo maar aanwezig, met name mfc42.dll bleek te missen
  • In de nieuwe Ubuntu 8.04 is standaard vanwege veiligheid adres 0 niet meer voor applicaties bereikbaar

Het eerste probleem is te verhelpen door de file mfc42.dll te kopiëren vanuit de windows/system32 map van een Windows systeem (waar ik een geldige installatie van heb) te kopieren naar de windows/system32 map die door Wine wordt bijgehouden. Deze laatste is het makkelijkst te vinden vanuit de wine entry in het Applications menu -> Wine -> Browse C: drive (C: wordt door Wine nagespeeld, de files staan eigenlijk op ~/.wine/drive_c ).

Het tweede probleem is uitgebreid op internet beschreven op de PreloaderPageZeroProblem pagina op de Wine Wiki. Hier staat zowel een 'tijdelijke' oplossing (in de zin dat na een reboot je dit weer opnieuw moet doen), als een permanente fix, die echter wel dan een klein veiligheidsgat veroorzaakt. Ik heb gekozen voor de tijdelijke oplossing, daar dit alleen bij installatie een probleem was, en niet bij het normaal draaien van Irfanview: voor het installeren in het terminal window een extra commando draaien (vraagt wel je Ubuntu wachtwoord):

sudo sysctl -w vm.mmap_min_addr=0

Meer vragen over Wine? Kijk ook eens op de FAQ: Frequently Asked Questions.

Werkt tot de volgende reboot. Meer uitleg op de genoemde PreloaderPageZeroProblem pagina. En ja wel, nu wordt de installatie keurig doorlopen, en heb ik daarna de IrfanView Icons (nou ja, eigenlijk de Wine icons, maar ze starten wel IrfanView) op mijn desktop, en is IrfanView opgenomen in het Wine menu in applications. En, het draait keurig!

Settlers IV onder Wine

Settlers IV was iets lastiger... Wat zeg ik, een mini ramp. Ik heb de normale Settlers IV uitvoering, volgens de applicatie database op WineHQ zou de GOLD versie moeten werken, dus ik dacht de normale ook vast wel. Geïnstalleerd vanaf CD volgens de aanwijzingen in Settlers in Wine. Vervolgens vanuit de installer gestart: crash; system down... Bij opnieuw opstarten van Ubuntu 9.10 Karmic Koala de melding dat het file system beschadigd was, en ik kwam terecht in een 'maintenance shell', zo'n tekst scherm met een Linux prompt... Niks mooie grafische Ubuntu omgeving.

Gelukkig wist ik uit eerdere ervaringen hoe 'chkdsk' te draaien: in Linux (en op mijn systeem met Ubuntu op de derde partitie) is dat e2fsck /dev/sda3 (moet je ook maar net weten). Alles laten repareren (overal maar yes op gezegd), en daarna 'reboot', en alles lijkt weer te werken.

Daarna heb ik de Settlers IV patch settlers4_full_patch_1516.exe geïnstalleerd, nu lijkt het te werken (al gaat het wat traag, op mijn oude laptop, de volgende tips nog te testen: op 16 bit kleur zetten, en in de config file ForceBlit = 1 en PureSoftwareMode = 0 ?).

Valid HTML 4.01 Transitional
Top of page Opmerkingen, commentaar, feedback: mail naar , of stuur een one-liner via:
Je email/naam:  Je reactie: 
Nuttige site? Antwoorden gevonden? Zet dan een link naar mijn site op je eigen site, hebben anderen er misschien ook wat aan!