<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux Quake HOWTO: Tips & Tricks</TITLE> <LINK HREF="Quake-HOWTO-7.html" REL=next> <LINK HREF="Quake-HOWTO-5.html" REL=previous> <LINK HREF="Quake-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="Quake-HOWTO-7.html">Avanti</A> <A HREF="Quake-HOWTO-5.html">Indietro</A> <A HREF="Quake-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="s6">6. Tips & Tricks</A></H2> <P> <P> <P> <H2><A NAME="no-setuid"></A> <A NAME="ss6.1">6.1 Utilizzare i giochi per X e GL senza setuid </A> </H2> <P>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 <CODE>/dev/dsp</CODE>, il dispositivo per il suono, alle versioni GL serve anche accesso alla scheda 3Dfx. <P><CODE>/dev/dsp</CODE> deve essere leggibile e scrivibile da Quake. La maggior parte delle distribuzioni gli danno per default i permessi 662 (<CODE>rw-rw--w-</CODE>). La soluzione più semplice è di fare <CODE>chmod 666 /dev/dsp</CODE>. 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 <CODE>/dev/dsp</CODE>, e rendete i giocatori di Quake membri di questo gruppo. <P>Per utilizzare le applicazioni glide (come GLQuake) non da root vi serve il driver <CODE>/dev/3dfx</CODE> dalla pagina di glide di Daryll Strauss ( <A HREF="http://glide.xxedgexx.com/3DfxRPMS.html">http://glide.xxedgexx.com/3DfxRPMS.html</A>). Scaricate il pacchetto <CODE>Device3Dfx.xxx.rpm</CODE> ed installatelo seguendo le istruzioni sulla pagina web. Dopo aver installato il driver, assicuratevi che <CODE>/dev/3dfx</CODE> ha permessi 666 (<CODE>chmod 666 /dev/3dfx</CODE>). <P>Quando <CODE>/dev/dsp</CODE> e <CODE>/dev/3dfx</CODE> sono impostati correttamente, potete rimuovere il bit setuid dagli eseguibili di Quake/QW/Q2. Da root fate <CODE>chmod 0755 XXXXX</CODE>, dove XXXXX è <CODE>glquake</CODE> <CODE>quake.x11</CODE>, o <CODE>quake2</CODE>. <P>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. <P> <H2><A NAME="running-from-x"></A> <A NAME="ss6.2">6.2 Usare le versioni SVGA e GL da X</A> **</H2> <P> 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 <CODE>lib3dfxgl.so</CODE>. Per questa ragione forse preferirete ancora questo modo di inizializzare i giochi da X usando i client GLX. <P> La parte seguente è basata su uno dei 2 Cent Tip di Joey Hess della Linux Gazette ( <A HREF="mailto:joey@kite.ml.org">joey@kite.ml.org</A>). L'originale si trova su <A HREF="http://www.ssc.com/lg/issue20/lg_tips20.html#squake">http://www.ssc.com/lg/issue20/lg_tips20.html#squake</A>. <P> 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 <EM>E</EM> passare automaticamente a X quando il programma finisce, sia che usciate normalmente che non lo facciate. <P> Nota: quando dico "Quake" nel testo qui sotto, voglio dire "quake, glquake squake, qwcl, glqwcl, qwcl.x11 o quake2". <P> <UL> <LI>Per prima cosa vi serve il pacchetto <B>open(1)</B> di Jon Tombs. Si tratta di due programmi molto piccoli che vi permettono di passare tra le console virtuali e farci girare dei programmi. Scaricateli da <A HREF="http://sunsite.unc.edu/pub/Linux/utils/console/">http://sunsite.unc.edu/pub/Linux/utils/console/</A>. Non dovrete fare molto più che <CODE>make;make install</CODE> per compilarli ed installarli. Una volta installati, dovrete rendere gli eseguibili <CODE>open</CODE> e <CODE>switchto</CODE> setuid root. Fate così: <BLOCKQUOTE><CODE> <PRE> cd /usr/local/bin chown root open switchto chmod 4755 open switchto </PRE> </CODE></BLOCKQUOTE> </LI> <LI>Poi salvate il codice qui sotto nel file <CODE>getvc.c</CODE>: <HR> <PRE> /* 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 */ </PRE> <HR> Compilatelo ed installatelo da qualche parte nel <CODE>$PATH</CODE>: <BLOCKQUOTE><CODE> <PRE> gcc getvc.c -o getvc strip getvc mv getvc /usr/local/bin </PRE> </CODE></BLOCKQUOTE> </LI> <LI>Ora create lo script <CODE>runvc</CODE>: <HR> <PRE> #!/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`" </PRE> <HR> Rendetelo eseguibile e mettetelo da qualche parte nel <CODE>$PATH</CODE>: <BLOCKQUOTE><CODE> <PRE> chmod 755 runvc mv runvc /usr/local/bin </PRE> </CODE></BLOCKQUOTE> Ora potete usare il comando <CODE>runvc</CODE> per cominciare a giocare a Quake. Continuate ad usare qualsiasi linea di comando che usate per il gioco, ma metteteci all'inizio <CODE>runvc</CODE>: <BLOCKQUOTE><CODE> <PRE> runvc ./quake2 +set vid_ref gl +connect quake.foo.com </PRE> </CODE></BLOCKQUOTE> Passerete automaticamente ad una console virtuale, giocherete a Quake e poi quando ha finito passerete di nuovo a X! </LI> </UL> <P> <P> <H2><A NAME="ss6.3">6.3 Mantenere il mouse dentro la finestra in X</A> </H2> <P> Dal file <CODE>readme.linux</CODE> di Quake II: <BLOCKQUOTE> 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à. </BLOCKQUOTE> <P> <H2><A NAME="ss6.4">6.4 Le impostazioni "trucchettose " di 3Dfx funzionano anche in Linux</A> </H2> <P> 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: <BLOCKQUOTE><CODE> <PRE> SET SST_GRXCLK=59 </PRE> </CODE></BLOCKQUOTE> <P> Sotto Linux dovete fare così: <BLOCKQUOTE><CODE> <PRE> export SST_GRXCLK=59 </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="ss6.5">6.5 Il browser del server del poveraccio</A> </H2> <P> Joe S. ( <A HREF="mailto:jszabo@eden.rutgers.edu">jszabo@eden.rutgers.edu</A>) suggerisce: <BLOCKQUOTE><CODE> <PRE> un trucco che faccio con qstat: Faccio un file con i miei server preferiti, poi fate qstat -f /C/quake2/file.txt | less </PRE> </CODE></BLOCKQUOTE> <P> premete Ctrl-z per sospendere, poi copiate gli indirizzi IP o i nomi degli host con gpm sulla linea di comando, così: <P> <BLOCKQUOTE><CODE> <PRE> ./quake2 +connect expert.eqclans.com </PRE> </CODE></BLOCKQUOTE> Poi potete usare fg per tornare alla lista più tardi... <P> <H2><A NAME="miniport"></A> <A NAME="ss6.6">6.6 Usare le <CODE>lib3dfxgl.so</CODE> per Quake I </A> **</H2> <P> Potete usare il mini-driver 3Dfx (<CODE>lib3dfxgl.so</CODE>) da Quakeworld o da Quake II anche con <CODE>glquake</CODE>. Copiate semplicemente gli script <CODE>glqwcl.3dfxgl</CODE> o <CODE>quake2.3dfxgl</CODE> in un nuovo file, ad esempio <CODE>glquake.3dfxgl</CODE>; poi copiate lo script <CODE>glquake.3dfxgl</CODE> in modo che usi <CODE>glquake</CODE> invece di <CODE>glqwcl</CODE>. 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 <A HREF="Quake-HOWTO-2.html#qw-3dfxgl">Quakeworld</A> o <A HREF="Quake-HOWTO-3.html#q2-3dfxgl">Quake II</A> per avere altre informazioni su <CODE>lib3dfxgl.so</CODE>. <P> <HR> <A HREF="Quake-HOWTO-7.html">Avanti</A> <A HREF="Quake-HOWTO-5.html">Indietro</A> <A HREF="Quake-HOWTO.html#toc6">Indice</A> </BODY> </HTML>