Si vous exécutez uniquement les versions X et GL de Quake, QuakeWorld ou Quake
II, vous n'aurez pas besoin de les lancer avec les permission root. SVGA est le
seul mode qui requiert d'être lancé par root. Les versions X ont simplement
besoin d'avoir accès à /dev/dsp
, le fichier périphérique son. les
versions GL ont de plus besoin d'avoir accès à la carte 3Dfx par
/dev/dsp
.
/dev/dsp
doit être lisible et modifiable par Quake. La plupart des
distributions définissent les permissions à 662 (rw-rw--w-
) par défaut.
La solution la plus simple est de faire un chmod 666 /dev/dsp
. Sur la
plupart des systèmes, la possibilité de lire depuis un fichier périphérique son
ne pose pas de problème de sécurité majeur. Si cette approche n'est pas
acceptable pour votre système, créez un groupe propriétaire de /dev/dsp
et rendez les joueurs de Quake membre de ce groupe.
Vous aurez besoin du driver /dev/3dfx
de la page glide de Daryll
Strauss (
http://glide.xxedgexx.com/3DfxRPMS.html) pour lancer les anciennes
applications glide (like GLQuake) sans être root. Téléchargez le paquetage
Device3Dfx.xxx.rpm
et installez-le en suivant les instructions de la
page web. Après l'installation du driver, vérifiez que les permissions de
/dev/3dfx
sont à 666 (chmod 666 /dev/3dfx
).
Lorsque /dev/dsp
et /dev/3dfx
seront correctement paramétrés,
vous pourrez retirer le bit setuid de vos exécutables Quake/QW/Q2. Faites
simplement (en tant que root) chmod 0755 XXXXX
, où XXXXX représente
glquake
, quake.x11
, ou quake2
.
Si vous avez joué en tant que root avant de faire ces modifications, beaucoup de vos fichiers Quake (comme les sauvegardes) peuvent appartenir à root et être inaccessibles à un utilisateur normal, aussi souvenez-vous de modifier le propriétaire de ces fichiers avant de jouer en tant que simple utilisateur.
Les clients Quakeworld et Quake II GLX sont des applications natives X, mais
depuis qu'elles utilisent Mesa plutôt que le mini-driver 3Dfx, elles sont plus
lentes que les versions lib3dfxgl.so
. Pour cette raison, vous pouvez
préférer encore lancer ces jeux depuis X plutôt que d'utiliser les clients GLX.
Ce qui suit est tiré de la Gazette LINUX n°20, "Truc" par Joey Hess ( joey@kite.ml.org). L'original de ce document se trouve sur http://www.ssc.com/lg/issue20/lg_tips20.html#squake
Oui, il est possible d'exécuter les jeux Quake depuis X en tant que root, mais cette option est inconvenante, et vous courez en plus le risque d'un plantage de Quake laissant la console sans réponse. Avec un peu de travail, vous pouvez donner la possibilité à un utilisateur normal de lancer Quake SVGA et GL depuis X ET de revenir automatiquement sous X lorsque le programme se termine, que son arrêt soit normal ou non.
Nota: lorsque je précise "Quake" dans le texte ci-dessus, je veux en fait dire "quake, glquake squake, qwcl, glqwcl, qwcl.x11 ou quake2".
make;make install
pour le
compiler et l'installer. Une fois l'installation achevée, vous devrez rendre
open
et switchto
exécutables "setuid root". Pour cela:
cd /usr/local/bin
chown root open switchto
chmod 4755 open switchto
getvc.c
:
/* getvc.c * Affiche le numéro de la CV courante sur la sortie standard. * Une grande partie de ce code a été inspirée du programme open, * et ce code est basé sur GPL * * Joey Hess, Fri Apr 4 14:58:50 EST 1997 */ #include <sys/vt.h> #include <fcntl.h> main () { int fd = 0; struct vt_stat vt; if ((fd = open("/dev/console",O_WRONLY,0)) < 0) { perror("Failed to open /dev/console\n"); return(2); } if (ioctl(fd, VT_GETSTATE, &vt) < 0) { perror("can't get VTstate\n"); close(fd); return(4); } printf("%d\n",vt.v_active); } /* End of getvc.c */
$PATH
:
gcc getvc.c -o getvc
strip getvc
mv getvc /usr/local/bin
runvc
:
votre $PATH
:
#!/bin/sh # Lance quelque chose sur une CV, depuis X, et retourne sous X # lorsque c'est fait. # GPL Joey Hess, Thu, 10 Jul 1997 23:27:08 -0400 exec open -s -- sh -c "$* ; chvt `getvc`"
$PATH
:
chmod 755 runvc
mv runvc /usr/local/bin
Maintenant vous pouvez utiliser la commande runvc
pour exécuter
Quake. Continuez à utiliser la ligne de commande qui vous sert habituellement
pour lancer votre partie, mais insérez runvc
au début:
runvc ./quake2 +set vid_ref gl +connect quake.foo.com
Vous basculerez automatiquement sur une console virtuelle, lancerez Quake puis
retournerez sous X lorsque vous sortirez de Quake!
Extrait du fichier readme.linux
Quake II:
Par défaut, la souris ne sera pas confinée dans la fenêtre de Quake2. Pour obliger Quake2 à capturer la souris, sélectionnez 'Windowed Mouse' sur le menu vidéo, ou tapez '_windowed_mouse 0' sur la console. Faites l'inverse pour la relâcher. Vous pouvez définir des raccourcis clavier pour capturer et relâcher la souris dans la console, de cette façon: bind i "_windowed_mouse 1" bind o "_windowed_mouse 0" Alors "i" activera la capture de la souris et "o" la relâchera.
Vous pouvez avoir vu ou entendu parler de certain moyens de "gonfler" les performances d'OpenGL pour Quake par un paramètrage spécial des variables d'environnement. Ces variables sont également valides sous Linux. Vous les définissez simplement de façon légèrement différente. Si un guide "gonflant" pour Windows/DOS vous indique de faire:
SET SST_GRXCLK=59
Sous Linux, réalisez-le de cette manière:
export SST_GRXCLK=59
Joe S. ( jszabo@eden.rutgers.edu) suggère:
Une astuce que j'utilise avec qstat:
Je créer un fichier de mes serveurs favoris, puis je fais:
qstat -f /C/quake2/file.txt | less
Je presse Ctrl z pour arrêter, puis je copie l'adresse IP ou le nom de l'hôte avec gpm dans une ligne de commande du genre:
./quake2 +connect expert.eqclans.com
Alors je peux utiliser fg (Ndt: "fg" pour "foreground", commande shell qui a
pour effet de remettre un programme au premier plan) pour revenir sur ma liste
ultérieurement...
lib3dfxgl.so
pour Quake I
**Vous pouvez utiliser le mini-driver 3Dfx (lib3dfxgl.so
) de Quakeworld
ou Quake II avec glquake
également. Copiez simplement le script
glqwcl.3dfxgl
ou quake2.3dfxgl
dans un nouveau fichier, appelé
glquake.3dfxgl
. Editez alors le script glquake.3dfxgl
pour
qu'il lance glquake
au lieu de glqwcl
. Les mêmes restrictions
sur l'exécution en tant que root s'appliquent ici, de même que les différences
entre une exécution sous glibc et libc5.Voyez les section
Quakeworld ou
Quake II pour de plus amples
informations sur lib3dfxgl.so
.