Configurare Linux per supportare gli acceleratori 3Dfx richiede i seguenti passi:
Le sezioni seguenti trattano ognuno di questi passi in dettaglio.
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.
Dato che 3Dfx non sviluppa o vende nessuna scheda direttamente, è inutile contattarla per qualche problema.
Per verificare l'installazione e la mappatura della memoria, si esegua
cat /proc/pci
. L'output dovrebbe contenere qualcosa come
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.
cat /proc/cpuinfo /proc/meminfo
può essere utile per scovare un
conflitto e/o mandare un bug report.
Con i kernel attuali, probabilmente si avrà un avviso in fase di boot simile a questo
Jun 12 12:31:52 hal kernel: Warning : Unknown PCI device (121a:1). Please read include/linux/pci.h
/usr/include/linux/pci.h
e mandare
tutte le informazioni
necessarie a
linux-pcisupport@cao-vlsi.ibp.fr.
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.
Non c'è bisogno di alcuna configurazione del kernel, fin tanto che il supporto PCI è abilitato. Si può consultare il Linux Kernel HOWTO per i dettagli sulla compilazione del kernel.
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 /dev/dsp
e /dev/audio
). Il driver usa il device
/dev/mem
che dovrebbe sempre essere disponibile. Di
conseguenza, si deve usare setuid
o i diritti di root per
accedere alla scheda acceleratrice.
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.
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.
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.
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.
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.
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.
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
setenv SST_DUALSCREEN 1
Il driver e la libreria Glide sono forniti come un unico archivio
compresso. Si usino tar
e gzip
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.
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 can't load
library 'libglide.sò
.
Nella distribuzione c'è il programma bin/detect
(il sorgente non è
disponibile). Si deve lanciarlo come root, ed si otterrà qualcosa di simile
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
Permission denied: Failed to change I/O privilege. Are you root?
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 www.3dfx.com per i dettagli.
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 alpha.3df
, 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 Press A Key To Begin Test
. Si faccia
attenzione alla perdita del contesto di input se si sta eseguendo in
contemporanea X11 sullo stesso schermo.
Si consulti il README.test per una lista del programmi, e per altri dettagli.