| Index de l'article |
|---|
| Les GFX-Strings: méthodes et applications |
| La pratique |
| Appendices |
Page 1 sur 3
La Théorie...
l'EFI, qu'est ce que c'est?
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 ("communément appelé 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 (premier bootloader EFI) s'appuie sur une version modifiée du DarwinBootloader ("fake" EFI implémenté au bootloader-132 d'Apple par David Elliot), 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...
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.
Cependant, il vous faudra malgré tout passer par ce que l'on nomme des "Injecteurs".(ALCInject, 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. (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.kext ou HDAEnabler.kext.
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, le firmware EFI).
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:
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).
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.
| Versions de OSX86 |
|---|



Commentaires
J'ai juste une petite remarque à faire concernant le § 4 :
Citer :
Quelles sont les valeurs en bleu à modifier ?
Oui, effectivement, les balise n'étaient pas en bleu.
Je viens d'éditer l'article.
J'ai tout capté
Une question subsiste sur l'EFI avec chameloon est ce qu'on peut l'avoir en 64Bits ?
Pour un meilleure compatibilité 64 bits il vaut mieux utiliser PCEFI v10.3 pour le moment, car Netkas a ajouté les tables EFI en 64 bits. ( ça règle un problème lié firewire et cela génère moins d'erreurs lors du démarrage).