Verder Terug Inhoud

6. Tips & Truuks

6.1 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 ( http://glide.xxedgexx.com/3DfxRPMS.html) 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.

6.2 Draaien van SVGA- en GL-spellen vanuit X

De GLX Quakeworld en Quake II clients zijn ingebouwde X-applicaties, maar aangezien ze Mesa eerder zullen gebruiken dan de 3Dfx mini-driver, zijn ze langzamer dan de lib3dfxgl.so versies. Om deze reden, kan het zijn dat je nog steeds de voorkeur geeft om op deze manier je spellen vanuit X op te starten boven het gebruik van de GLX-client.

Dit is gebaseerd op een Linux Gazette 2 Cent Tip door Joey Hess ( joey@kite.ml.org). Het origineel is te vinden bij http://www.ssc.com/lg/issue20/lg_tips20.html#squake.

Ja, het is mogelijk om de Quake spellen vanuit X te draaien als je root bent, maar dergelijk gedrag is ondeugend, en je loopt nog steeds het risico dat Quake crasht en de console in een zodanige staat achterlaat dat het niet meer reageert. Met een klein beetje werk kun je het voor een gewone gebruiker mogelijk maken om SVGA en GL Quake vanuit X te draaien EN om automatisch naar X terug te keren als het programma is beëndigd, ongeacht of het wel of niet normaal is afgesloten.

Opmerking: als ik het in de tekst hieronder over "Quake" heb, bedoel ik eigenlijk "quake, glquake squake, qwcl, glqwcl, qwcl.x11 of quake2".

6.3 3Dfx "fijnafstemmings" instellingen werken ook onder Linux

Het kan zijn dat je eens hebt gezien of manieren hebt horen noemen om Quake's OpenGL performance "beter af te stellen" door het instellen van diverse omgevingsvariabelen. Deze variabelen zijn ook geldig onder Linux. Je moet ze alleen iets anders instellen. Als een Windows/DOS "fijnafstemmings" leidraad je aangeeft:

SET SST_GRXCLK=59

Doe het dan, onder Linux, als volgt:

export SST_GRXCLK=59

6.4 De Poor Man's Server Browser

Joe S. ( jszabo@eden.rutgers.edu) stelt voor:

een truuk die ik gebruik met qstat:
Ik maak een bestand met mijn favoriete servers en doe vervolgens
qstat -f /C/quake2/file.txt | less

druk op control z voor een tijdelijke onderbreking, en kopieer vervolgens het ip-adres of de hostnaam die ik met gpm wil met een commando-regel als:

./quake2 +connect expert.eqclans.com
Vervolgens kan ik fg gebruiken om later naar de lijst terug te keren...

6.5 Gebruiken van lib3dfxgl.so voor Quake I

Je kunt de 3Dfx mini-driver (lib3dfxgl.so) van Quakeworld of Quake II ook met glquake gebruiken. Kopieer de glqwcl.3dfxgl of quake2.3dfxgl scripts gewoon naar een nieuw bestand, laten we zeggen glquake.3dfxgl. Wijzig vervolgens het glquake.3dfxgl script zodat het glquake uitvoert in plaats van glqwcl. Dezelfde beperkingen gelden ook hier met betrekking tot het uitvoeren als root, als ook de verschillen tussen het draaien onder glibc en libc5. Zie de secties Quakeworld of Quake II voor meer informatie over lib3dfxgl.so.

6.6 Afkomen van die hinderlijke "POSSIBLE SCAN CODE ERROR 57" melding in GLQuake. ++

Als je er genoeg van hebt om iedere keer dat onbruikbare bericht te zien als je in GLQuake op de spatiebalk drukt, voer dan het volgende commando vanuit je quake directory uit en je zult er nooit meer last van hebben. Dit kleine stukje Perl code vervangt gewoon het eerste teken van de melding door een null teken, wat in C programma's het einde van een string aangeeft. Als GLQuake nu denkt dat het ons een mogelijke scancode fout moet laten weten, geeft het in plaats daarvan als uitvoer een lege string! Oh, en van het originele binaire bestand glquake wordt ook nog eens een automatische backup gemaakt met de naam glquake.bak.

    perl -i.bak -0777pe 's/P(ossible unknown scancode)/\0$1/g' glquake

Met dank aan Andrew Chase ( fixy@fixy.org) hiervoor.


Verder Terug Inhoud