Girotel met Wine

Jasper Aukes, [email protected]

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.

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:

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, [email protected] 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 directory's 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 systeemdirectory's 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 `schrijfbaar' zijn voor de leden van de groep 'girotel'. Dit kunt alsvolgt 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

7. Bekende Problemen en Oplossingen

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, [email protected] 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.