La mise en place du 3Dfx sous Linux passe par les étapes suivantes :
Les sections suivantes couvrent ces étapes en détail.
Reportez vous aux instructions données par le fabricant de votre matériel pour mettre la carte en place. Il ne devrait pas s'avérer nécessaire d'aller modifier les IRQ, les canaux DMA : le Plug&Plante (tm) ou les valeurs en sortie d'usine sont censés fonctionner. On accède aux cartes décrites ci-après via l'espace d'adressage mémoire. On n'a donc pas besoin d'interruption. Les chevauchements en mémoire avec d'autres périphériques constituent les seuls conflits possibles.
Puisque 3Dfx n'intervient pas dans le développement et la fabrication de cartes, il est inutile de les contacter en cas de problèmes.
Afin de vérifier l'installation et l'adressage
mémoire des périphériques, faites un cat
/proc/pci. La sortie devrait ressembler à ce qui suit
:
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 aidera à résoudre les conflits et
sera utile pour signaler un bug.
Les noyaux courants afficheront peut-être au démarrage :
Jun 12 12:31:52 hal kernel: Warning : Unknown PCI device (121a:1). Please read include/linux/pci.h
/usr/include/linux/pci.h afin de transmettre les
informations utiles à
linux-pcisupport@cao-vlsi.ibp.fr.
Si des problèmes se manifestent avec votre carte, examinez ce qui se passe sous DOS et/ou Windows. Il est peu probable qu'un constructeur prenne la peine de répondre à une demande d'aide ou au rapport d'un bug sous Linux. Pour avoir pratiqué le service d'aide de Diamond via courrier électronique, je ne m'attendrais d'ailleurs pas trop à une réaction quel que soit le système d'exploitation.
Seule la gestion du bus PCI est requise. Le Linux Kernel HOWTO fournit tous les détails relatifs à la compilation d'un noyau.
Pour l'instant, les pilotes ne nécessitent pas de
périphériques particuliers. Contrairement aux
gestionnaires de cartes sons qui requièrent les entrées
/dev/dsp et /dev/audio dont la
présence n'est pas garantie, les pilotes reposent ici sur le
/dev/mem qui est toujours disponible. Il vous faudra
bien sûr disposer des droits de super-utilisateur ou
recourir à setuid pour accéder à la
carte accélératrice.
Deux configurations sont possibles avec les cartes accélératrices. Soit vous faites transiter les signaux vidéo issus de votre carte usuelle par l'accélérateur graphique, soit vous employez simultanément deux écrans. Reportez vous aux manuels utilisateurs du constructeur de votre carte pour plus de détails. Les deux solutions ont été essayées avec la Monster 3D.
Ce mode opératoire permet de vérifier le bon fonctionnement de base de la carte accélératrice : si le signal vidéo n'est pas transmis à l'écran, une défaillance matérielle est à envisager.
Notez qu'il risque de se produire un affaiblissement sensible du signal. On a signalé le cas de câbles de piètre qualité fournis avec la Monster 3D ( par exemple ) et celui que j'ai essayé n'a pas fait exception.
Les configurations reposant sur un écran unique recèlent d'autres subtilités. Le passage d'un mode d'affichage VGA à l'affichage accéléré modifie aussi bien la résolution que la fréquence du moniteur , et ce même si vous travaillez avec X11 en 640x480. De surcroît, avec X11, votre application a la charge de gérer les évènements souris et claviers sans quoi vous vous exposez à de sérieuses difficultés ( X reste naturellement invisible lorsque l'on a basculé en mode accéléré ). L'utilisation d'une console SVGA à la place de X11 est envisageable.
Si vous avez l'intention de n'utiliser qu'un seul écran duquel vous exigerez des changements de mode fréquents, n'oubliez pas que les composants de votre moniteur risquent de se fatiguer.
Certains moniteurs haut-de-gamme ( par exemple le EIZO F-784-T ) offrent deux connecteurs : un BNC à 5 broches ( RGB, HSync, VSync ) et un Sub-D VGA usuel. Ces écrans comportent généralement des boutons de sélection de l'entrée vidéo. Il est ainsi possible d'utiliser le connecteur BNC avec la carte graphique habituelle via un câble adéquat et de relier l'accélérateur 3Dfx à l'autre entrée.
La carte accélératrice n'a nul besoin d'une entrée VGA. Au lieu de faire transiter par cette dernière le signal vidéo usuel, vous pouvez diriger les sorties vidéos vers deux moniteurs différents. Cette solution est certes la plus dispendieuse mais elle donne les meilleurs résultats. Vous pourrez ainsi utiliser conjointement X11 et l'affichage accéléré en plein écran à des fins de déboggage et de développement.
La carte accélératrice cesse de fournir le moindre signal vidéo lorsqu'elle n'est plus utilisée. Par conséquent, à chaque fois que l'application concernée s'arrête, les composants économiseurs d'énergie risquent, selon la configuration de votre matériel, d'entrer en action. Le moniteur se lassera peut-être à la longue. Utilisez donc :
setenv SST_DUALSCREEN 1
Les pilotes et la librairie Glide sont réunis dans un
unique fichier compressé. Décompactez/détarez les
avec tar et gzip et suivez les
instructions fournies dans les fichiers README et INSTALL qui
accompagnent le logiciel. Par défaut, les fichiers sont
installés dans les répertoires lib, bin, include sous
/usr/local/glide/ et le chemin d'accés aux
librairies correspondants est ajouté au
ld.conf. L'installation des fichiers et la
modification du ld.conf sont des étapes indépendantes.
Sans l'étape de mise à jour du ld.conf, vous devrez
positionner manuellement la variable d'environnement
LD_LIBRARY_PATH.
Les fichiers d'en-tête doivent être visibles par le
compilateur si vous souhaitez compiler vos propres applications
graphiques ! Si l'installation par défaut ne vous satisfait
pas, vérifiez bien que les bibliothèques dynamiques
sont accessibles sans quoi vous aurez droit à un can't
load library 'libglide.so'.
detect
La distribution logicielle inclut le programme
bin/detect ( les sources ne sont pas disponibles ).
Le lançant sous l'identité root, vous obtiendrez
quelque chose dans le genre :
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?
detect.
La distribution Glide comprend un répertoire avec des programmes de test. Ces programmes sont soumis au copyright 3Dfx. Leur utilisation n'est licite que pour les possesseurs d'une carte munie d'un composant 3Dfx. Reportez vous au fichier LICENSE de la distribution ou au site web www.3dfx.com pour plus de détails.
Bien que des binaires soient disponibles, il est
recommandé de compiler soi-même les programmes.
Certains exécutables ont besoins de fichiers tels
alpha.3df que vous trouverez dans le même
répertoire. Tous les test ont lieu avec une résolution
de 640 par 480. Certains demanderont des caractères, d'autre
se cantonneront à afficher Press A Key To Begin
Test. Méfiez vous d'un éventuel accaparement des
évènements de saisie par X11 si ce dernier fonctionne
également sur le même écran.
Le fichier README.test donne la liste des programmes ainsi que divers détails.