Jump to content

[OH-TOUX] GFX Strings


  • Please log in to reply
94 replies to this topic

#1
sonotone

sonotone

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,151 posts
dernière mise à jour: 16/07/2008

De la Théorie...



l'EFI, kesako?
Comme vous le savez tous, l'émulation de l'EFI (Extensible Firmware Interface) a fait récemment son entrée dans le monde d'OSX86, changeant radicalement la donne puisque qu'il est désormais possible de faire fonctionner son Pc avec le Noyau officiel d'Apple ("vanilla") (Ainsi que la plupart des extensions natives), laissant croire au système d'exploitation que celui-ci fonctionne bel et bien sur un vrai firmware Apple . L'EFI est une couche supplémentaire plus évoluée et amenée à remplacer le Bios de nos PC, un logiciel intermédiaire entre les micrologiciels (firmware) de votre matériel et le système d'exploitation.
Ainsi finalisé par Netkas, PC EFI s'appuie sur une version modifiée du DarwinBootloader ("fake" EFI implémenté au bootloader-132 d'Apple, projet pour booter sur des machines X86 non EFI) qui permet d'émuler des données "EFI" entre autre à partir du BIOS et permet ainsi à OSX de traiter certaines données du Bios comme des informations produites par les véritables tables EFI des Macs.
Par exemple, les informations provenant de votre bios, une fois interfacées au travers de l'émulation, permettent à OSX d'identifier le modèle de votre carte mère, votre batterie...

Sur un vrai Mac ça donne ça:
Posted Image
Pour nous, en gros, entre le Firmware et l'EFI (émulé et lancé par le bootloader) vient se loger le Bios


Des injecteurs aux GFX Strings.
Reste que le problème de la reconnaissance des périphériques persite: en effet, la plupart du hardware PC ne fonctionnent "naturellement' pas sous OSX puisque qu'Apple ne développe uniquement les "drivers" (les fameux ".kext") embarqués dans leurs machines. Vous trouverez toujours des pilotes compatibles Mac chez certains fabricants de Hardware, Mais puisque Apple à pris le parti de proposer des machines totalement intégrées, ceux-ci correspond bien souvent à du matériel pro/semi-pro relativement éloigné des préoccupations du plus grand nombre.
Et là vous vous dites "chouette, je m'en vais de ce pas m'acheter la dernière carte graphique Nvidia embarqué par les nouveaux Imac pour m'éclater avec Exposé". Oui, mais vous risquez d'être déçus... car il vous faudra malgré tout passer par ce que l'on nomme des "Injecteurs".(Titan, Natit, NVInject...etc).

Contrairement à ce que l'on peut penser, ceux-ci ne sont pas à proprement parler des "drivers", mais des "extensions du noyau permettant de forcer l'utilisation des extensions Apple pour gérer les cartes graphiques ATI/NVIDIA en "injectant" les registres manquants - qui sont chargés par les modules EFI en temps normal dans un Mac Intel, ou par les registres NVRAM contenus dans la ROM (BIOS) de la carte graphique pour les Mac PowerPC". (je cite Gotoh).
Et il en va de même avec les cartes sons: Le très fameux AppleHDA patcher, en plus de modifier le kext d'origine, apporte également dans sa musette l'injecteur ALCInject sans qui Cindy Sanders resterait désespérément muette sur votre ordi préféré.
L'indéniable avantage de ces injecteurs est, vous l'aurez compris, de faire fonctionner plus ou moins correctement l'audio ou l'image en orientant ces registres vers les bonnes extensions permettant au noyau de les charger au démarrage de la machine.

C'est à ce niveau que les GFX Strings entrent en scène. En effet, depuis la version 8.0 de l'émulation EFI (mais aussi chameleon, projet open sources), il est possible d'introduire ce qui est nommé des "pluggables strings", qui sont une longue suite de chiffres HEX (contenant des "binaires" transmissibles à des (micro) applications, en l'occurrence ici, l'EFI. Aïe, ma tête...).
Ces propriétés peuvent correspondre à des périphériques Hardware, et, si elles sont intégrées au Bootloader, sont chargées par le noyau car identifiées en tant que matériel par l'EFI émulé, et se passent donc des Injecteurs du système d'exploitation. Les drivers Apple/ Patchés n'ont alors plus qu'à faire leur boulot habituel.

Et là, vous allez me dire, à quoi ça sert?
Dans certains cas, les injecteurs, aussi utiles soient-ils, posent des problèmes de détection et ne permettent pas une bonne (ou pas du tout) détections de certains hardware lors du chargement des périphériques. Passer par ces "pluggables strings" peut ainsi résoudre certain problèmes liés aux injecteurs.
NB: GFX Strings se substituent donc aux injecteurs, mais en aucun cas aux drivers. De plus, ils ne peuvent faire reconnaître un périphérique qui ne peux l'être. Je m'explique par deux exemples.

1: OSX, depuis la 10.5.2, supporte les Nvidia 8xxx (dispose donc des kexts appropriés); mais la votre n'est pas reconnue, même via Nvinject. Vous pouvez alors créer un string permettant sa reconnaissance, mais il vous sera impossible de la faire fonctionner sur une 10.5.0 (puisqu'il n'y a pas les drivers Apple appropriés).
2: Vous avez créé un "string" pour votre carte audio, mais il vous faut tout de même un AppleHDA.kext (driver son) patché, car l'original d'Apple ne supporte pas votre carte.
Pigé?




...A la pratique

UPDATE: Vous pouvez également utiliser EFI Studio, par Inside, pour la creation des strings:
http://forum.netkas....opic,64.60.html


Bon alors avant tout, toutes les cartes graphiques/audio ne sont pas supportées. Comme j'ai un peu la flemme de tout passer en revue, je vous invite à aller voir:

NVidia: http://forum.netkas....topic,55.0.html
ATI: http://forum.netkas....topic,61.0.html
Intel GMA: http://forum.netkas....topic,58.0.html

Vous devez également avoir installé soit:
- La dernière version de l'émulation EFI (v8.0): http://alex.upsidedo.../pc_efi_v80.zip
- Chameleon (préférez ce dernier, il peut être réinstallé par dessus pc_efi): http://chameleon. osx86 .hu

Normalement, les dernières 10.5.2 embarquent le PC EFI V8.0 d'office. Pour savoir si vous avez l'EFI d'installé, ouvrer Terminal et tapez:
ioreg -p IODeviceTree -b -n efi | grep "efi" -C 4

Si vous avez cette ligne "name" = <"efi"> , c'est tout bon.

Ensuite, vous avez besoin d'un boite à outils pour créer vos propres fichiers HEX:
http://www.mediafire.com/?mwbzvm14j3z
Celle-ci contient un modèle pour la video, un modèle pour le son+la video, Gfxutil, IORegistryExplorer et Property List Editor (pack mis à jour). (ces exemples viennent de ma configuration EP35-DS3R + Gigabyte 8600GT)

Attention: Vous ne devez choisir que l'un des deux chapitres qui suivent. Si vous ne désirez que la video, contentez-vous du premier chapitre "Vidéo"; si vous voulez tenter Vidéo et Son, suivez uniquement la deuxième partie intitulée "Son et Vidéo" (un seul fichier .plist fera l'affaire)



I: La video

1-Placez gfxutil et le contenu du dossier "video" sur votre bureau
2-Ouvrer terminal et tapez:
cd ~/desktop
		./gfxutil -f display
Vous allez obtenir une ligne qui se présente comme ceci:
PciRoot(0x1)/Pci(0xe,0x0)/Pci(0x0,0x0)
3-Ouvrez le fichier "in.plist" avec l'éditeur de texte et remplacer la ligne qui correspond avec celle du terminal sans toucher aux balises <key>.
Tout en bas du fichier "in.plist", vous allez trouver une ligne comme ceci:
<string>NVIDIA GeForce 8600GT</string>
4- Vous pouvez spécifier le modèle de votre carte video entre les balises "string".
5- Sauvegardez le tout en .plist et en vérifiant bien que vous n'êtes pas en RTF (voir menu "format") avec textedit.
6- Maintenant retournez au terminal et tapez ce qui suit:
./gfxutil -i xml -o hex ./in.plist ./out.hex
Un fichier nommé out.hex devrait apparaître sur votre bureau.
7- Aller dans Bibliothèque/Preferences/SystemConfiguration et faites précieusement une sauvegarde du fichier com.apple.boot.plist (c'est le fichier qui va être modifié par l'ajout du contenu du fichier "out.hex)"
8- Retour une dernière fois au terminal, pour y taper:
sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
en dessous des lignes:

<key>Timeout</key>
<string>5</string>


Ajouter ce qui suit:
<key>device-properties</key>
<string>Copier ici le contenu de out.hex</string>


Comme c'est écrit, ouvrez le fichier out.hex avec textedit et copier son contenu entre les balises "string"

Update: Vous pouvez également disposer de la résolution native au lancement en ajoutant, après votre string:
<key>Graphics Mode</key>
<string>1680x1050x32</string>


Les valeur entre les balises string correspondent à la résolution native de votre écran.

Une fois la manoeuvre terminé, faite un "control+o" suivit "d'entrée" afin de sauvegarder le fichier, et un "control+x" pour fermer la session.

9- Enfin, aller dans Système/Bibliothèque/Extensions/ et supprimez (ou mettez en lieu sûr) votre injecteur (NVInject.kext/Natit.kext...), ainsi que le cache des extensions (Système/Bibliothèque/Extensions.mkext)

Rebootez et croisez les doigts de pieds...



II: Son et Video

1-Placez gfxutil et le contenu du dossier "son et video" sur votre bureau.
2- Suivez l'exemple au dessus jusqu'à l'étape 4
3- Dans terminal, tapez:
cd ~/desktop
		./gfxutil -f AZAL
Vous allez obtenir également une ligne de ce genre: PciRoot(0x0)/Pci(0x1b,0x0).
Dans le fichier "in.plist", la partie dédiée au son est la suivante:

<key>rom-revision</key>
<string>0x32323033</string>
</dict>
<key>PciRoot(0x1)/Pci(0x1b,0x0)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x00000002</string>
<key>subsystem-id</key>
<string>0x0000a002</string>
<key>subsystem-vendor-id</key>
<string>0x00001458</string>
<key>vendor-id</key>
<string>0x00008086</string>


Remplacez la ligner en rouge par celle obtenue dans le terminal.

-4 Maintenant ouvrez "IORegistryExplorer" et allez jusqu'à la ligne intitulée "AZAL@ ..."

C'est là qu'il faut se concentrer: Il faut changer les valeurs en bleu par celles ce que vous lisez dans IORegistryExplorer, mais vous devez les lire de droite à gauche tout en conservant l'ordre à l'intérieur des couples de chiffres (0x ne compte pas)
ex: Une valeur <d8 07 00 00> devient 0x000007d8 dans votre "in.plist". Certaines valeurs seront identiques à celle de ce modèle, regardez bien comment ça fonctionne pour le pas faire de bêtises.

Une fois les modifications apportées, reprenez à partir de l'étape 6 de la partie "Video". Il vous sera également nécessaire de supprimer du répertoire des extensions les injecteurs ALCInject.kext, AppleAzaliaAudio.kext, AppleAC97.kext...

Rebooter et croisez les doigts en plus des doigts de pieds.


CONCLUSION:

Ce que les Strings ne peuvent faire:
- Rendre votre PC plus sexy (ou alors inquiétez vous)
- Transformer le Plomb en Or: Votre entrée audio le fonctionne pas? Il est improbable qu'elle fonctionne après.
- Avoir une résolution native et le petit son au démarrage (toujours pas)
- Accélérer très significativement votre système (Certains notent des améliorations ou des baisse de performances, à vous de voir...)

Ce que les Strings peuvent faire:
- Diminuer le temps de boot (le mien se lance 3 fois plus vite)
- Vous donner l'impression de faire un pas de plus vers un vrai mac (plus besoin des injecteurs)
- Résoudre certains bugs (problèmes de shutdown, reboot, de son qui saccade... dans la mesure ou ceux-ci peuvent être générés uniquement pas les injecteurs concernés)
- Permet de supporter du matériel avant que certains patchs voient le jour.

Détails techniques et dernières versions:
http://forum.netkas....topic,64.0.html
http://forum.netkas....opic,104.0.html

Page web de David Elliott (à l'origine du PC-EFI, page à lire absolument):
http://tgwbd.org/darwin/index.html





Appendice 1: Corriger la taille de la RAM Vidéo (VRAM)


-Une fois vos Strings en place, il est possibe que a quantité de RAM de votre carte graphique ne soit pas correctement reconnue par le système. Afin de corriger ça, il va vous falloir créer une entrée dans votre fichier in.plist.
-Ouvrez votre fichier in.plist avec Property List Editor (qui se trouve dans la 'boite à outils').
-Dépliez "root", puis dépliez la première entrée (commençant par PciRoot...)qui apparaît dans l'arborescence (seuls ceux qui utilisent video+son verront deux entrée)
-Une fois à l'intérieur de PciRoot..., cliquez sur "New Sibling".
Nommez-la:
VRAM,totalsize
-Dans la colonne "Class", choisissez "DATA"
-La colonne "VALUE" va correspondre à la quantité de VRAM de votre carte. Voici les Valeurs:
<00000008> - 128Mb
<00000010> - 256Mb
<00000014> - 320Mb
<00000020> - 512Mb
<00000028> - 640Mb
<00000030> - 768Mb

Insérez uniquement ce qui est en gras (et de manière à ce quil n'y ait pas de doublons des < et >
Sauvegardez et reprenez là où vous en étiez.
Voilà à quoi ça devrait ressembler pour une carte avec 640MB:
Posted Image
Vous pouvez aussi faire d'une pierre deux coup, et changer le NVCAP (pour le support du dual screen, du VGA...)
Vous trouverez tout ce dont vous avez besoin sur le Forum de Gotoh (bon, c'est un peu le bordel mais on fini par trouver):
http://nvinject.free.fr/forums/



Appendice 2: Retrouver QE/CI après la mise à jour 10.5.3


Il est possible que, même avec les GFX Strings, votre carte graphique ne supporte plus QE/CI à la suite de la mise à jour des drivers vidéos de la 10.5.3.
Dans ce cas, plutôt que de repasser avec par un injecteur, vous pouvez éditer votre fichier in.plist afin de retrouver l'accélération graphique.

1- Ouvrez votre fichier in.plist déjà configuré avec Property List Editor
2- Déployer l'arborescence et cliquez sur "new child"
3- Nommez le IOProbeScore avec la class Number et la valeur 0
4- sauvegardez et exportez votre fichier et suivez la prodécure expliqué plus haut pour intégrer les strings à votre fichier com.apple.boot.plist

Posted Image

PS: Si vous voyez de grosses sottises, ou des détails à ajouter, n'hésitez pas à proposer des corrections!!

#2
MacTDog

MacTDog

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 296 posts
Merci pour toutes ses infos tout est plus clair.

#3
fredouille

fredouille

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,193 posts
  • Location:GROVILLE du Nord
Tout simplement EXCELLENT sonotone :)

#4
lolo62

lolo62

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 237 posts
un grand merci

#5
Clavette

Clavette

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 116 posts
Excellent tuto. J'ai essayé à ça marche impec. Merci.

#6
eXeen

eXeen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 347 posts
  • Gender:Male
  • Location:France
Excellente initiative et éfficace en plus :wacko:

#7
sonotone

sonotone

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,151 posts

Excellent tuto. J'ai essayé à ça marche impec. Merci.

Content que ça marche pour toi!
Et merci pour vos merci, fallait que quelqu'un s'y colle de toute façon... Si vous avez des remaques ou des suggestions, faites vous plaisir!

#8
eXeen

eXeen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 347 posts
  • Gender:Male
  • Location:France
En essayant la commande " ./gfxutil -f AZAL" j'obtient "DevicePath not found!"

Donc petite précision pour les personnes n'utilisant pas "Azalia Audio" il faut modifier la ligne suivante:
cd ~/desktop
./gfxutil -f AZAL
par (exemple, j'utilise AC97)
cd ~/desktop
./gfxutil -f AC97

Et dans IORegistryExplorer rechercher AC97@ et non AZAL@ :P

Enfaîte ça dépend des kexts que vous utilisez pour le sons, à vous d'adapter selon ce que vous avez choisis pour faire fonctionné le son.

#9
Sniperfox

Sniperfox

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 403 posts
  • Gender:Male
  • Location:France
ca a redémaaré mais maintenant ,il est marqué que j'ai une 8600gt avec 256 de ram alors que j'ai une 8800gtx 756 de ram, j'ai du faire une fausse note....? pourtant j'ai suivi le tuto a la lettre..ya moyen de réparer?

#10
kabutop

kabutop

    InsanelyMac Protégé

  • Members
  • PipPip
  • 62 posts
Cooooool merci pour ton tuto !!!!
Ca marche du premier coup pour ma 8600GT :-)

Je vais regarder pour l'audio & la video !
Question : il n'y a rien d'autre à supprimer en rapport avec la video et nvinject ? J'ai juste supprimé nvinject.

A+

#11
Sniperfox

Sniperfox

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 403 posts
  • Gender:Male
  • Location:France
ou c'est normal qu'il me repère cela? je comprend aps trop la phase ou faut changer remplacer par le nom de sa carte entre les strings....car je met ma 8800gtx j'enregsitre en fichier text comme c'est mis mais le fichier sert a quoi apres?

#12
sonotone

sonotone

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,151 posts

Petite précision pour les personnes n'utilisant pas "Azalia Audio" il faut modifier la ligne suivante:

cd ~/desktop
./gfxutil -f AZAL
par (exemple, j'utilise AC97)
cd ~/desktop
./gfxutil -f AC97

Et dans IORegistryExplorer rechercher AC97@ et non AZAL@ :P


très bien, j'update la chose!

#13
Trauma!

Trauma!

    Took too much...

  • Members
  • PipPipPipPipPipPipPip
  • 964 posts
  • Gender:Male
  • Location:France
Bravo,

C'est un super TUTO, il est très clair. Merci BCP !!!
Perso j'avais déja fais un "string" pour ma x1950 Pro.

Malgrès çà ton tuto clarifie pas mal de points importants !!!!
Si je l'avais eu plus tôt j'aurais gagné du temps!!!

Je vais tester le string pour l'audio et aussi pour mon controleur Sil3132, juste pour voir.

Merci A+

#14
Sniperfox

Sniperfox

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 403 posts
  • Gender:Male
  • Location:France
Génial, j'ai refait ca marche nickel, il me remet 8800gtx (dans le tuto j'avais compris qu'il fallait enregsitrer en txt, jai refait en enregistrant normallement) mais il est mis que je n'est que 256 de ram dans les infos...ya moyen de changer cela? dans le in je crois pas...

#15
Eromejir

Eromejir

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts
  • Gender:Male
  • Location:liege
Franchement excellent sonotone !!!

#16
kabutop

kabutop

    InsanelyMac Protégé

  • Members
  • PipPip
  • 62 posts
Re,

Je viens d'essayer de rajouter ma carte réseau : une ALC883.
J'ai suivi le tuto, par contre je n'ai pas le champ layout-id dans IORegistryExplorer. Donc j'ai laissé celui par défaut.
Résultat ca ne fonctionne pas pour le son, j'en ai plus :rolleyes:

Une idée ?

Merci à tous

EDIT : heu si j'ai bien le layout-id et le bon, mais pas de son...

#17
sonotone

sonotone

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,151 posts

Génial, j'ai refait ca marche nickel, il me remet 8800gtx (dans le tuto j'avais compris qu'il fallait enregsitrer en txt, jai refait en enregistrant normallement) mais il est mis que je n'est que 256 de ram dans les infos...ya moyen de changer cela? dans le in je crois pas...

Si, je crois qu'il faut créer une entrée pour la ram dans le fichier plist. Alors tente avec ça:

En dessous de

<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>


Ajoute ceci:
[code=auto:0]<key>VRAM,totalsize</key>
<string>0x28000000</string>[/code]
Je ne suis pas sûr du chiffre, mais tu peux toujours vérifier à l'aide d'IORegistryExplorer, (selectionne IODeviceTree). Tu vas dans NVDA, Display-... et cherche l'entrée VRAM-memsize.
Recopie la bonne valeur comme expliqué dans le tuto, et retente le coup.

#18
Sniperfox

Sniperfox

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 403 posts
  • Gender:Male
  • Location:France
oki merci jéssé ca demaini!!!!

#19
stradfred

stradfred

     Addict

  • Members
  • PipPipPipPip
  • 192 posts
Petite question, j'ai la 10.5.2 de zephyroth rev2 (Donc Amd) avec l'efi v8 d'installé,cela s'applique t'il pour notre architecture ?

Sinon superbe tuto ;)

#20
Sniperfox

Sniperfox

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 403 posts
  • Gender:Male
  • Location:France
moi la video ca marche mais avec l'audio ca ma tout bousillé, j'ai plus de son :excl: quelque serait me mettre le lien pour le alc 889? j'avais le son en analogique et digital je ne retrouve plus ce patch qui est sur le disk de kalyway...maintenant je vois une différence de vitesse avec le driver video au démarrage...pour le son ca ne marche pas...pournvda display, la mesize en 768 de ram il faut rajouter: <00 00 00 18 00 00 00 30>





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy