Girotel met Wine Jasper Aukes, jasper@nl.linux.org v1.1, 3 Mei 1999 Dit document beschrijft hoe het telebankier programma 'Girotel voor Windows' van de Postbank onder Linux te gebruiken is met behulp van Wine. ______________________________________________________________________ Inhoudsopgave 1. Inleiding 2. Minimale Eisen 3. Wine installeren 3.1 Uitpakken, Patchen, Compileren en Installeren 3.2 Het .winerc Bestand 4. Girotel Installeren 4.1 Installeren onder Wine 4.2 Oude Installatie gebruiken 5. Girotel Gebruiken 6. Tips 7. Bekende Problemen en Oplossingen 8. Referenties ______________________________________________________________________ 1. Inleiding Veel Linux gebruikers rebooten hun machine af en toe om gebruik te kunnen maken van het telebankier programma 'Girotel voor Windows' van de Postbank. Behalve dat dit veel tijd kost, is het ook vervelend dat de Linux gebruiker zichzelf genoodzaakt ziet om zijn Windows partitie te laten bestaan. Het zou mooi zijn als de Postbank zich zou realiseren dat het Linux besturingssysteem niet genegeerd kan worden. Tot die tijd moeten Linux gebruikers zich behelpen met de non- Microsoft implementatie van Windows: Wine. Dit project bevindt zich echter nog in 'ALPHA' fase van ontwikkeling en is derhalve nog verre van perfect. Alhoewel ik er zelf nog nooit nadelige gevolgen van heb hoeven ondervinden, is het raadzaam om steeds een backup te maken van uw belangrijke gegevens. Deze HOWTO behandelt alleen versie 1.3 van 'Girotel voor Windows' 2. Minimale Eisen Voor het gebruiken van Wine gelden de volgende minimale systeemeisen: · een x86 machine met een minimum van 16 MB geheugen (32 of meer is beter) · 64 MB swap (mag minder als fysieke geheugen groter is) · Wine zelf heeft als ongestripte versie 70 MB diskruimte nodig, als je de packages, nodig om wine te compileren moet downloaden heb je in het totaal ten minste 140 MB diskruimte nodig. Om wine te compileren heb je minimaal 250 MB diskruimte nodig. · Linux, FreeBSD of Solaris geinstalleerd met X Window System. (Informatie over X via: <http://www.x.org/>) · Microsoft Windows is NIET noodzakelijk om Windows applicaties te draaien, maar wellicht zijn nog niet alle functies van Windows die dat mogelijk maken in wine geimplementeerd. · Packages: · Linux Kernel en Kernel Headers versie 2.0.36 of hoger, FreeBSD- current of FreeBSD 3.0 of hoger Solaris x86 2.5 of hoger · gcc versie 2.7.2.3, flex versie 2.5 of hoger en yacc · xlib, xlib6g, xlib6g-dev 3.3.2.3 · xpm4.7, xpm4g, xpm4g-dev 3.4j · glibc: libc6, libc6-dev 2.0.7u 1.9.9g · ncurses3.4 en ncurses3.4-dev 1.9.9g · XFree86 Version 3.3.2.3, e. g. svga-server · mesag3, mesag3-dev In sommige gevallen zul je packages moeten gebruiken van onstabiele of frozen versies van je distributie. Als je een systeem beheerder bent moet je er op letten dat dit security problemen kan veroorzaken! Mesag3 is alleen nodig als je wine wilt compileren met direct 3d support of als je een binary gebruikt die daarmee gecompileerd is. Alhoewel Linux versie 2.0.x in de meeste gevallen wel zal werken is het zo, dat bepaalde eigenschappen (met name LDT sharing) die nodig zijn voor de juiste ondersteuning van Win32 threads niet geimplementeerd zijn tot kernel versie 2.2. Als je aanhoudende thread-gerelateerde crashes krijgt, kun je beter upgraden naar 2.2. Deze crashes zijn niet vreemd als je weet dat wine vanaf 1999 steeds meer multi-treading is geworden. Vanaf Wine99xxxx is het eigenlijk hoe dan ook aan te raden om kernel 2.2.x te gebruiken. De sources voor libXpm zijn waarschijnlijk beschikbaar op de FTP site waar je ook Wine vandaan hebt. Ze kunnen ook gevonden worden op <ftp.x.org> en alle mirror sites daarvan. Als je RedHat gebruikt, installeer dan de xpm en xpm-devel packages. Debian gebruikers hebben xpm4.7, xpm4.g en xpm4g-dev 3.4j nodig. Op x86 systemen is gcc >= 2.7.2 vereist. Daarnaast heb je ook flex versie 2.5 of hoger nodig en yacc. Bison kan als vervanging dienen voor yacc. Als je RedHat gebruikt, installeer dat de flex en de bison packages. Dit document is slechts zinvol voor diegenen die een girotel abonnement voor particulieren hebben bij de Postbank (niet de versie voor zakelijk gebruik). 3. Wine installeren Tijdens het schrijven van dit document was de laatste versie van Wine waarmee Girotel goed werkt die van 14 maart 1999 met een patch van Rein Klazes, rklazes@casema.net Dit maakt het momenteel nog noodzakelijk om de Wine sources en de patch op te halen en Wine zelf te compileren. Voor de meest up-to-date informatie over versies van Wine waarmee 'Girotel voor Windows' werkt, dient men op <http://www.casema.net/~rklazes/girotel.html> te kijken. De Wine-sources zijn verkrijgbaar op alle Sunsites, bijvoorbeeld: <ftp://ftp.leidenuniv.nl/pub/linux/sunsite/ALPHA/wine/development/Wine-990314.tar.gz> De patch staat bij de programmeur zelf op: <http://www.casema.net/~rklazes/tools/gt-990314.diff.gz> 3.1. Uitpakken, Patchen, Compileren en Installeren Pak de Wine sources uit op een partitie met minimaal 170 MB vrije ruimte. Dit is te controleren door in de directory waarin u Wine wilt uitpakken het volgende te doen: jasper@ja /tmp# df -k . Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda6 630255 89940 507759 15% /tmp Hier is bijvoorbeeld nog ruimte genoeg (Het getal onder 'Available' geeft aan hoeveel kilobytes vrij zijn) Pak de source uit door de volgende opdracht te geven: tar zxvf Wine-990314.tar.gz Als het goed is pakt uw browser het .diff.gz file zelf uit zodat u het kunt bewaren door de browser de pagina te laten opslaan. Sla het diff file op in dezelfde directory als waar u Wine heeft uitgepakt. Nu is het tijd om de patch erover heen te halen: patch -p1 < gt-990314.diff Vervolgens kan Wine gecompileerd en geinstalleerd worden door: cd /tmp/wine990314 ./configure make depend && make make install NB: De 'make depend && make' zal waarschijnlijk heel erg lang duren. Daarnaast is het zo, dat './configure --disable-lib' in plaats van de hierboven genoemde opdracht './configure' u een belangrijke tijd- en ruimtebesparing zal opleveren. 3.2. Het .winerc Bestand Wine heeft een configuratie bestand nodig waar onder andere in staat welke directories hij als welke driveletter zal gaan gebruiken. Hier wordt door Wine /usr/local/etc/wine.conf voor gebruikt dat voor iedere gebruiker geldt. Deze system-wide configuratie kan overruled worden door een /.winerc file. Hier volgt een eenvoudig .winerc bestand om Girotel te kunnen gebruiken: [Drive A] Path=/mnt/floppy Filesystem=win95 Type=floppy Label=Floppydrive (if mounted) [Drive C] Path=/home/wine Filesystem=win95 Type=hd Label=Windows disk [Drive E] Path=/mnt/cdrom Filesystem=win95 Type=cdrom Label=CD-Rom (if mounted) [wine] windows=c:\windows system=c:\windows\system temp=c:\Temp path=c:\;c:\windows;c:\windows\system symboltablefile=/usr/local/lib/wine.sym printer=on [DllDefaults] EXTRA_LD_LIBRARY_PATH=${HOME}/wine/cvs/lib DefaultLoadOrder = native, elfdll, so, builtin [DllPairs] kernel = kernel32 gdi = gdi32 user = user32 commdlg = comdlg32 commctrl= comctl32 ver = version shell = shell32 lzexpand= lz32 mmsystem= winmm msvideo = msvfw32 winsock = wsock32 [DllOverrides] kernel32, gdi32, user32 = builtin kernel, gdi, user = builtin toolhelp = builtin comdlg32, commdlg = elfdll, builtin, native version, ver = elfdll, builtin, native shell32, shell = builtin, native lz32, lzexpand = builtin, native commctrl, comctl32 = builtin, native wsock32, winsock = builtin advapi32, crtdll, ntdll = builtin, native mpr, winspool = builtin, native ddraw, dinput, dsound = builtin, native winmm, mmsystem = builtin msvideo, msvfw32 = builtin, native w32skrnl = builtin wnaspi32, wow32 = builtin system, display, wprocs = builtin wineps = builtin [serialports] com1=/dev/ttyS0 com2=/dev/ttyS1 [parallelports] lpt1=/dev/lp0 [Tweak.Layout] WineLook=true Vul overal de voor u geldende waarden in. Zoals u kunt zien heb ik een user 'wine' aangemaakt met als homedirectory /home/wine. Ik heb hiervoor gekozen omdat ik niet wilde dat Wine aan mijn Windows partitie moest zitten, omdat ik het dan slechts als root kan draaien en ik genoodzaakt ben om mijn Windows partitie te houden (ja, hij gaat er echt nog eens vanaf :-) ) Bovendien biedt het Linux filesysteem betere beveiliging met behulp van het systeem van permissies. (Wat ook een reden voor het gebruik van Windows NT kan zijn i.p.v. Windows 95). Ik heb mijn Windows systeem bestanden (c:\windows) naar /home/wine/windows gekopieerd als u daar geen ruimte voor heeft, moet u uw .winerc file aanpassen zodat in de sectie [wine] naar de juiste Windows systeem files wordt verwezen. (Voor het functioneren van 'Girotel voor Windows' zijn de Windows systeembestanden niet noodzakelijk; lege systeemdirectories volstaan) 4. Girotel Installeren U kunt er voor kiezen om Girotel te installeren vanuit Windows, maar het is ook mogelijk om dit met Wine zelf te doen. Voor uitleg over de Windows installatie kunt u zich vervoegen bij de Postbank of Microsoft. Hieronder volgt de uitleg over het installeren onder Wine en een uitleg over hoe u te werk moet gaan als u Girotel al gebruikte onder Windows. 4.1. Installeren onder Wine Maak een tijdelijke directory 'girotel' aan op een partitie waarvan minimaal 37 MB diskruimte beschikbaar is (bijvoorbeeld /tmp). Mount de CD-Rom met Girotel (verkrijgbaar bij de Postbank) en kopieer de benodigde installatie software alsvolgt: mount /mnt/cdrom cd /mnt/cdrom cp -r * /tmp/girotel Installeer vervolgens als root (of in ieder geval als een user met voldoende schrijfpermissie) Girotel door wine te draaien met als argument de setup.exe applicatie: cd /tmp/girotel/instal wine setup.exe Installeer Girotel vervolgens in C:\GIROTEL 4.2. Oude Installatie gebruiken Indien u Girotel al gebruikte onder Windows 95, hoeft u de installatie niet nog een keer uit te voeren. U kunt de benodigde files gewoon naar een Linux partitie overzetten (voor de veiligheid) en doorgaan met het hoofdstuk 'Girotel Gebruiken'. mkdir /home/wine/girotel cd /mnt/windows/girotel tar cf - .|(cd /home/wine/girotel;tar xvf -) 5. Girotel Gebruiken Als Girotel geinstalleerd is in /home/wine/girotel moet er nog het een en ander gebeuren voordat Girotel gebruikt kan worden. Om te beginnen doet u er goed aan een groep aan te maken van girotel gebruikers die de gebruikers bevat op uw systeem die girotel mogen gebruiken. Om ervoor te zorgen dat alleen die gebruikers bij de bestanden te laten komen die u dat wilt toestaan moet u een groep girotel aanmaken waarin alle gebruikers zitten die Girotel op uw machine mogen gebruiken. In de file /etc/groups staat wie lid zijn van welke groepen. Voeg hieraan de volgende regel toe: girotel:x:300:user1,user2,user3 Waarbij de login namen van de gebruikers de plaats moeten worden gebruikt in plaats van 'user1', 'user2' en 'user3'. Gebruik hierbij geen spaties. Zet nu de directory waarin girotel leeft dicht en verander de group- eigenaar door de volgende opdrachten te geven: chmod 770 /home/wine/girotel chgrp -R girotel /home/wine/girotel Om Girotel gebruik te kunnen laten maken van uw modem moet het modem bereiken: chmod 664 /dev/ttyS0 chgrp girotel /dev/ttyS0 Vul de voor u geldende waarden in (Com1 = /dev/ttyS0, Com2 = /dev/ttyS1) Rest nog een handig scriptje om Girotel te starten: (bewaar dit als /usr/local/bin/girotel en maak het bestand 'executable' met "chmod +x /usr/local/bin/girotel") #!/bin/sh umask 007 cd /home/wine/girotel/gtwin /usr/local/bin/wine -managed -desktop 800x600 gtwin.exe Start Girotel vervolgens met 'girotel' (Of: /usr/local/bin/girotel als /usr/local/bin niet in uw pad staat) 6. Tips · Veel andere windows applicaties zijn nu ook vrij gemakkelijk aan de praat te krijgen. · Zorg dat het programma zich bevindt in een directory die te benaderen is (dat wil zeggen, opgegeven in de .winerc) · Voer het commando uit: wine /pad/programma (Voor sommige applicaties is het noodzakelijk dat u zich in de directory bevindt waar de applicatie staat) · Als het niet lukt kunt u het proberen met wat opties. (wine -h geeft ze allemaal) Van de belastingdiskette en de reisplanner weet ik uit ervaring dat ze geen probleem vormen. De reisplanner bijvoorbeeld voer ik zo uit: /usr/local/bin/wine -desktop 800x600 /home/wine/apps/reisplan/rpw.exe · Blijf de Postbank vragen om een Girotel versie voor Linux/Unix, de reactie van de Postbank was in mijn geval vaak "Er is geen interesse voor een Linux versie". · Houd mijn homepage op <http://www.nl.linux.org/~jasper> in de gaten, ik ben bezig met een projectje om Girotel beschikbaar te maken voor Linux/Unix/Java/... 7. Bekende Problemen en Oplossingen · Display Problemen. Probeer eens optie -dll USER32,USER=n, je hebt dan wel de USER.EXE in de windows\system directory nodig. · Euro-button crasht girotel. Workaround: druk op de euro-button, muisknop ingedrukt houden, verplaats muis en laat los als de cursor niet meer op de eurobutton staat. · Na het inloggen hangt girotel (Wine-990328 en Wine-990426). · Help functie werkt niet. Apart werkt het wel: wine "winhelp gtwin.hlp" · Girotel is langzaam. Beperk de grootte van de desktop, bv met -desktop 1024x768. Zet het geluid uit. Extreem lange tijden (vijf minuten of zo) kunnen veroorzaakt worden door font problemen. · Girotel klaagt over modeminstellingen. Controleer of de permissies goed zijn ingesteld (zie hoofdstuk 'Girotel Gebruiken') en of u wellicht /dev/ttyS1 moet gebruiken. Com1 = /dev/ttyS0, Com2 = /dev/ttyS1 NB: Dit moet ook in .winerc in uw homedirectory of in /usr/local/etc/wine.conf aangepast worden. Voor verdere problemen verwijs ik naar de documentatie op <http://www.winehq.com/doc.html>, de wine man-page ('man wine') en de README die met de Wine-sources wordt meegeleverd. Er is tijdens het schrijven van dit document een tijdelijke versie van een wine-HOWTO beschikbaar via <http://www.westfalen.de/witch/wine-HOWTO.txt> 8. Referenties De uitstekende documentatie op <http://www.winehq.com/doc.html> is mij meerdere malen goed van pas gekomen. Verder moet ik Rein Klazes, rklazes@casema.net bedanken voor zijn patches die het mogelijk hebben gemaakt Girotel te gebruiken onder Wine en voor het commentaar waarmee ik deze HOWTO beter heb kunnen maken. Op zijn homepage op <http://www.casema.net/~rklazes/girotel.html> geeft Rein de laatste informatie over het gebruik van girotel onder wine voor zover dit document niet up to date is of daarin niet voorziet.