Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Une GeForce 9800GX2 dans un Mac Pro

Dans cet article nous allons vous expliquer comment installer une GeForce 9800GX2 dans un Mac Pro, et comment la faire reconnaître par Mac OS X sans la flasher.


Détection de la carte par Mac OS X

Il faut savoir que le firmware EFI des cartes NVidia vendues par Apple est assez générique. Il va en fait lire le BIOS de la carte graphique, puis écrire certaines valeurs (quantité de VRAM, timings, etc...) dans le registre de Mac OS X. Ce sont ensuite les pilotes (des extensions du noyau, ou kexts) qui prennent le relais. Les pilotes vont chercher les cartes PCI-E compatibles présentes dans le système, puis lire les valeurs correspondantes dans le registre, et enfin initialiser et piloter la carte. Si tout va bien le serveur de fenêtre se lance, sinon kernel panic ! Ce qui manque aux cartes graphiques classiques pour fonctionner dans nos Macs, c'est donc ce petit firmware EFI qui va préparer le registre. L'idée, qui a germé du coté hackintosh, c'est donc de simuler l'écriture de ces valeurs dans le regsitre avec une petite extension qui se chargerait avant les pilotes. Cela fonctionne relativement bien dans les hackintoshs avec les cartes identiques ou proches des modèles distribués par Apple (donc prises en charge par les pilotes de Max OS X), mais dans les "vrais" Mac, pour une raison que j'ignore, il faut en plus une carte d'origine Apple avec firmware EFI pour que cela fonctionne. Et même plus spécifiquement une 7300GT, car tous mes essais avec une 8800GT se sont soldés par des échecs (kernel panic au chargement du serveur de fenêtre, et impossibilité de lancer BootCamp).

Il existe donc 2 extensions issues du coté obscur qui peuvent permettre à Mac OS X de charger les pilotes NVidia pour prendre en charge notre 9800GX2 : NVkush et NVinject.

La méthode NVkush, décrite ici, est en théorie la plus simple. Il s'agit d'installer un kext via un installeur, puis de rebooter le Mac. Une détection du moniteur plus tard, la carte est censée être reconnue et fonctionnelle. Cependant, malgré mes nombreux tests, j'ai eu 2 soucis avec cette méthode :

  • seuls 256Mo de VRAM sont reconnus sur les cartes
  • au boot la résolution de la carte n'est pas reconnue par mon écran, qui n'arrête pas de flasher. Tout rentre dans l'ordre après l'utilisation de la fonction "Détecter les moniteur" dans les préférences Moniteur, mais dans ces conditions difficile de passer la fenêtre de login sans utiliser le partage d'écran. Pas vraiment utilisable.

La méthode NVinject fonctionne mieux sur ma configuration. Elle consiste à ajouter les identifiants PCI de la carte (par exemple 0x0000ffff 0x060410de) dans la clé IOPCImatch des fichiers Info.plist des extensions GeForce.kext, NVDAResman.kext et NVDANV50Hal.kext (pensez à bien sauvegarder les extensions originales auparavant). Puis il faut installer l'extension NVinject.kext, et relancer la machine. Si tout va bien, vous aurez une image sur les ports DVI de la 9800GX2 ! Il vous faudra peut-être utiliser le partage d'écran pour activer la fonction "Détecter les moniteurs" de OS X, car par défaut le système détecte un écran principal "fantôme" sur la 7300GT.

Comme vous pouvez le voir, le système détecte bien le bridge PCI et la 9800GX2 est vue et fonctionne comme 2 cartes indépendantes. La 7300GT est également vue comme une "9800GX2" avec 512Mo de VRAM par le système, car NVinject ne gère pas une configuration avec des cartes hétérogènes. Cela peut poser problème car la 7300GT n'a que 256Mo de VRAM, et j'ai eu des soucis de gros ralentissements de l'interface en 2560x1600 et en recopie vidéo. Le mieux est donc de ne pas utiliser la 7300GT, elle n'est là que pour faire reconnaître la 9800GX2.

Partager sur

Sondage

Comptez-vous acheter un Vision Pro ?