<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>The Linux 3Dfx HOWTO: Installazione</TITLE> <LINK HREF="3Dfx-HOWTO-4.html" REL=next> <LINK HREF="3Dfx-HOWTO-2.html" REL=previous> <LINK HREF="3Dfx-HOWTO.html#toc3" REL=contents> </HEAD> <BODY> <A HREF="3Dfx-HOWTO-4.html">Avanti</A> <A HREF="3Dfx-HOWTO-2.html">Indietro</A> <A HREF="3Dfx-HOWTO.html#toc3">Indice</A> <HR> <H2><A NAME="s3">3. Installazione</A></H2> <P>Configurare Linux per supportare gli acceleratori 3Dfx richiede i seguenti passi: <OL> <LI>Installare la scheda.</LI> <LI>Installare la distribuzione Glide.</LI> <LI>Compilare, linkare e/o lanciare le applicazioni.</LI> </OL> <P>Le sezioni seguenti trattano ognuno di questi passi in dettaglio. <H2><A NAME="ss3.1">3.1 Installare la Scheda</A> </H2> <P>Per installare l'hardware si seguano le istruzioni del produttore o o lo si lasci fare al rivenditore. Non dovrebbe essere necessario modificare le impostazioni degli IRQ o del canale DMA, dato che il Plug&Pray (tm) o quelle predefinite dalla fabbrica dovrebbero funzionare. Le schede add-on qui descritte sono dispositivi mappati in memoria e non usano IRQ. L'unico tipo di conflitto da evitare è la sovrapposizione di memoria con altri dispositivi. <P>Dato che 3Dfx non sviluppa o vende nessuna scheda direttamente, è inutile contattarla per qualche problema. <H3>Risoluzione dei problemi di installazione hardware</H3> <P>Per verificare l'installazione e la mappatura della memoria, si esegua <CODE>cat /proc/pci</CODE>. L'output dovrebbe contenere qualcosa come <HR> <PRE> Bus 0, device 12, function 0: VGA compatible controller: S3 Inc. Vision 968 (rev 0). Medium devsel. IRQ 11. Non-prefetchable 32 bit memory at 0xf4000000. Bus 0, device 9, function 0: Multimedia video controller: Unknown vendor Unknown device (rev 2). Vendor id=121a. Device id=1. Fast devsel. Fast back-to-back capable. Prefetchable 32 bit memory at 0xfb000000. </PRE> <HR> per una Diamond Monster 3D affiancata ad una Diamond Stealth-64. Inoltre un <CODE>cat /proc/cpuinfo /proc/meminfo</CODE> può essere utile per scovare un conflitto e/o mandare un bug report. <P>Con i kernel attuali, probabilmente si avrà un avviso in fase di boot simile a questo <HR> <PRE> Jun 12 12:31:52 hal kernel: Warning : Unknown PCI device (121a:1). Please read include/linux/pci.h </PRE> <HR> che può essere tranquillamente ignorato. Se si ha una scheda non molto comune o si incappati in una nuova revisione, si dovrebbe prendersi l'onere di seguire le avvertenze in <CODE>/usr/include/linux/pci.h</CODE> e mandare tutte le informazioni necessarie a <A HREF="mailto:linux-pcisupport@cao-vlsi.ibp.fr">linux-pcisupport@cao-vlsi.ibp.fr</A>. <P>Se si incontra un qualche problema con la scheda, si dovrebe provare a verificare se il supporto DOS e/o Win95 o NT funziona. Probabilmante non si riceverà alcuna risposta utile da un fabbricante di schede per un bug report o una richiesta riguardanti Linux. Anzi, avendo avuto a che fare con il sistema di supporto e-mail di Diamond, non mi aspetto nessuna risposta utile anche per gli altri sistemi operativi. <H3>Configurare il kernel</H3> <P>Non c'è bisogno di alcuna configurazione del kernel, fin tanto che il supporto PCI è abilitato. Si può consultare il <A HREF="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html">Linux Kernel HOWTO</A> per i dettagli sulla compilazione del kernel. <H3>Configurare i device</H3> <P>I driver correnti non hanno (ancora) bisogno di device speciali. Si differenziano così dallo sviluppo degli altri driver (p.es. i driver sonori, che usano <CODE>/dev/dsp</CODE> e <CODE>/dev/audio</CODE>). Il driver usa il device <CODE>/dev/mem</CODE> che dovrebbe sempre essere disponibile. Di conseguenza, si deve usare <CODE>setuid</CODE> o i diritti di root per accedere alla scheda acceleratrice. <H2><A NAME="ss3.2">3.2 Disposizione dei Monitor</A> </H2> <P>Le schede add-on sono utilizzabili in due modi. Si può sia far passare il segnale video dalla propria scheda VGA attraverso la scheda accelerata e poi allo schermo, sia usare due schermi contemporaneamente. Si faccia riferimento al manuale fornito dal costruttore della scheda per i dettagli. Entrambe le configurazioni sono state provate con la scheda Monster 3D. <H3>Soluzione a schermo singolo</H3> <P>Questa configurazione permette di controllare l'operatività di base della scheda acceleratrice - se il segnale video non viene trasmesso al monitor è possibile che ci sia un guaso hardware. <P>Si ricorda che il segnale video può deteriorarsi sensibilmente se passa attraverso la scheda video. Fino ad un certo punto questo è inevitabile. Comunque, in alcune recensioni si sono lamentati della scarsa efficenza dei cavi forniti a.es. con la Monster 3D e a giudicare da quello che ho testato, non ci sono stati cambiamenti. <P>Ci sono altre pecche nella configurazione ad un solo schermo. Passare dalla modalità VGA a quella accelerata farà cambiare la risoluzione e la frequenza di aggiornamento, anche se si usa una risoluzione di 640x480 p.es. con X11. Inoltre, se si sta usanto X11, la propria applicazione è responsabile della gestione di tutti gli eventi della tastiera e del mouse, quindi si potrebbe rimanere bloccato a causa di un cambio di contesto o esposizione sullo schermo dell'X11 (che è completamente invisibile quando viene usata la modalità accelerata). Si potrebbe usare la modalità SVGA in console invece dell'X11. <P>Se si usa la configurazione ad un solo monitor e si cambia spesso modo, ci si ricordi che il proprio monitor potrebbe non gradire questo tipo di utilizzo. <H3>Soluzione a due schermi</H3> <P>La scheda acceleratrice non ha bisogno del segnale d'ingresso VGA. Invece di far passare l'output video attraverso la scheda acceleratrice, si può attaccare un secondo monitor alla sua uscita e usarli entrambi contemporaneamente. Questa soluzione è più costosa, ma dà risultati migliori, dato che lo schermo principale funzionerà sempre in alta risoluzione senza la perdita di qualità del segnale che la soluzione passante comporta. Inoltre si può usare X11 e l'accelerazione a schermo intero in parallelo, facilitando lo sviluppo e il debugging. <P>Il problema è che la scheda accelerata non produce alcun segnale video quando non viene utilizzata. Di conseguenza, ogni volta che l'accelerazione grafica termina, può attivarsi lo screensave/powersave hardware del monitor, se esiste. Anche in questo caso, il proprio hardware potrebbe non gradire di essere trattato in questo modo. Si dovrebbe usare <HR> <PRE> setenv SST_DUALSCREEN 1 </PRE> <HR> per forzare un output video continuo in questa configurazione. <H2><A NAME="ss3.3">3.3 Installare la Distribuzione Glide</A> </H2> <P>Il driver e la libreria Glide sono forniti come un unico archivio compresso. Si usino <CODE>tar</CODE> e <CODE>gzip</CODE> per scompattarlo e si seguano le istruzioni nel README e nell'INSTALL che accompagnano la distribuzione. Si legga ed esegua lo script di installazione. L'installazione copia tutto in /usr/local/glide/include,lib,bin e imposta l'ld.conf a cercare là. Dove installare la distribuzione e impostare l'ld.conf sono due azioni indipendenti. Se non si esegue l'impostazione dell'ld.conf allora si avrà bisogno dell'LD_LIBRARY_PATH. <P>Se si vogliono compilare le proprie applicazioni grafiche, sarà necessario installare gli header file in una locazione accessibile in fase di compilazione. Se non si vuole usare l'installazione vista sopra (cioè si decide per un'altra locazione), ci si assicuri che ogni applicazione possa accedere alle librerie condivise in esecuzione o si otterrà un risultato del tipo <CODE>can't load library 'libglide.sò</CODE>. <H3>Usare il programma detect</H3> <P>Nella distribuzione c'è il programma <CODE>bin/detect</CODE> (il sorgente non è disponibile). Si deve lanciarlo come root, ed si otterrà qualcosa di simile <HR> <PRE> slot vendorId devId baseAddr0 command description ---- -------- ------ ---------- ------- ----------- 00 0x8086 0x122d 0x00000000 0x0006 Intel:430FX (Triton) 07 0x8086 0x122e 0x00000000 0x0007 Intel:ISA bridge 09 0x121a 0x0001 0xfb000008 0x0002 3Dfx:video multimedia adapter 10 0x1000 0x0001 0x0000e401 0x0007 ???:SCSI bus controller 11 0x9004 0x8178 0x0000e001 0x0017 Adaptec:SCSI bus controller 12 0x5333 0x88f0 0xf4000000 0x0083 S3:VGA-compatible display co </PRE> <HR> come risultato. Se non si possiedono i diritti di root, il programma se ne verrà fuori con <HR> <PRE> Permission denied: Failed to change I/O privilege. Are you root? </PRE> <HR> L'output potrà tornare utile per un bug report. <H3>Usare i programmi di test</H3> <P>All'interno della distribuzione Glide si può trovare una directory con i programmi di test. Si noti che questi programmi sono sotto il copyright della 3Dfx e sono legalmente usabili solo se hai comprato una scheda con chipset 3Dfx. Si veda il file LICENSE nella distribuzione o il loro sito web <A HREF="http://www.3dfx.com/">www.3dfx.com</A> per i dettagli. <P>Si raccomanda di compilare e linkare i programmi di test anche se nella distribuzione ci sono i binari. Nota che alcuni programmi richiedono che altri file della distribuzione, come <CODE>alpha.3df</CODE>, siano disponibili nella stessa cartella. Tutti i programmi di test usano una risoluzione di 640x480. Alcuni richiedono la pressione di più tasti come input, altri chiederanno solamente <CODE>Press A Key To Begin Test</CODE>. Si faccia attenzione alla perdita del contesto di input se si sta eseguendo in contemporanea X11 sullo stesso schermo. <P>Si consulti il README.test per una lista del programmi, e per altri dettagli. <HR> <A HREF="3Dfx-HOWTO-4.html">Avanti</A> <A HREF="3Dfx-HOWTO-2.html">Indietro</A> <A HREF="3Dfx-HOWTO.html#toc3">Indice</A> </BODY> </HTML>