Mini-HOWTO / Linux sur PowerPC & cartes 3DFx Voodoo3

Les changements les plus récents sont en rouge. (mise à jour le 06/03/2001)
J'ai finalement réussi à faire fonctionner ma carte 3dfx Voodoo3 2000, avec accélération sous Linux sur mon Macintosh, avec XFree 4. Comme cela ne semble pas facile à faire, j'ai écrit ce petit document pour ceux qui voudraient une carte 3dfx et aimeraient la faire fonctionner. Les distributions testées sont SuSE PPC 7.0, Linuxppc 2000 (Q1), et Linuxppc 2000 Q4.

A l'heure actuelle (début janvier 2001), il y a encore un BUG dans le driver de la 3dfx (XFree 4.02), qui provoque un plantage complet du système (pas de messages du noyau- redémarrage hard seulement). Cela se produit seulement quand vous basculez depuis X dans une console par OPTION (ou APPLE)-CTRL-Fx.
Le seul contournement est de ne pas passer de X à une console avec ces touches.

Ce n'est qu'un ennui relativement mineur avec le driver accéléré qui fonctionne très bien par ailleurs. Notez que vous pouvez quitter X pour la console, cela ne plantera pas le système. Même avec ce bug, utiliser le driver accéléré vaut véritablement le coup.

Si vous avez une remarque au sujet de cette page, si quelque chose écrit ici ne fonctionne pas, faites le moi savoir en m'envoyant un message (Vincent.Favre-Nicolin chez cryst.unige.ch), et je modifierai la page en conséquence.




Changements:

Renoncement : Vous êtes seul responsable de ce que vous faîtes. Cela peut déclencher une réaction nucléaire dans votre ordinateur, vous savez. Tout ce que je peux dire est que cela a fonctionné sur mon ordinateur (et quelques autres aussi). S'amuser avec les drivers vidéo et leur configuration sous Linux est assurément quelque chose de dangeureux.

Notes

support 3D: je ne me suis intéressé qu'à la 2D, si bien qu'il n'y a rien au sujet de de la 3D (glide) ici.

Voodoo4/5: je n'ai qu'une Voodoo3. Je ne sais donc rien au sujet des cartes Voodoo4 et Voodoo5. Le driver a été mis à jour pour la Voodoo5, mais n'a pas été encore finalisé. Ani affirme avoir une Voodoo5 fonctionnant, mais il reste des problèmes de configuration. En particulier, la carte ne doit fonctionner qu'en 8bpp à l'heure actuelle.

Questions: Je ne suis pas un développeur de modules 3dfx ni du noyau (NDT : le traducteur non plus). Je ne connais rien à la programmation de hardware. Ce n'est donc pas la peine de me poser des questions concernant la programmation (NDT : idem pour le traducteur). Tout ce que je peux faire est de dire comment j'ai fait marcher la chose. Pour les questions techniques, voyez les mailing-listes de linuxppc.org.

Mon matériel (si cela peut avoir de l'importance) : Un Macintosh 7300 kité G3/365 + une carte 3dfx Voodoo3 2000 + une carte Formac ProRaid I UW SCSI (utilisée pour booter Linux).


Ancienne configuration (gardée ici pour historique, ou pour les personnes à court de bande passante)

XFree 3.3.6 + driver tdfx pris de XFree 3.9.16 + kernel:
Utilisez le hack de XFree 3.3.6 (maintenant ancien - plus d'un an; il s'agit en fait d'un driver de XFree 3.9.16) réalisé par Kostas Gewrgiou (qui prit une grand part au portage du driver 3dfx pour ppclinux), ainsi que le noyau fourni. Vous pouvez trouver toutes les explications nécessaires dans son message. Le seul problème que j'avais avec ce noyau est qu'il n'intégrait pas le support de ppp (à moins que je ne me sois trompé). Mais il fonctionna.



Eléments de base: Vous avez besoin de trois choses pour faire fonctionner votre carte 3dfx : (1) un driver tdfx (disponible seulement avec XFree 4), (2) le support de ce driver dans le noyau, et (3) un fichier XF86Config correct. Il y a plusieurs moyens pour y arriver...
 

Obtenir un XFree 4.02 opérationnel avec driver pour 3dFx

Merci à Ani Joshi, nous avons maintenant une version opérationnelle de XFree 4.0.2 pour PPC Linux, supportant les cartes 3dfx sans pépin d'affichage. Notez que vous avez besoin de XFree avec le driver (expérimental) tdfx. Quelques paquetages de binaires (RPMs) n'incluent pas de drivers expérimentaux (ceux-ci sont installé dans /usr/X11/lib/modules/drivers/).

Note: une petite correction a été faite le 12 janvier 2001 par Any, afin de permettre le support du curseur matériel pour tdfx, et améliorer le mode 16 bpp. Cette correction est disponible par rsync, dans la branche XFree86-pmac 4.02 chez linuxppc.org. Ils sont aussi inclus dans les derniers RPMs de Kaoru Fukui.

Vous pouvez obtenir XFree 4.02 de deux façons :


Important : Après avoir installé XFree 4, vous devez indiquer que vous utiliser le nouveau driver. Ainsi à chaque fois que vous utilisez startx/gdm/gdm/xdm..., vous utiliserez XFree 4:

ln -s /usr/X11/bin/XFree86 /etc/X11/X

Obtenir un noyau avec le support tdfx.

Vous avez besoin d'un noyau avec le support du frame buffer de la carte 3dfx (tdfxfb). Il n'est pas inclus dans les noyaux 2.2.x, vous devez donc l'ajouter. A nouveau, il y a deux façons de le faire :  Note Important: avec ce patch, ainsi que pour les noyaux 2.4 à venir, vous devez donner explicitement indiquer les réglages vidéo en argument au noyau. Si vous ne le faites pas, vous obtiendrez un système apparement gelé, avec un écran blanc. Donc vous devez ajouter des arguments de noyau comme "video=tdfx:640x480-8@60". Dans BootX, indiquez ces arguements dans le champ de saisie 'More kernel arguments'. D'autres réglages (comme 1024x768-8@60...) peuvent être trouvés dans le fichier /usr/src/linux/drivers/video/tdfxfb.c. (Note: vous booterez quand même si vous n'indiquez pas de réglages vidéo, mais vous ne verrez rien. Vous pourrez, quoiqu'il en soit, vous logger en aveugle et taper startx, et cela marchera. Vous ne pourrez simplement pas utiliser de console.).

Quid au sujet du noyau 2.4 ?
Le support de la carte 3dFx est inclus dans le noyau 2.4, mais ne convient malheureusement pas pour PPC.
Le nouveau driver pour 3dfx et frame buffer pour x86 peut être trouvé à http://www.medex.hu/~danthe/tdfx/ (NDWM : ce site n'existe plus). Le document affirme que ça fonctionne pour PPC, mais j'ai constaté le contraire : tous les caractères sont inversés, c'est-à-dire que le haut est en bas et réciproquement (Tux est très étrange, aussi)... Le boutisme a encore frappé... Donc, le nouveau driver tdfx en frame buffer n'est pas encore prêt (les couleurs sont correctes cependant).
Un patch pour le noyau 2.4 devrait bientôt être prêt... Notez que si vous compilez le noyau 2.4-paulus que vous pouvez obtenir via rysnc à penguinppc.org (sans aucun patch)(dans la section console, désélectionnez le support vga et sélectionnez le support 3dfx Voodoo3 en mode frame buffer), vous aurez alors le support tdfx, mais le texte n'apparaîtra pas bien en mode console; quand X aura été lancé tout rentrera dans l'ordre ! C'est pour ceux qui veulent un noyau 2.4 maintenant...

Paramétrer XF86Config

(Note: avec le dernier XFree 4.02 et le driver tdffxfb du noyau, j'ai trouvé que les modelines ne fonctionnaient pas exactement comme auparavant... Donc, même si vos modelines fonctionnent avec un driver plus ancien, vous devez le refaire)

Pour le fichier /etc/X11/XF86Config (ou /etc/X11/XF86Config-4, celui qui est chargé le premier par XFree4 s'il est présent)
Vous pouvez utiliser au choix :

Important: avec le nouveau XFree 4.02, il est maintenant obligatoire de préciser la quantité de RAM vidéo se trouvant sur la carte à la section "device". Pour une Voodoo3 2000, ça ressemble à ceci :
VideoRam    16384
Si vous ne le faites pas, vous vous retrouverez en 8bpp.

Lorsque les fichiers générés automatiquement fonctionnent, vous pouvez changer les modelines à votre convenance. Encore une fois, soyez prudent en faisant cela ! Vous pouvez aussi changer la profondeur d'écran par défaut. Notez que 32 bit ne va pas pour la 3dfx (8 et 24 bit sont bons, ainsi que peut-être 16).

Note1: si vous rencontrez des crashs du server X, vous pouvez essayer de changer les modelines, et vous pouvez commenter quelques uns des modules. Dans mon cas, le module "v4l" (vidéo for Linux), activé par Xautoconfig, a fait planter mon serveur X sans raison précise.

Note2: si vous rencontrez l'embêtante relance (NDT : 'respawn') du serveur X avec Linuxppc (le serveur essaie indéfiniment de démarrer), alors rebootez (avec ctrl-command-delete ou quelque chose comme ça), et redémarrez avec 'single' comme argument du noyau. Ensuite, éditez /etc/inittab et changez le pour redémarrer en run level 3 au lieu de 5 (pour linuxppc). Rebootez et le serveur X ne sera pas démarré automatiquement, corrigez ensuite votre fichier XF86Config et lancez X par 'startx' pour tester votre fichier XF86Config-4. Vous pouvez toujours tuer un serveur X par command-control-backspace.

Note3: en fait toute la difficulté pour obtenir des modelines valides n'existe plus avec XFree 4.0, puisqu'en fait vous n'êtes plus obligé de préciser les modelines. Voyez par exemple mon nouveau fichier XF86Config-4 sans modelines. Ça marche car XFree doit avoir une base de données interne contenant les résolutions possibles (notez qu'il n'y a pas 1152x870, mais seulement 1152x864)

Comment pouvez vous faire ça?
1) Bootez en console
2) Lancez Xautoconfig4 dans la résolution où vous vous trouvez.
Editez le fichier /etc/X11/XF86Config-4 et
3) retirez les lignes de modelines
4) Entrez des valeurs correctes pour HorizSync and VertRefresh correspondant à votre moniteur. (ceci est important si vous ne voulez pas griller votre moniteur...)
5) Dans la section "Screen", entrez la résolution désirée et la profondeur DefaultDepth voulue (vous voulez 24 bpp).
Vous y êtes ! Tapez startx et amusez vous. Sur ma machine, ça a marché avec les résolutions 640x480, 800x600, 1024x768, et 1152x864.
Notez que cela n'est pas seulement vrai pour les 3dfx, puisque, par exemple, ça marche aussi pour les iBooks... Ça dépend des cas...

Un dernier mot.

Je n'ai pas contribué à faire en sorte que ça marche. Je pense que nous pouvons tous remercier (ou envoyer des pizzas pepperoni) à tous ceux qui ont travaillé sur le module tdfx du noyau et sur le port de XFree sur PPC. Si vous avez des questions techniques, la meilleure solution pour obtenir des réponses est probablement d'aller voir les archives des listes de diffusion de LinuxPPC.org. Essayez une recherche d'abord. Mais tenez moi au courant (Vincent.Favre-Nicolin chez cryst.unige.ch) de vos bonnes ou mauvaises expériences au sujet de ce qui est écrit ici.

Remerciements: à tous ceux qui ont contribué au développement de XFree (ppc ou non). Spécifiquement pour cette page, les personnes suivantes m'ont donné des informations ou m'ont fait part de leur expérience voodoo : Ani Joshi, Tom Rini, Stefan Röttger, Jens Nielsen, Marc Ozon, et Anders Baden Nielsen.
 

Voilà (NDT : en français dans le texte). En espérant que cela puisse aider quelqu'un, dans le profond cyber-espace...

Mes fichiers de configuration, mes patches et mes noyaux sont téléchargeables dans ce répertoire : <http://v.favrenicolin.free.fr/linuxppc/>.

Traduction.

Traduit le 13/3/01 par Etienne Herlent

Le document original en anglais a été écrit par Vincent Faivre-Nicolin et se trouve à <http://v.favrenicolin.free.fr/linuxppc/linuxppc-tdfx.php3>.

 

Dernière mise à jour le 13/3/01.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh