<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux Quake HOWTO: Risoluzione dei problemi/FAQ</TITLE> <LINK HREF="Quake-HOWTO-6.html" REL=next> <LINK HREF="Quake-HOWTO-4.html" REL=previous> <LINK HREF="Quake-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="Quake-HOWTO-6.html">Avanti</A> <A HREF="Quake-HOWTO-4.html">Indietro</A> <A HREF="Quake-HOWTO.html#toc5">Indice</A> <HR> <H2><A NAME="troubleshooting"></A> <A NAME="s5">5. Risoluzione dei problemi/FAQ</A></H2> <P> <P> <H2><A NAME="ss5.1">5.1 Generalità</A> </H2> <P> <P> <H3>Considerazioni sulla differenza tra i sistemi operativi</H3> <P> <UL> <LI><B>Distinzione tra maiuscole e minuscole</B> - In DOS e Windows le maiuscole non sono importanti: <CODE>BASE1.TXT</CODE> è la stessa cosa di <CODE>base1.txt</CODE>. Sotto Linux e gli altri Unix, le maiuscole SONO importanti: <CODE>MOTD.TXT</CODE> e <CODE>motd.txt</CODE> sono due file diversi; questo può portare a dei problemi con i modelli dei giocatori ed i file della pelle se sono installati con i nomi di file con delle lettere maiuscole. <CODE>players/male/santa.PCX</CODE> deve essere rinominato in <CODE>santa.pcx</CODE> per poter funzionare sotto Linux. Lo script <CODE>fixskins.sh</CODE> incluso in QuakeWorld converte tutti i nomi dei file di una directory in lettere minuscole. Per comodità viene riportato qui sotto: <HR> <PRE> #!/bin/sh for x in *; do y=`echo $x | tr '[A-Z]' '[a-z]'` if [ $x != $y ]; then mv $x $y fi done </PRE> <HR> </LI> <LI><B>Delimitatori dei percorsi</B> - DOS e Windows usano il backslash "<CODE>\</CODE>" per separare gli elementi dei percorsi. In Unix, il backslash è un carattere di escape. Se usate dei percorsi nei vostri file di configurazione (o nel codice dei moduli, o da qualsiasi altra parte) assicuratevi di usare "<CODE>/</CODE>" e non "<CODE>\</CODE>". </LI> <LI><B>Caratteri di fine linea</B> - Sotto DOS/Windows, ciascuna linea di un file di testo finisce con un carattere di carriage return (CR) e un carattere di linefeed (LF). I file di testo in Unix hanno solo il linefeed. L'uso di file di testo di DOS/Win in Unix può causare molti problemi strani a Quake. Usando un file <CODE>quake2.conf</CODE> non correttamente formattato dal pacchetto di Quake2 3.17, ad esempio, dà l'errore "<CODE>LoadLibrary("ref_XXX.so") failed: No such file or directory</CODE>". LMCTF-TE riporta un'eccezione di floating point. Se avete un problema che non riuscite a spiegare, provate a rimuovere i CR dai file di testo: <BLOCKQUOTE><CODE> <PRE> mv file.txt file.bak; tr -d '\r' < file.bak > file.txt </PRE> </CODE></BLOCKQUOTE> </LI> </UL> <P> <H3><A NAME="glibc"></A> Considerazioni su Glibc, RedHat 5.x, Debian 2 **</H3> <P>Le seguenti considerazioni si applicano solo ai binari per Quake I (<CODE>squake</CODE>, <CODE>glquake</CODE>, e <CODE>quake.x11</CODE>). QuakeWorld e Quake II sono disponibili in entrambe le versioni, libc5 e glibc, rispettivamente dalle versioni 2.30 e 3.19. <P>Gli eseguibili di Quake sono compilati con la libc5. Le distribuzioni più recenti, come la RedHat 5.1 e la Debian 2.0, usano come libreria C di default la glibc, che non è compatibile. Se usate Quake su un sistema glibc dovete fare attenzione ad alcune cose: <P> <UL> <LI>Sia la RedHat 5 che la Debian 2 hanno dei pacchetti di compatibilità per libc5 che permettono di usare applicazioni basate su libc5. Assicuratevi di aver installato questi pacchetti. Entrambe le distribuzioni hanno messo le librerie basate su libc5 nella directory <CODE>/usr/i486-linux-libc5/lib</CODE>. </LI> <LI>Assicuratevi che Quake usi le librerie corrette. Create uno script come quello qui sotto che faccia puntare la variabile <CODE>$LD_LIBRARY_PATH</CODE> alla directory delle vostre librerie di compatibilità prima di usare Quake. <HR> <PRE> #!/bin/sh export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib ./quake2 +set vid_ref gl $* </PRE> <HR> </LI> <LI>Se dovete compilare una libreria come la SVGAlib o le Mesa per usarle con Quake, deve essere compilata con le libc5. Semplicemente compilare le nuove librerie seguendo le istruzioni di installazione vi darà una libreria linkata alle librerie di default, glibc. Assicuratevi che la nuova libreria sia linkata solo con la libc5 ed altre librerie ad essa linkate, in modo che sia compatibile con Quake. Controllate la documentazione della vostra distribuzione per avere delle informazioni su come linkare a librerie non di default. </LI> </UL> <P> <P> <H3>Il mouse non funziona o sembra rispondere a caso. </H3> <P> <UL> <LI>gpm funziona? gpm è un programma che permette di fare taglia e incolla con il mouse sulle console virtuali. Moltre distribuzioni lo abilitano per default. Potrebbe interferire con Quake. Controllate se sta girando con il seguente comando: <BLOCKQUOTE><CODE> <PRE> ps aux | grep gpm </PRE> </CODE></BLOCKQUOTE> Se avete dell'output come <BLOCKQUOTE><CODE> <PRE> root 6115 0.0 0.4 832 316 ? S 17:54 0:00 gpm -t PS/2 </PRE> </CODE></BLOCKQUOTE> gpm sta girando, ed interferisce con Quake. Date <CODE>gpm -k</CODE> (da root) per ucciderlo. Se non lo fa (<CODE>gpm -k</CODE> non sempre funziona sul mio sistema), uccidetelo con il comando <CODE>killall gpm</CODE>. Se non usate mai gpm, potreste voler evitare che parta all'avvio. Controllate la documentazione della vostra distribuzione per avere informazioni su come farlo. <P> </LI> <LI>Il mouse è definito correttamente nel file <CODE>libvga.config</CODE>? Questo file in genere si trova in <CODE>/etc</CODE> o in <CODE>/etc/vga</CODE>. Apritelo e controllate se c'è una linea simile a <BLOCKQUOTE><CODE> <PRE> mouse Microsoft </PRE> </CODE></BLOCKQUOTE> Sul mio sistema è la prima opzione del file. Assicuratevi che il tipo di mouse sia quello giusto per il vostro hardware. </LI> </UL> <P> <H3>Il mio Microsoft Intellimouse o il mio Logitech MouseMan+ non funziona.</H3> <P> La SVGAlib, che gestisce l'input del mouse per i Quake/QW/Q2 SVGA e GL, non supporta direttamente l'Intellimouse fino alla versione 1.3.0. Se avete una versione della SVGAlib precedente alla 1.3.0 dovreste aggiornarla, e poi usare il tipo di mouse <CODE>IntelliMouse</CODE> (per i mouse seriali) o <CODE>IMPS2</CODE> (per i mouse PS/2) nel file <CODE>libvga.config</CODE>. <P> <H3>Il mio mouse risponde in ritardo ed è molto più lento che sotto Windows.</H3> <P> <UL> <LI>Per molti basta aumentare il valore di <CODE>sensitivity</CODE> nella console di gioco cura il problema. Impostare la <CODE>sensitivity</CODE> a mano nella console o in un file <CODE>.cfg</CODE> vi permette di aumentare la sensibilità del mouse più dello slider nel menù delle opzioni; ad esempio <CODE>sensitivity 15</CODE>. </LI> <LI> Dall'aggiornamento di Zoid del .plan del 1/7/98: <BLOCKQUOTE> Se il renderer GL è lento nel mostrare i video (se sembra che la velocità di successione dei frame sembra essere rallentato dal movimento del mouse) digitate "gl_finish 1" sulla console. Questa opzione forza l'aggiornamento ogni frame. </BLOCKQUOTE> </LI> <LI>L'ultima versione delle SVGAlib (1.3.0) fornisce moltissimi parametri nel file <CODE>libvga.config</CODE> per personalizzare il comportamento del mouse. Con le impostazioni giuste dovrebbe essere possibile far comportare il mouse come volete. Sul mio sistema, cambiare <CODE>mouse_accel_type</CODE> al valore <CODE>normal</CODE> (il default è <CODE>power</CODE>) mi ha dato i risultati che volevo. Non ho giocato con le altre impostazioni, e non pretendo di sapere come funzionano. </LI> </UL> <P> <H3>Ho una Voodoo2, e quando provo ad usare il renderer gl, questo riporta che non ho una scheda Voodoo installata.</H3> <P>Ci sono versioni diverse della Glide per le schede Voodoo e Voodoo 2. Assicuratevi di aver montato quella giusta. <P> <H3>Quando gioco con una delle versione di Quake sotto SVGAlib o GL e premo Ctrl-C, il gioco esce e talvolta lascia la console inutilizzabile.</H3> <H3>A volte quando Quake/Quake II esce non in modo corretto, lascia la console inutilizzabile.</H3> <P>Sì, non è carino. La SVGAlib cattura il Ctrl-C e decide cosa farci invece di farlo gestire a Quake. Non conosco nessun modo per evitarlo, tranne modificando la SVGAlib. <P>Se usate Quake da uno script che resetti la tastiera e il terminale, come questo qui sotto, avrete meno possibilità di finire con il terminale incasinato se succede. <P> <HR> <PRE> #!/bin/sh ./quake2 $* kbd_mode -a reset </PRE> <HR> <P> <H3>squake/quake2 non parte e dice "<CODE>svgalib: cannot get I/O permissions"</CODE></H3> <P>Gli eseguibili di Quake devono girare come root, quindi dovete o farli girare come root o renderli setuid root. Controllate le istruzioni di installazione in questo documento per avere dettagli sull'argomento. <P> <H3>A volte, dopo avero giocato a una delle versioni di Quake su X, non funziona la ripetizione dei tasti.</H3> <P>Per una qualche ragione, la versione per X11 di Quake disabilita la ripetizione dei tasti mentre sta girando; se per qualche motivo il programma esce in maniera non normale, questa non viene riattivata. Fate <BLOCKQUOTE><CODE> <PRE> xset r on </PRE> </CODE></BLOCKQUOTE> per riabilitarla. <P> <H3>Quake/Quake II dice "/dev/dsp : device not configured" </H3> <P>L'hardware del suono non è configurato correttamente. Forse vi manca solo un <CODE>insmod sound</CODE>, o forse dovrete ricompilare il kernel. Gli utenti RedHat possono provare a richiamare il programma <B>sndconfig(8)</B>. Controllate la documentazione della vostra distribuzione di Linux e/o il Linux Sound HOWTO per avere altre informazioni su come configurare il suono sul vostro sistema. <P> <H3>Quake/Quake II per GL girano più lenti sotto Linux che sotto Windows. **</H3> <P>Il miniport per Windows della GL per 3Dfx è ottimizzato pesantemente per quello che fa Quake II. Mesa, d'altra parte, è più generale e meno ottimizzata. Come risultato Quake II sotto Linux gira più lentamente che sotto Windows. Non è una limitazione di Linux, ma una dei driver. <P>Con le uscite più recenti di QuakeWorld e Quake II, il miniport per 3Dfx citato prima è disponibile anche per Linux. Anche se non porta la performance di Quake per Linux allo stesso livello di quella di Windows, è un altro passo nella direzione giusta. <P>Oltre a questo, per gli utenti di Pentium Pro e Pentium II, ci sono alcuni trucchi che si possono fare con il buffering della memoria - l'ultimo device driver per 3Dfx ha il supporto per farlo automaticamente. Abilitare gli MTRR può velocizzare in modo <EM>significativo</EM> (10 fps sul mio sistema) GL Quake. Per informazioni più dettagliate leggete <A HREF="http://glide.xxedgexx.com/MTRR.html">http://glide.xxedgexx.com/MTRR.html</A>. <P> <H3>Come posso far partire un server e scollegarmi, e poi tornarci più tardi? **</H3> <P> <B>screen(1)</B> è un'utility valida per questo genere di cose. Vi permette di creare molti schermi virtuali in una singola tty e di passare tra uno di essi ed un altro. Screen è compreso nella maggior parte delle distribuzioni, ma lo potete scaricare da <A HREF="ftp://prep.ai.mit.edu/pub/gnu">ftp://prep.ai.mit.edu/pub/gnu</A> o da qualsiasi mirror GNU. <P> Inizializzate screen digitando il comando <CODE>screen</CODE>, poi create una nuova finestra premendo CTRL-A CTRL-C. Non vedrete molto mentre fate tutto ciò, ma state tranquilli, qualcosa sta succedendo. <P> Inizializzate il server di QuakeWorld: <BLOCKQUOTE><CODE> <PRE> /usr/local/games/quake/qwsv </PRE> </CODE></BLOCKQUOTE> <P> Ora aprite una nuova finestra di screen con CTRL-A CTRL-C ed inizializzate il server di Quake II: <BLOCKQUOTE><CODE> <PRE> /usr/local/games/quake2/quake2 +set dedicated 1 </PRE> </CODE></BLOCKQUOTE> <P> Potete passare avanti ed indietro tra i server premendo CTRL-A CTRL-N. <P> Premete CTRL-A CTRL-D per uscire dal programma. Screen ed i suoi server stanno ancora girando, ma non sono più visibili nella finestra del terminale. Ora potete scollegarvi ed i processi continueranno a girare normalmente. <P> Usate <CODE>screen -r</CODE> per ricollegarvi al processo di screen precedente ed accedere di nuovo ai server. <P> Questo è tutto. Per avere altre informazioni leggete la pagina man di <B>screen(1)</B>. <P> <P> <H2><A NAME="ss5.2">5.2 Quake/QuakeWorld</A> </H2> <P> <H3>Quake muore all'avvio con un segmentation fault.</H3> <P>In genere questo significa che il setup di rete non è corretto. Provate a fare partire Quake con l'opzione <CODE>-noudp</CODE> e vedete se l'errore si ripete. Se funziona, controllate il file <CODE>/etc/hosts</CODE> e verificate che ci sia una voce per la vostra macchina. Usate 127.0.0.1 come indirizzo IP se avete un accesso via modem che vi assegna un indirizzo diverso ogni volta che vi collegate. <P> <H3>Che differenza c'è tra <CODE>glqwcl</CODE>, <CODE>glqwcl.3dfxgl</CODE> e <CODE>glqwcl.glx</CODE>? ++</H3> <P> <UL> <LI><B><CODE>glqwcl</CODE></B> è il client standard di QuakeWorld per GL che avete visto nelle versioni precedenti; è linkato con la libMesaGL.so.2. </LI> <LI><B><CODE>glqwcl.3dfxgl</CODE></B> è uno script che avvia <CODE>glqwcl</CODE> dopo aver precaricato la libreria del miniport 3Dfx GL, <CODE>lib3dfxgl.so</CODE>. Precaricare la libreria del miniport fa usare le funzioni della GL invece che quelle della Mesa. Dato che il miniport della GL è ottimizzato per Quake, è una buona cosa. </LI> <LI><B><CODE>glqwcl.glx</CODE></B> è linkato con le librerie OpenGL standard invece che con le Mesa; questo permette a Quake di girare su altro hardware 3D supportato da altre implementazioni di OpenGL. Questa è un'applicazione X, e quindi deve essere usata da dentro X. </LI> </UL> <P> <H3>Quando uso <CODE>glqwcl.glx</CODE> a tutto schermo da X, non riesco ad usare il mouse o la tastiera. ++</H3> <P> <P>Usate <CODE>glqwcl.glx</CODE> con l'opzione <CODE>+_windowed_mouse 1</CODE>. QuakeWorld GLX gira in una finestra anche se sembra a tutto schermo. Se spostate il mouse mentre il Window Manager è in modalità focus-follow-mouse, probabilmente lo sposterete fuori della finestra, e allora Quake smette di rispondere all'input del mouse e della tastiera. <CODE>+_windowed_mouse 1</CODE> fa gestire in esclusiva il mouse a QuakeWorld. <P> <H2><A NAME="ss5.3">5.3 Quake II</A> </H2> <P> <H3>Quando provo a usare Quake II con il renderer GL, non funziona, e dice: "LoadLibrary("ref_gl.so") failed: Unable to resolve symbol"</H3> <P>Se subito prima della linea di "Unable to resolve symbol" avete dei messaggi come "<CODE>can't resolve symbol 'fxMesaCreateContext'</CODE>", la libreria Mesa che avete installato non ha compilato il supporto per le glide. Vedere la sezione <A HREF="Quake-HOWTO-3.html#quake2-gl">Il renderer GL</A> nella sezione sull'installazione di Quake per avere delle informazioni su come installare le Mesa e glide. <P> <H3>Quake II muore con l'errore <CODE>LoadLibrary("ref_XXX.so") failed: No such file or directory </CODE></H3> <P> <UL> <LI><CODE>/etc/quake2.conf</CODE> non ha il percorso giusto per la directory di Quake II. Questo file dovrebbe contenere una linea con la directory in cui risiede Quake II. </LI> <LI>Se <CODE>/etc/quake2.conf</CODE> <EM>contiene</EM> il percorso per la directory, provate a rimuovere il file ed a ricrearlo a mano. Alcune versioni di Quake II per Linux includevano un file <CODE>quake2.conf</CODE> formattato male. </LI> <LI>Avete le SVGAlib installate? Controllate in <CODE>/lib</CODE>, <CODE>/usr/lib</CODE> e <CODE>/usr/local/lib</CODE>, se c'è il file <CODE>libvga.so.1.X.X</CODE>, in cui al posto delle X ci sono dei numeri. Se non lo trovate, dovete prendere ed installare la SVGAlib per poter usare Quake II fuori di X. </LI> <LI>Se il renderer in questione è <CODE>ref_gl.so</CODE>, forse non avete installato correttamente le Mesa. Avete copiato <CODE>libMesaGL.so.2.6</CODE> nella directory delle librerie come scritto nelle istruzioni di installazione? </LI> <LI>Se il renderer in questione è <CODE>ref_gl.so</CODE>, avete installato le librerie glide? </LI> </UL> <P> <H3>Quando aggiusto la luminosità mentre uso il renderer GL e premo "apply", non succede niente!</H3> <P>Digitate <CODE>vid_restart</CODE> nella console per fare attivare le modifiche. <P> <H3><A NAME="3.17"></A> Note sulla distribuzione 3.17</H3> <P>Nel momento in cui sto scrivendo, la versione di Quake II più recente è la 3.19. Se per qualche ragione state usando la versione 3.17, vi potrebbero essere utili le seguenti informazioni. <P>Due file di testo (<CODE>quake2.conf</CODE> e <CODE>fixperms.sh</CODE>) della versione 3.17 sono stati salvati inavvertitamente nel formato di testo MS-DOS CR/LF invece che nel formato Unix LF, cioè alla fine di ciascuna linea di questi file c'è un carattere di carriage return in più, e non funzioneranno bene finché non risolverete questo problema. <P>Usate <B>tr(1)</B> per togliere i CR. <P> <BLOCKQUOTE><CODE> <PRE> for i in fixperms.sh quake2.conf do mv $i $i.bak tr -d '\r' < $i.bak > $i done </PRE> </CODE></BLOCKQUOTE> <P> <H3>Quando uso Quake II con l'opzione <CODE>+set vid_ref glx</CODE> a tutto schermo da X, non riesco ad usare il mouse o la tastiera. ++</H3> <P>Usate <CODE>quake2</CODE> GLX con l'opzione <CODE>+set _windowed_mouse 1</CODE>. Quake2 GLX gira in una finestra anche se sembra prendere tutto lo schermo. Se spostate il mouse mentre il window manager è in modalità focus-follow-mouse, è possibile che spostiate il puntatore fuori della finestra, e allora Quake II non risponderà più all'input del mouse e della tastiera. L'opzione <CODE>+set _windowed_mouse 1</CODE> fa usare solo a Quake II l'input del mouse. <P> <H3>Perché non posso passare ad alcune delle modalità SVGA che sono nel menù Video di Quake II? **</H3> <P> La SVGAlib probabilmente non sa come ricreare le modalità sulla vostra scheda. Quando Quake II parte con il renderer SVGA (<CODE>ref_soft.so</CODE>), stampa un elenco di tutti i modi che la SVGAlib ha disponibili: <BLOCKQUOTE><CODE> <PRE> ------- Loading ref_soft.so ------- Using RIVA 128 driver, 4096KB. mode 320: 200 1075253220 mode 320: 240 1075253220 mode 320: 400 1075253220 mode 360: 480 1075253220 mode 640: 480 1075253220 mode 800: 600 1075253220 mode 1024: 768 1075253220 mode 1280: 1024 1075253220 </PRE> </CODE></BLOCKQUOTE> Questi sono i soli modi tra cui potete passare con successo dal menù Video. Se ad esempio 512x384 non è sulla lista, sceglierlo dal menù video non funziona. <P> La SVGAlib vi fa definire delle nuove modalità video per alcuni chipset in <CODE>libvga.config</CODE>, in modo che possiate creare da soli le vostre modalità video. Controllate la documentazione della SVGAlib per altri dettagli su questo argomento. <P> <HR> <A HREF="Quake-HOWTO-6.html">Avanti</A> <A HREF="Quake-HOWTO-4.html">Indietro</A> <A HREF="Quake-HOWTO.html#toc5">Indice</A> </BODY> </HTML>