Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 947

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Linux Quake HOWTO: Tips &amp; 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 &amp; 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 &egrave; l'unica modalit&agrave; 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&ugrave; semplice &egrave; di fare <CODE>chmod 666 /dev/dsp</CODE>.  Sulla maggior parte dei sistemi la possibilit&agrave; di leggere dal
device del suono non dar&agrave; un buco di sicurezza significativo. Se per voi questo
approccio non &egrave; 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 &egrave; <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&ugrave; 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 &egrave; 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&igrave;, &egrave; possibile usare Quake da X se siete root, ma non &egrave; 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&ugrave; 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&igrave;:
    
<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 &lt;sys/vt.h>
         #include &lt;fcntl.h>
           
         main () {
           int fd = 0;
           struct vt_stat vt;
             
           if ((fd = open("/dev/console",O_WRONLY,0)) &lt; 0) {
             perror("Failed to open /dev/console\n");
             return(2);
           }
           if (ioctl(fd, VT_GETSTATE, &amp;vt) &lt; 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&agrave; "legato" alla finestra di Quake2.
    Per farglielo catturare, selezionate "Windowed Mouse" dal men&ugrave; 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&igrave;:
      bind i "_windowed_mouse 1"
      bind o "_windowed_mouse 0"
    In questo modo "i" catturer&agrave; il mouse e "o" lo rilascer&agrave;.
    
</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&igrave;:
    
<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&igrave;:
<P>    
<BLOCKQUOTE><CODE>
<PRE>
     ./quake2 +connect expert.eqclans.com
     
</PRE>
</CODE></BLOCKQUOTE>

    Poi potete usare fg per tornare alla lista pi&ugrave; 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>