Linux Quake HOWTO

v1.0.1.18, 18 December 1998

Dit document legt uit hoe Quake, QuakeWorld en Quake II op een Intel Linux systeem te installeren, draaien en problemen op te lossen.

Introductie Quake, QuakeWorld en Quake II zijn waanzinnig populaire 3D actie spellen ontwikkeld door .Als je niet bekend bent met de Quake spellen, zijn er betere plaatsen dan deze HOWTO om de basis te leren. Zie de sectie onderaan voor een lijst met een aantal van deze betere plaatsen.Dit document gaat er vanuit dat je Linux voor het Intel platform beschikbaar en draaiend hebt, en in een aantal gevallen ook het X-Window Systeem. X is niet vereist om deze spellen te draaien, maar het is een prettige manier om een basisinstallatie te testen. Als je X niet draait, kun je de verwijzingen ernaar veilig overslaan.De secties van dit document die in de laatste revisie werden bijgewerkt, hebben een ** achter de kop van de sectie. De secties bijgewerkt voorgaand aan de laatste revisie zijn gemarkeerd met een ++.

Feedback, Commentaar, CorrectiesDit document bevat beslist niet alles wat er over Linux Quake valt te weten. We kunnen het echter met je hulp dichter bij dat ideaal brengen. We willen dat deze HOWTO zo compleet en nauwkeurig mogelijk is, dus als je fouten of weglatingen opmerkt, breng deze dan alsjeblieft onder onze aandacht.Vragen, commentaar, of correcties zouden moeten worden gezonden naar Bob Zimbinski () of Mike Hallock (). Opbouwende kritiek is welkom. Uitbarstingen niet.
Quake/QuakeworldOm Quake op je Linux systeem te installeren, zul je een bepaald type van de officiéle Quake distributie van id nodig hebben. Dit zal ofwel de in de detailhandel verkrijgbare DOS/Windows CD-ROM zijn die je bij je favoriete softwarewinkel kocht, of de shareware-versie die je vanaf het net hebt gedownload (zie voor details over het verwerven van de shareware-versie). Als alternatief kun je, als je Quake reeds op een DOS/Windows machine hebt geïnstalleerd, de relevante bestanden van die installatie gebruiken.

MinimumvereistenJe zult, als een absoluut minimum, het volgende nodig hebben:Een Pentium 90 of beter (133 aanbevolen) computer16 MB RAM (24 aanbevolen)De Quake CD-ROM of de shareware-versie (quake106.zip)Linux kernelversie 2.0.24 of laterlibc 5.2.18 of laterEén van de volgende: X11R5 of later (voor xquake)SVGAlib 1.2.0 of later (voor squake en glquake)30-80 megabytes vrije diskruimte (afhankelijk van hoe je 't installeert)Toegang tot de root-account op de machine waarop je de installatie uitvoertOptioneel: Een ondersteunde geluidskaartEen 3Dfx VooDoo Grafische of VooDoo2 3D grafische accelerator-kaart.Mesa 2.6 of later (voor glquake)
Quake IIOm Quake II op je systeem te installeren zul je een bepaald type van de officiéle Quake II distributie van id nodig hebben. Dit zal ofwel de in de detailhandel verkrijgbare Windows CD-ROM zijn die je bij je favoriete software winkel kocht, of de demo-versie die je van het net hebt gedownload. Zie voor details over het verwerven van de demo-versie. Als alternatief kun je, als je Quake reeds op een Windows computer hebt geïnstalleerd, de relevante bestanden van die installatie gebruiken.

VoorvereistenJe zult als een absoluut minimum het volgende nodig hebben:Een Pentium 90 of beter (133 aanbevolen) computer16 MB RAM (24 aanbevolen)De Quake 2 CD-ROM of de demo-versie (q2-314-demo-x86.exe)Linux kernelversie 2.0.24 of laterlibc 5.2.18 of later Eén van de volgende: X11 server die de MITSM gedeelde geheugenuitbreiding ondersteunt. 8 en 16 bit displays worden ondersteund. (voor X renderer)SVGAlib 1.2.10 of later (voor SVGA- en GL-renderer)25-400 megabytes vrije diskruimte (afhankelijk van hoe je het installeert)Toegang tot de root-account van de computer waarop je installeertOptioneel: Een ondersteunde geluidskaartEen 3Dfx Voodoo Graphics of Voodoo2 of Voodoo Rush 3D grafische accelerator kaart.3Dfx glide libraries geïnstalleerd (voor GL-renderer)Mesa 2.6 of later (voor GL-renderer)
Gerelateerde Software

QStatQstat is een op de commando-regel gebaseerd programma dat de status van internet Quake, QuakeWorld en Quake 2 servers retourneert, gemaakt door Steve Jankowski .Hier is een opsomming van de kenmerken van de homepage van QStat: Ondersteunt Windows 95, NT, en de meeste Unixes Wordt geleverd met C source-code en een uitvoerbaar bestand voor WindowsOndersteunt de oude Quake (NetQuake), QuakeWorld, Hexen II, en Quake II servers Kan alle beschikbare statistische gegevens tonen, waaronder spelersinfo en serverregelsUitvoer van sjablonen voor automatische HTML generatie Onbewerkte display mode voor integratie met HTML-pagina generatorsIngebouwde host name cache Sorteer op ping tijd, spel, of beiden Meer opties dan je nodig hebtQstat is een tool dat je beslist moet hebben als je van plan bent om via het net te spelen. Er zijn bovendien ook een aantal front-ends voor qstat geschreven. Een aantal daarvan worden later in deze sectie opgesomd.Je kunt de laatste versie van qstat ophalen vanaf de homepage van QStat ().
Probleemoplossing/FAQs

Algemeen

OS verschillen overwegingen Hoofdlettergevoeligheid - In DOS en Windows is de letterkast niet belangrijk. BASE1.TXT is hetzelfde als base1.txt is hetzelfde als Base1.Txt. Onder Linux en andere unices is de letterkast veelbetekenend. MOTD.TXT en motd.txt zijn verschillende bestanden. Dit kan problemen met speler models en skin-bestanden veroorzaken als de bestandsnamen in hoofdletters of gemengd hoofd- en kleine letters zijn geïnstalleerd. players/male/santa.PCX moet worden hernoemd naar santa.pcx om voor de Santa skin onder Linux zichtbaar te zijn. Het fixskins.sh script met met quakeworld wordt meegeleverd zal alle bestandsnamen in een directory converteren naar kleine letters. Voor je gemak wordt het hieronder gereproduceerd: #!/bin/sh for x in *; do y=`echo $x | tr '[A-Z]' '[a-z]'` if [ $x != $y ]; then mv $x $y fi done Pad scheidingstekens - DOS en Windows gebruiken het backslash "\" teken om bestands padnaamelementen te scheiden. In Unix, is de backslash een escape teken. Quake en Quake2 voor Windows herkennen zowel " \" als "/" als geldige padscheidingstekens, dus als je bestandspadnamen gebruikt in je configuratiebestanden (of je mod code, of elders wat dat aangaat), wees er dan zeker van dat je "/" en niet "\" gebruikt. Einde-regel tekens - Onder DOS/Windows eindigt iedere regel van een tekstbestand met een carriage return teken (CR) en een linefeed teken (LF). Unix tekstbestanden hebben slechts een linefeed aan het einde van iedere regel. Het gebruiken van DOS/Win opgemaakte tekstbestanden in Unix kan allerlei soorten mysterieuze Quake problemen veroorzaken. Bijvoorbeeld, het onjuist opgemaakte bestand quake2.conf van het Quake2 3.17 package genereerde de fout LoadLibrary ("ref_XXX.so") failed: No such file or directory. LMCTF-TE rapporteert een floating point exception. Als je een probleem hebt dat je niet kunt verklaren, probeer dan de CR's uit je tekstbestanden te verwijderen: mv file.txt file.bak; tr -d '\r' < file.bak > file.txt

Glibc, RedHat 5.x, Debian 2 overwegingen (alleen voor Quake 1)++[Het volgende geldt alleen voor de binaire bestanden van Quake I (squake, glquake, en quake.x11). Met ingang van de versies 2.30 en 3.19 zijn respectievelijk QuakeWorld en Quake II in zowel libc5 als glibc versies beschikbaar.]De uitvoerbare bestanden van Quake werden met libc5 gecompileerd. Nieuwere Linux distributies zoals RedHat 5.1 en Debian 2.0 gebruiken de niet compatibele libc6 (of glibc) als hun standaard C-library. Als je Quake op een glibc-systeem draait zijn er een aantal zaken om op te letten:Zowel RedHat 5 als Debian 2 hebben libc5 compatibiliteit packages die je toestaan om op libc5 gebaseerde applicaties te draaien. Zorg ervoor dat je deze packages hebt geïnstalleerd. Beide distributies plaatsen de op libc5-gebaseerde libraries in /usr/i486-linux-libc5/lib. Zorg ervoor dat Quake de juiste libraries gebruikt. Maak een script aan zoals hieronder waarbij $LD_LIBRARY_PATH verwijst naar je compabiliteit libraries directory voordat Quake wordt opgestart. #!/bin/sh export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib ./quake2 +set vid_ref gl $*Als je een library zoals SVGAlib of Mesa voor gebruik met Quake gaat compileren, moet het met libc5 en dergelijke worden gecompileerd. Het eenvoudigweg bouwen van een nieuwe library overeenkomstig de installatie-instructies zal resulteren in een library die met je standaardlibrary, glibc, is verbonden. Je moet ervoor zorgen dat je nieuwe library alleen verbonden is met libc5 en op libc5-gebaseerde libraries zodat het compatibel met Quake zal zijn. Zie de documentatie van je distributie voor informatie over het koppelen met de niet-standaard libraries.

Mijn muis werkt niet of lijkt willekeurig te reageren. **Draait gpm? gpm is een programma dat je de mogelijkheid geeft om met de muis in virtuele consoles te knippen en te plakken. Veel distributies activeren het standaard. Het kan zijn dat het botst met Quake. Controleer met het volgende commando of het actief is: ps aux | grep gpm Als je uitvoer krijgt dat lijkt op root 6115 0.0 0.4 832 316 ? S 17:54 0:00 gpm -t PS/2 dan is gpm aktief en verstoort Quake. gpm -k (als root) behoort gpm te stoppen. Als dit het niet doet (gpm -k werkt op mijn systeem niet altijd), stop gpm dan met het commando killall gpm. Als je gpm nooit gebruikt, wil je misschien dat het bij het opstarten niet meer wordt geactiveerd. Zie de documentatie voor je distributie voor informatie over hoe je dit moet doen. Is je muis juist gedefinieerd in libvga.config? Dit bestand komt meestal voor in /etc of /etc/vga. Open het en zoek een regel op zoals mouse Microsoft Op mijn systeem is dit de eerste optie in het bestand. Zorg ervoor dat het muistype overeenkomstig je hardware is. Heb je RW permissies voor je mouse device? De permissies van je mouse device mogen je alleen toestaan dat je er leestoegang toe hebt. Quake wil het met leess en schrijf permissies openen, dus je zult het commando chmod 666 erop toe moeten passen of het als een gebruiker of groep moeten draaien die permissie hebben om het te lezen en te beschreven. Het werkelijke devicebestand waar het hier om gaat zal verschillen afhankelijk van welk type muis je op je systeem hebt. Meestal is /dev/mouse een symbolische koppeling naar je werkelijke mouse devicebestand, dus als je het commando ls -l /dev/mouse geeft, zou dit op moeten leveren welk bestand je moet wijzigen.

Mijn Microsoft Intellimouse of Logitech MouseMan+ werkt niet correct. SVGAlib, die de muisinvoer voor SVGA en GL Quake/QW/Q2 afhandelt, ondersteunde de Intellimouse tot versie 1.3.0 niet direct. Als je een versie van SVGAlb van voor 1.3.0 hebt, zou je moeten upgraden, en vervolgens muistype IntelliMouse (voor een seriële muis) of IMPS2 (voor een PS/2 muiz) in bestand libvga.config gebruiken.

Mijn muis is "vertraagd" en het lijkt erop dat hij veel langzamer is dan onder Windows.Voor veel mensen zal slechts het aanslingeren van de gevoeligheids-waarde in de spelconsole het probleem verhelpen De gevoeligheid met de hand in de console of in een Setting sensitivity by hand in the console or in a .cfg bestand instellen staat je toe om de muisgevoeligheid meer te verhogen dan de schuifregelaar in het `Options' menu dit toestaat. bijvoorbeeld sensitivity 15. Van Zoid's 1/7/98 .plan update: "Als je video 'vertraging' in de GL-renderer bemerkt (de herhalingsfrequentie lijkt achter te lopen op je muisbewegingen) typ "gl_finish 1" in de console. Dit forceert het bijwerken op een per frame basis." De laatste versie van SVGAlib (1.3.0) voorziet in een poel parameters in libvga.config die je kunt gebruiken om het gedrag van je muis aan te passen. Met de juiste instellingen zou het mogelijk moeten zijn om je muis zo in te stellen zoals je wilt. Op mijn systeem gaf slechts het wijzigen van mouse_accel_type naar normal (standaard is power) me de resultaten die ik wilde. Ik heb niet met de andere instellingen gerommeld en ik wil niet doen alsof ik doorheb wat ze allemaal doen.

Ik heb een Voodoo2, en als ik wil proberen het met de gl renderer te draaien, rapporteert het dat ik geen Voodoo kaart heb geïnstalleerd.Er zijn voor de Voodoo en Voodoo 2 kaarten verschillende Glide versies. Wees er zeker van dat je de juiste voor je systeem download.

Als ik Quake-spellen onder SVGAlib of GL aan het spelen bent en op CTRL-C druk, wordt het spel beëindigt en laat mijn console soms in een onbruikbare toestand achter.

Soms als Quake/Quake II abnormaal eindigt, laat het mijn console onbruikbaar achter.Ja. Dit bijt. SVGAlib vangt de CTRL-C af en beslist wat ermee moet worden gedaan in plaats van het af te laten handelen door Quake. Ik weet zo gauw geen manier om te gaan met het hacken van SVGAlib. Als je de Quake spelen vanuit een script opstart zoals dat hieronder, waarin het toetsenbord en de terminal worden gereset, loop je echter minder kans om te eindigen met een vastgelopen terminal.#!/bin/sh ./quake2 $* kbd_mode -a reset

het opstarten van squake/quake2 mislukt en het geeft de melding "svgalib: cannot get I/O permissions"De uitvoerbare bestanden van Quake moeten als root worden gedraaid als je de SVGAlib renderer gebruikt, dus je moet ze als root opstarten of ze setuid root instellen. Zie de installatie-instructies in dit document voor details.

Soms werkt de toetsenherhaling niet meer na het spelen van één van de Quake spellen onder X.Om één of andere reden de-activeren de X11-versies van Quake de toetsenherhaling als ze worden uitgevoerd. Als het programma om bepaalde reden abnormaal eindigt, wordt de toetsenherhaling niet weer aangezet. Geef het commando xset r on om het weer te activeren.

Quake/Quake II geeft aan "/dev/dsp : device not configured" Je geluidshardware is niet juist geconfigureerd. Het kan zijn dat je gewoon een insmod sound moet doen, of het kan nodig zijn om je kernel opnieuw te bouwen. Het zou kunnen dat RedHat gebruikers het sndconfig(8) utility aan moeten roepen. Zie de documentatie voor je Linux distributie en/of de LInux Sound HOWTO voor informatie over het configureren van de geluidshardware van je systeem.

GL Quake/Quake II draait langzamer onder Linux dan onder Windows. ++De Windows 3Dfx GL miniport is zwaar geoptimaliseerd voor hetgeen Quake II doet. Mesa aan de andere kant, is algemener en minder geoptimaliseerd.i Als resultaat draait Linux Quake II langzamer dan onder Windows. Dit is geen beperking van Linux, maar een beperking van de huidige drivers. Met de recentste releases van QuakeWorld en Quake II, is de hierboven genoemde 3Dfx miniport beschikbaar voor Linux. Ook werd in Quake II versie 3.20, de OpenGL-functie afhandelings code volledig herschreven, resulterend in een veelbetekenende snelheidswinst.Bovendien zijn er een aantal fijnafstemmingen voor Pentium Pro en Pentium II mogelijk met memory buffering - de laatste /dev/3dfx devicedriver heeft ondersteuning om dit automatisch voor je in te stellen. Het activeren van MTRRs kan resulteren in een aanmerkelijke (10 fps op mijn systeem) GL Quake snelheidswinst. Zie voor meer gedetailleerde informatie hierover.Op een PPro/PII systeem met een Voodoo2, is de performance onder Linux nu op z'n minst net zo snel als onder Windows.

Hoe kan ik een server starten en uitloggen en vervolgens er later naar terugkeren?screen(1) is hiervoor een geweldige utility. Het geeft je de mogelijkheid om veel virtuele schermen in één tty aan te maken en hiertussen te schakelen. Screen wordt met de meeste distributies meegeleverd. Je kunt het downloaden vanaf of iedere GNU mirror.Start screen door het intikken van het commando screen, en maak vervolgens een nieuw screenvenster aan door CTRL-A CTRL-C in te drukken. Je zult niet veel zien als je dit doet, maar wees gerust, er gebeurt iets.Start een Quakeworld server: /usr/local/games/quake/qwsv Open nu een nieuw screen venster met CTRL-A CTRL-C en start een Quake II server op: /usr/local/games/quake2/quake2 +set dedicated 1Je kunt voor- en achteruit tussen je servers schakelen door het indrukkken van CTRL-A CTRL-N.Druk op CTRL-A CTRL-D om het screenprogramma los te koppelen. Screen en je servers draaien nog steeds, maar ze zijn in je terminalvenster niet langer zichtbaar. Je kunt nu uitloggen en de uitvoering van je processen zullen normaal verdergaan.Gebruik screen -r om het voorgaande screenproces opnieuw te koppelen en weer toegang tot je servers te krijgen.Dat is alles. Zie de screen(1) man page voor meer gedetailleerde informatie.

Hoe kan ik ervoor zorgen dat de muis het venser in X niet verlaat? ++Vanuit het Quake II readme.linux bestand (dit geldt voor alle versies van Quake): "Standaard zal de muis niet worden `vastgebonden' aan het Quake2 venster. Om te zorgen dat Quake2 de muis afvangt, selecteer je 'Windowed Mouse' vanuit het videomenu of typ '_windowed_mouse 0' in de console. Doe het omgekeerde om het vrij te geven. Je kunt als volgt het afvangen en vrijgeven van de muis in de console aan toetsen verbinden: bind i "_windowed_mouse 1" bind o "_windowed_mouse 0" Dan zal "i" de muis afvangen en "o" zal het vrijgeven."

Als ik Quake/Quakeworld/Quake II onder X draai, neemt de afbeelding slechts het halve venster in beslag en/of de kleuren zien er allemaal raar uit. ++De X-clients ondersteunen alleen kleurdiepten van 8 en 16 bits per pixel. Je X server draait waarschijnlijk op 24 of 32 bpp. Wijzig de standaardkleurdiepte in 16 bpp en dit probleem is verholpen.

Waar kan ik de broncode krijgen van Quake/QuakeWorld/Quake II zodat ik het voor PPC/Alpha/Gameboy/etc kan compileren? ++De broncode voor de Quake engines is het gepatenteerde eigendom van id Software. Ondanks dat er een goede kans is dat id de source van Quake eventueel zal vrijgeven zoals ze met Worfenstein 3-D en Doom deden, hebben ze dit nog niet gedaan. Ik heb de bron niet van Quake, hoe aardig je me dit ook vraagt.
Tips & Truuks

Draaien van X- en GL-spellen zonder setuid Als je alleen de X- en GL-versies van Quake, QuakeWorld of Quake II draait, hoef je ze niet met root permissies te draaien. SVGA is de enige mode die als root moet worden opgestart. De X-versies hebben slechts toegang tot /dev/dsp nodig, het geluidsdevice. De GL-versies hebben toegang tot de 3Dfx kaart nodig als ook tot /dev/dsp./dev/dsp moet voor Quake leesbaar en schrijfbaar zijn. De meeste distributies kennen er standaard 662 (rw-rw--w-) permissies aan toe. De eenvoudigste oplossing is om het commando chmod 666 /dev/dsp uit te voeren. Op de meeste systemen zal de mogelijkheid om het geluidsdevice te kunnen lezen geen veelbetekenende bedreiging voor de beveiliging vormen. Als deze benadering voor je systeem onacceptabel is, maak dan een groep aan die eigenaar is van /dev/dsp en maak je Quake-spelers leden van die groep.Je hebt de /dev/3dfx driver nodig van Daryll Strauss' glide page () om glide-applicaties (zoals GLQuake) niet-root te kunnen draaien. Download het Device3Dfx.xxx.rpm package en installeer het overeenkomstig de instructies op de webpagina. Nadat je de driver hebt geïnstalleerd, zorg ervoor dat aan het bestand /dev/3dfx de permissies 666 (chmod 666 /dev/3dfx) zijn toegekend.Als /dev/dsp en /dev/3dfx juist zijn ingesteld, kun je het setuid bit van je Quake/QW/Q2 uitvoerbare bestanden verwijderen. Doe gewoon (als root) chmod 0755 XXXXX, waar XXXXX staat voor glquake, quake.x11, of quake2.Als je voordat je deze wijzigingen aanmaakte als root speelde, kan het zijn dat veel van de Quake bestanden (zoals savegames) als eigenaar root hebben en niet toegankelijk zijn voor een gewone gebruiker, dus denk eraan de eigenaar van de bestanden te wijzigen voordat je een poging doet om het spel als niet-root te spelen.
Administratieve zaken

Nieuwe Versies van Dit DocumentNieuwe versies van dit document zullen periodiek worden gepost naar en . Ze zullen ook worden ge-upload naar diverse WWW en FTP sites, waaronder de .Nieuwe versies van dit document zullen periodiek worden gepost naar en .De laatste verise van de Linux Quake HOWTO kan altijd worden gevonden bij de volgende sites: