Back to the index page  
  FAQ   Rechercher   Membres   Groupes   S’enregistrer   Profil   Se connecter pour vérifier ses messages privés   Connexion 
[Tuto] GFX Strings

 
Poster un nouveau sujet   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Installer OS X sur PC Index du Forum :: Installer OS X sur PC :: Tutoriaux
Sujet précédent :: Sujet suivant  
Auteur Message
Raid13
Administrateur

Hors ligne

Inscrit le: 15 Oct 2007
Messages: 3 932
Localisation: Orléans
Masculin

MessagePosté le: Sam 5 Juil 2008 - 12:26    Sujet du message: [Tuto] GFX Strings Répondre en citant
GFX Strings       



dernière mise à jour: 15/06/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-123 d'Apple, projet pour booter sur des machines X86 non EFI) qui permet d'émuler des données "EFI" entre autre à partir du BIOS (il vient se loger après celui-ci) 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...

Sur un vrai Mac ça donne ça:

 
     

Pour nous, en gros, entre le Firmware et l'EFI (émulé) 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, 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 ne peux pas 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 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.org/index.php/topic,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.org/index.php/topic,55.0.html
ATI: http://forum.netkas.org/index.php/topic,61.0.html
Intel GMA: http://forum.netkas.org/index.php/topic,58.0.html

Vous devez également avoir installé la dernière version de l'émulation EFI (v8.0): http://alex.upsidedown.free.fr/OSX86/EFI/pc_efi_v80.zip
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:


 
Code:






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)
Dans le texte qui suit, pour les balises vous devrez remplacer les "(" par des "<" et les ")" par des ">"



I: La video

1-Placez gfxutil et le contenu du dossier "video" sur votre bureau
2-Ouvrer terminal et tapez:

 
Code:






cd ~/desktop
        ./gfxutil -f display 








Vous allez obtenir une ligne qui se présente comme ceci:
 
Citation:




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 .
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:

 
Code:






./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:

 
Code:






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" (le contenu est une serie de chiffres et lettres très importantes, donc n'ayez pas peur ^^)

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.
(la résolution 1680x1050x32 n'est pas forcément la votre donc vérifiez bien votre résolution native avant, le 32 à la fin précise 32bits au niveau des couleurs)

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:

 
Code:






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.org/index.php/topic,64.0.html
http://forum.netkas.org/index.php/topic,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:

 
Code:




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
Sauvegardez et reprenez là où vous en étiez.
Voilà à quoi ça devrait ressembler pour une carte avec 640MB:

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



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


Tutorial écrit par Sonotone
Merci à lui.

_________________________________________________
HackIntosh Mac Pro
Intel Core 2 Duo E8400
Gigabyte EP35-DS3(Sleep/Reboot/Shutdown)
2 Go DDR2 - 800 OK
500Go Samsung F1 Sata2
Pioneer DVR-212D
GeForce 7800GTX 256MoOK
Boitier PowerMac G5 ATX by Alex
Mac OS X.5.5 iDeneb v1.1 OK

http://raid13.labrute.fr

Power Mac G4 Gigabit Ethernet Bi-Pro 450 @ Gigadesign mono G4/1,8GHz

<a href="http://mac-on-pc.fr" target="_blank"><img src="http://maconpc.niloo.fr/images/pub88x31.gif" alt="Gamejapanime" border="0"></a>

Je ne réponds plus aux MPs de demande d'aide // CF. Charte
Revenir en haut
Visiter le site web du posteur
Publicité






MessagePosté le: Sam 5 Juil 2008 - 12:26    Sujet du message: Publicité
PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Installer OS X sur PC Index du Forum :: Installer OS X sur PC :: Tutoriaux Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Portail | Index | créer forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation


Powered by phpBB © 2001, 2016 phpBB Group Traduction par : phpBB-fr.com 
Macinscott theme by Scott Stubblefield