Nouvelle fonctionnalité arrivée avec la RC2, l'injection graphique permet de faire reconnaître une grande variété de cartes graphiques Nvidia par Os X.
Dans son principe de fonctionnement, le bootloader fait un dump complet du Vbios (bios vidéo ou ROM) de la carte graphique, le patch à la volée puis injecte les bonnes informations au registre du système.
Activer l'injection graphique
Rien de plus simple: dans votre fichier com.apple.Boot.plist ( Le dossier Extra ), ajoutez cette entrée:
<key>GraphicsEnabler</key>
<string>y</stringNotez qu'au passage, si vous avez d'autres dev-props (strings) dans votre fichier com.apple.Boot.plist, ceux-ci ne seront plus pris en compte par Chameleon si vous activez cette fonction. Pensez également à supprimer les injecteurs/entrées DSDT pour votre carte graphique.
Voir ce que est injecté
Pour vérifier les informations envoyées par Chameleon, vous allez avoir besoin de GFXUtil, que vous pourrez trouver dans cet article: Les GFX-Strings: méthodes et applications
Dans un premier temps, il faut récupérer les Dev-props dans un fichier. Ouvrez terminal et entrez:
ioreg -lw0 -p IODeviceTree | grep device-properties > out.hex
Dans votre dossier de départ, ouvrez le fichier nommez "out.hex", puis supprimez tout ce qui ne se trouve pas entre < et > (en gros, ne gardez que les chiffres.sans les < >)
Copiez l'application gfxutil dans votre dossier de départ, puis envoyez ces commandes au terminal pour convertir le hex en plist:
cd ~/
./gfxutil -i hex -o xml ./out.hex ./out.plist
Et voilà , vous avez maintenant un joli fichier out.plist qui vous permettra de voir ce qui est injecté.
Corriger l'injection
Pour le moment, cette fonctionnalité souffre d'un petit problème, qui est que Chameleon injecte systématiquement ses dev-props dans PciRoot(0x0)
Donc, si chez vous l'injection ne fonctionne pas, c'est peut-être parce que le chemin de votre carte graphique commence par PciRoot(0x1)
Pour en être certain, toujours avec gfxutil et le terminal, entrez:
./gfxutil -f display
Si le DevicePath commence par PciRoot(0x1), cela veut dire que Chameleon envoi les infos au mauvais endroit.
Pour y remédier, il va falloir aller faire un tour dans votre DSDT (à lire: Injecter les périphériques de votre ordinateur grâce au DSDT)
Une fois votre DSDT créé et décompilé, ouvrez-le et partez à la quête de l'entrée: Device (PCI0)
Quelques lignes en-dessous, vous devriez trouver la ligne suivante:
Name (_UID, One)
Modifiez la de manière suivante:
Name (_UID, Zero)
Si vous avez bien tout suivi, vous aurez compris que vous êtes en train de modifier la racine du DevicePath (0x1 en 0x0) afin d'aider chameleon à trouver votre carte graphique.
Compilez votre DSDT, rebootez, et vérifiez avec gfxutil si le changement s'est bien effectué. Dans ce cas, tout devrait fonctionner.
Si vous avez toujours des problèmes de reconnaissance, je vous conseil d'aller faire un tour dans les sources de Chameleon, et d'ouvrir le fichier situé dans I386/libsaio/nvidia.c histoire de vérifier si vous y retrouvez votre DeviceID.
| Récupérer et compiler les sources de Chameleon | Chameleon v2 Acte I : l'installation |
|---|



Commentaires
En changeant juste le fichier boot avec la RC1, ça marche.
Bizarre ?!
Merci pour cet excellent site qui est tout simplement exceptionnel par la qualité de ses tutos.
Je vous remercie également pour tous vos excellents tutoriaux, longue vie à darwinx86.
L'avantage de l'injection automatique de Chameleon c'est que comme son nom l'indique elle est automatique. Elle est sensée définir des valeurs importantes tel que le NVCAP automatiquement , et donc éviter des erreurs. Si vous avez déjà un string qui fonctionne parfaitement, alors vous ne tirerez aucun avantage de cette méthode.
Au sujet du DSDT et de device-properties :
Schématiquement ça donne çà :
Chameleon>string>device-properties>registre du périphérique>driver du périphérique.
Chameleon>DSDT>registre du périphérique>driver du périphérique.
Si on veut faire les choses dans les regles de l'art je pense qu'il faut utiliser le DSDT pour les fix ACPI et le string pour l'injection.
J'espere avoir été clair.
Merci pour ta réponse trauma
PS au Webmaster : le site semble extrêmement lent et à quelque problème de base de données semble t-il, attention je ne me plaint pas je le signale c'est tout. Et je ne vois pas l'utilité de Joomunity (lourd pour Joomla).
Je ferais bientôt un don promis