Se usate solo le versioni X e GL di Quake, QuakeWorld o Quake II, non avete
bisogno di usarle con permessi di root. La SVGA è l'unica modalità in cui
serve. Le versioni da X hanno bisogno solo dell'accesso a /dev/dsp
,
il dispositivo per il suono, alle versioni GL serve anche accesso alla scheda
3Dfx.
/dev/dsp
deve essere leggibile e scrivibile da Quake. La maggior
parte delle distribuzioni gli danno per default i permessi 662
(rw-rw--w-
). La soluzione più semplice è di fare chmod 666 /dev/dsp
. Sulla maggior parte dei sistemi la possibilità di leggere dal
device del suono non darà un buco di sicurezza significativo. Se per voi questo
approccio non è accettabile, create un gruppo a cui farete appartenere
/dev/dsp
, e rendete i giocatori di Quake membri di questo gruppo.
Per utilizzare le applicazioni glide (come GLQuake) non da root vi serve il
driver /dev/3dfx
dalla pagina di glide di Daryll Strauss
(
http://glide.xxedgexx.com/3DfxRPMS.html).
Scaricate il pacchetto Device3Dfx.xxx.rpm
ed installatelo seguendo
le istruzioni sulla pagina web. Dopo aver installato il driver, assicuratevi
che /dev/3dfx
ha permessi 666 (chmod 666 /dev/3dfx
).
Quando /dev/dsp
e /dev/3dfx
sono impostati correttamente,
potete rimuovere il bit setuid dagli eseguibili di Quake/QW/Q2. Da root fate
chmod 0755 XXXXX
, dove XXXXX è glquake
quake.x11
, o quake2
.
Se avete giocato da root prima di fare queste modifiche, molti dei file di Quake (come i file di salvataggio) potrebbero appartenere all'utente root, e quindi possono essere inaccessibili ad un utente normale, quindi ricordatevi di modificare il proprietario dei file prima di provare a giocare non da root.
I client di QuakeWorld e Quake II per GLX sono applicazioni X native,
ma dato che usano le Mesa invece che il mini-driver 3Dfx, sono più lenti
delle versioni lib3dfxgl.so
. Per questa ragione forse preferirete
ancora questo modo di inizializzare i giochi da X usando i client GLX.
La parte seguente è basata su uno dei 2 Cent Tip di Joey Hess della Linux Gazette ( joey@kite.ml.org). L'originale si trova su http://www.ssc.com/lg/issue20/lg_tips20.html#squake.
Sì, è possibile usare Quake da X se siete root, ma non è un buon comportamento, e rischiate che Quake crashi e lascino la console che non risponde. Con un po' di lavoro potete fare in modo di poter giocare come utente normale usando i Quake SVGA e GL da X E passare automaticamente a X quando il programma finisce, sia che usciate normalmente che non lo facciate.
Nota: quando dico "Quake" nel testo qui sotto, voglio dire "quake, glquake squake, qwcl, glqwcl, qwcl.x11 o quake2".
make;make install
per compilarli ed installarli.
Una volta installati, dovrete rendere gli eseguibili open
e
switchto
setuid root. Fate così:
cd /usr/local/bin
chown root open switchto
chmod 4755 open switchto
getvc.c
:
/* getvc.c * Prints the number of the current VC to stdout. Most of this code * was ripped from the open program, and this code is GPL'd * * 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
:
#!/bin/sh # Run something on a VC, from X, and switch back to X when done. # 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
Ora potete usare il comando runvc
per cominciare a giocare a
Quake. Continuate ad usare qualsiasi linea di comando che usate per il
gioco, ma metteteci all'inizio runvc
:
runvc ./quake2 +set vid_ref gl +connect quake.foo.com
Passerete automaticamente ad una console virtuale, giocherete a Quake
e poi quando ha finito passerete di nuovo a X!
Dal file readme.linux
di Quake II:
Per default, il mouse non sarà "legato" alla finestra di Quake2. Per farglielo catturare, selezionate "Windowed Mouse" dal menù video, o digitate '_windowed_mouse 0' sulla console. Fate il contrario per lasciarlo. Potete creare una scorciatoia da tastiera per catturare e lasciare il mouse così: bind i "_windowed_mouse 1" bind o "_windowed_mouse 0" In questo modo "i" catturerà il mouse e "o" lo rilascerà.
Potreste avere sentito parlare o visto modi di modificare la performance delle OpenGL di Quake impostando diverse variabili d'ambiente. Queste variabili sono valide nello stesso modo sotto Linux, soltanto si impostano in un modo leggermente diverso. Se una guida per Windows/DOS vi dice di fare:
SET SST_GRXCLK=59
Sotto Linux dovete fare così:
export SST_GRXCLK=59
Joe S. ( jszabo@eden.rutgers.edu) suggerisce:
un trucco che faccio con qstat:
Faccio un file con i miei server preferiti, poi fate
qstat -f /C/quake2/file.txt | less
premete Ctrl-z per sospendere, poi copiate gli indirizzi IP o i nomi degli host con gpm sulla linea di comando, così:
./quake2 +connect expert.eqclans.com
Poi potete usare fg per tornare alla lista più tardi...
lib3dfxgl.so
per Quake I
** Potete usare il mini-driver 3Dfx (lib3dfxgl.so
) da
Quakeworld o da Quake II anche con glquake
. Copiate semplicemente
gli script glqwcl.3dfxgl
o quake2.3dfxgl
in un nuovo
file, ad esempio glquake.3dfxgl
; poi copiate lo script
glquake.3dfxgl
in modo che usi glquake
invece di
glqwcl
.
Anche in questo caso si applicano le stesse restrizioni per l'uso da root,
come anche le differenze tra libc5 e glibc.
Vedere le sezioni
Quakeworld o
Quake II per avere altre informazioni su
lib3dfxgl.so
.