<!doctype linuxdoc system>
<linuxdoc>
<article>
<titlepag>
<title>Girotel met Wine</title>
<author><name>Jasper Aukes, <tt/jasper@nl.linux.org/</name></author>
<date>v1.1, 3 Mei 1999</date>

<abstract>
Dit document beschrijft hoe het telebankier programma 'Girotel voor Windows' van
de Postbank onder Linux te gebruiken is met behulp van Wine.
</abstract>
</titlepag>

<toc>


<sect><heading>Inleiding</heading>

<p>
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'
</p>
</sect>

<sect><heading>Minimale Eisen</heading>

<p>
Voor het gebruiken van Wine gelden de volgende minimale systeemeisen:

<itemize>
<item> een x86 machine met een minimum van 16 MB geheugen (32 of meer is beter)
</item>
<item> 64 MB swap (mag minder als fysieke geheugen groter is)
</item>
<item> 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.
</item>
<item> Linux, FreeBSD of Solaris geinstalleerd met X Window System. (Informatie
over X via: <url url="http://www.x.org/">)
</item>
<item> Microsoft Windows is <em>NIET</em> noodzakelijk om Windows applicaties te
draaien, maar wellicht zijn nog niet alle functies van Windows die dat mogelijk
maken in wine geimplementeerd.
</item>
<item> Packages:

<itemize>
<item>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</item>
<item>gcc versie 2.7.2.3, flex versie 2.5 of hoger en yacc</item>
<item>xlib, xlib6g, xlib6g-dev 3.3.2.3</item> 
<item>xpm4.7, xpm4g, xpm4g-dev 3.4j</item> 
<item>glibc: libc6, libc6-dev 2.0.7u 1.9.9g </item>
<item>ncurses3.4 en ncurses3.4-dev 1.9.9g</item> 
<item>XFree86 Version 3.3.2.3, e. g. svga-server </item>
<item>mesag3, mesag3-dev</item>
</itemize>
</item>
</itemize>

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 <url url="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).
</p>
</sect>

<sect><heading>Wine installeren</heading>

<p>
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,
<tt/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
<url url="http://www.casema.net/~rklazes/girotel.html"> te kijken.

De Wine-sources zijn verkrijgbaar op alle Sunsites, bijvoorbeeld:
<url url="ftp://ftp.leidenuniv.nl/pub/linux/sunsite/ALPHA/wine/development/Wine-990314.tar.gz">
De patch staat bij de programmeur zelf op:
<url url="http://www.casema.net/~rklazes/tools/gt-990314.diff.gz">
</p>

<sect1><heading>Uitpakken, Patchen, Compileren en Installeren</heading>

<p>
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:
<tscreen><verb>
jasper@ja /tmp# df -k .
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hda6             630255   89940   507759     15%   /tmp
</verb></tscreen>
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:

<tscreen><verb>
tar zxvf Wine-990314.tar.gz
</verb></tscreen>

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:
<tscreen><verb>
patch -p1 < gt-990314.diff
</verb></tscreen>

Vervolgens kan Wine gecompileerd en geinstalleerd worden door:
<tscreen><verb>
cd /tmp/wine990314
./configure
make depend && make
make install
</verb></tscreen>

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.
</p>
</sect1>

<sect1><heading>Het .winerc Bestand</heading>

<p>
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:

<tscreen><verb>
[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
</verb></tscreen>

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)
</p>
</sect1>
</sect>

<sect><heading>Girotel Installeren</heading>

<p>
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.
</p>

<sect1><heading>Installeren onder Wine</heading>

<p>
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:

<tscreen><verb>
mount /mnt/cdrom
cd /mnt/cdrom
cp -r * /tmp/girotel
</verb></tscreen>

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:

<tscreen><verb>
cd /tmp/girotel/instal
wine setup.exe
</verb></tscreen>

Installeer Girotel vervolgens in C:\GIROTEL
</p>
</sect1>

<sect1><heading>Oude Installatie gebruiken</heading>

<p>
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'.

<tscreen><verb>
mkdir /home/wine/girotel
cd /mnt/windows/girotel
tar cf - .|(cd /home/wine/girotel;tar xvf -)
</verb></tscreen>
</p>
</sect1>
</sect>

<sect><heading>Girotel Gebruiken</heading>

<p>
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 <em/die/ gebruikers bij de bestanden te laten
komen die u dat wilt toestaan moet u een groep <em/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:
<tscreen><verb>
girotel:x:300:user1,user2,user3
</verb></tscreen>

Waarbij de login namen van de gebruikers de plaats moeten worden gebruikt in
plaats van 'user1', 'user2' en 'user3'. Gebruik hierbij <em/geen/ spaties.

Zet nu de directory waarin girotel leeft dicht en verander de group-eigenaar
door de volgende opdrachten te geven:

<tscreen><verb>
chmod 770 /home/wine/girotel
chgrp -R girotel /home/wine/girotel
</verb></tscreen>

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:

<tscreen><verb>
chmod 664 /dev/ttyS0
chgrp girotel /dev/ttyS0
</verb></tscreen>

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")

<tscreen><verb>
#!/bin/sh
umask 007
cd /home/wine/girotel/gtwin
/usr/local/bin/wine -managed -desktop 800x600 gtwin.exe
</verb></tscreen>

Start Girotel vervolgens met 'girotel' (Of: /usr/local/bin/girotel als
/usr/local/bin niet in uw pad staat)
</p>
</sect>

<sect><heading>Tips</heading>

<p>
<itemize>
<item>Veel andere windows applicaties zijn nu ook vrij gemakkelijk aan de praat
te krijgen.
<itemize>
<item>Zorg dat het programma zich bevindt in een directory die te benaderen is
(dat wil zeggen, opgegeven in de .winerc)
</item>
<item>Voer het commando uit: wine /pad/programma (Voor sommige applicaties is
het noodzakelijk dat u zich in de directory bevindt waar de applicatie staat)
</item>
<item>Als het niet lukt kunt u het proberen met wat opties. (wine -h geeft ze
allemaal)
</item>
</itemize>
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
</item>
<item>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".
</item>
<item>Houd mijn homepage op <url url="http://www.nl.linux.org/~jasper"> in de
gaten, ik ben bezig met een projectje om Girotel beschikbaar te maken voor
Linux/Unix/Java/...
</item>
</itemize>
</p>
</sect>

<sect><heading>Bekende Problemen en Oplossingen</heading>

<p>
<itemize>
<item>Display Problemen. Probeer eens optie -dll USER32,USER=n, je hebt dan wel
de USER.EXE in de windows\system directory nodig.
</item>
<item>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.
</item>
<item>Na het inloggen hangt girotel (Wine-990328 en Wine-990426).
</item>
<item>Help functie werkt niet. Apart werkt het wel: wine "winhelp gtwin.hlp"
</item>
<item>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.
</item>
<item>Girotel klaagt over modeminstellingen. Controleer of de permissies goed
zijn ingesteld (zie hoofdstuk 'Girotel Gebruiken') en of u wellicht /dev/ttyS1
moet gebruiken.
<tscreen><verb>
Com1 = /dev/ttyS0, Com2 = /dev/ttyS1
</verb></tscreen>
<em>NB:</em> Dit moet ook in .winerc in uw homedirectory of in
/usr/local/etc/wine.conf aangepast worden.
</item>
</itemize>

Voor verdere problemen verwijs ik naar de documentatie op
<url url="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
<url url="http://www.westfalen.de/witch/wine-HOWTO.txt">
</p>
</sect>

<sect><heading>Referenties</heading>

<p>
De uitstekende documentatie op <url url="http://www.winehq.com/doc.html"> is mij
meerdere malen goed van pas gekomen. Verder moet ik Rein Klazes,
<tt/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
<url url="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.
</p>
</sect>
</article>
</linuxdoc>
