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.