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.Mini-HOWTO / Linux sur PowerPC & cartes 3DFx Voodoo3
Les changements les plus récents sont en rouge. (mise à jour le 06/03/2001)
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.
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).
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...
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 :
Pour les utilisateurs de la distribution SuSE 7 PPC, vous pouvez utiliser les RPMs en version 4.02, mis à disposition sur leur site ftp
(miroir européen : ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/ppc/X/).
--- xc/config/cf/xfree86.cf.orig Tue Jan 9 11:08:51 2001 +++ xc/config/cf/xfree86.cf Tue Jan 9 11:15:29 2001 @@ -521,7 +521,7 @@ /* Pure PCI drivers should go first */ # ifndef XF86CardDrivers # define XF86CardDrivers mga glint s3virge sis savage\ - trident chips fbdev \ + trident chips fbdev ati imstt tdfx\ DevelDrivers vga \ XF86OSCardDrivers XF86ExtraCardDrivers #endif
Enfin vous y êtes. Après une à deux heures d'attente heureuse, vous
avez une configuration XFree86 qui fonctionne.
/usr/src/redhat/RPMS
est le chemin habituel). Je ne l'ai pas testé (est-ce que ça
comprend les drivers en développement ?).
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:
patch -p0 < tdfx-2.2-ajoshi.patch
lib/modules/2.2.18-4hpmac et le fichier
System.map dans
/boot/System.map-2.2.18-4hpmac.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...
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 :
Si vous ne le faites pas, vous vous retrouverez en 8bpp.VideoRam 16384
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?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...1) Bootez en consoleEditez le fichier /etc/X11/XF86Config-4 et
2) Lancez Xautoconfig4 dans la résolution où vous vous trouvez.3) retirez les lignes de modelinesVous y êtes ! Tapez startx et amusez vous. Sur ma machine, ça a marché avec les résolutions 640x480, 800x600, 1024x768, et 1152x864.
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).
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/>.
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/