GrabDuck

FAQ des Bootflags - Forums MacBidouille

:

FAQ des Bootflags

Qu'est-ce qu'un boot flag ?

Je vous renvoie vers la FAQ générale du hackintosh biggrin.gif

Où les utiliser ?

• Au démarrage :

- Pour Chameleon/Enoch/Chimera : Tapez sur la barre espace et rentrez-les un par un en les séparant par un espace et en respectant bien les MAJ/min.

- Pour Clover et pour les boot-flags de base (mode verbose, safe mode, single user mode, etc.) : Tapez sur la barre espace et cochez le mode approprié puis "Boot macOS with selected options".

- Pour Clover et pour tous les autres boot-flags : Tapez O comme Options et ajoutez-les dans Boot Args:

- Pour Ozmosis :

Source au 18/09/2014

Notez qu'il n'existe pas de manière d'entrer des boot-flags spécifiques au démarrage avec Ozmosis. Il faut donc utiliser la méthode ci-dessous.

• Manuellement, ou de manière systématique :

En les enregistrant dans un fichier de configuration (org.Boot.chamelon.plist pour Chimera, dans config.plist pour Clover ou Defaults.plist pour Ozmosis). La structure du config.plist et du Defaults.plist est à peu de choses près identique pour Clover et Ozmosis.

Concrètement, dans les fichiers indiqués ci-dessus, on trouve :

Pour Chimera / Chamelon


Code

<key>Kernel Flags</key>
<string>ENTREZ ICI VOS BOOTFLAG LES UNS A LA SUITE DES AUTRES EN LES SÉPARANT D'UN ESPACE</string>

Pour Clover/Ozmosis


Code

<key>Arguments</key>
<string>ENTREZ ICI VOS BOOTFLAG LES UNS A LA SUITE DES AUTRES EN LES SÉPARANT D'UN ESPACE</string

Ou via le terminal en ce qui concerne Ozmosis


Code

sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:boot-args=<ENTREZ ICI VOS BOOTFLAG LES UNS A LA SUITE DES AUTRES EN LES SÉPARANT D'UN ESPACE>

Notez que certains boot-flags ne se situent pas forcément à ces endroits. Ainsi, GraphicsEnabler=Yes (et son équivalant inject nVidia/ATI/Intel=true dans Clover et Ozmosis) sont des boot-flags à part entière qui ne s'inscrivent pas dans "Kernel Flags" ou "Arguments".

Si vous souhaitez les tester manuellement avant de les enregistrer, vous pouvez taper la barre espace lors du boot (lors de l'affichage du bootloader) puis rentrer un à un vos boot-flags, séparés par un espace.

Attention à bien respecter la casse des bootflag (majuscule et minuscule) ainsi que ceux avec un tiret "-" devant.

Liste des bootflag (appelés également Kernel Flags ou Boot-args)

Pour une liste plus complète mais malheureusement pas très à jour, vous pouvez également vous rendre ici

-v
-v active le mode verbose (bavard) d'OS X. Avec ce bootflag vous pourrez visualiser textuellement ce que l'ordinateur fait et charge pendant une phase de boot. Si vous n'arrivez pas à booter, avant de poster sur le forum, il est vivement conseillé d'exécuter un mode verbose pour cerner le problème.

Vous pourrez rechercher avec Google ou l'outil de recherche du forum ( ici) les mots clefs de la dernière ligne affichée . Par ex: [PCI Configuration begins]. Les problèmes sont souvent les mêmes, pensez-y avant de créer un sujet wink.gif

Bref, -v est à la base de tout bon diagnostic. Ne l'oubliez pas !

-s
-s active le mode single user d'OS X. Avec ce bootflag vous pourrez démarrer dans un mode qui permet d'effectuer des manipulations dans n'importe quel volume monté d'OS X. Ça permet par exemple de déplacer/ajouter/supprimer/éditer des fichiers ou des dossiers ou bien encore de réaliser certaines opérations de maintenance comme la réparation des droits d'accès et/ou de lecture/écriture ou bien de simplement lancer la vérification/réparation du disque de démarrage.

Les possibilités sont en principe les mêmes que si vous étiez connecté en mode administrateur (root) depuis le terminal d'OS X.

Attention, le clavier est alors en QWERTY !

-x
Permet de démarrer en mode sans échec. C'est un démarrage limité d'OSX sans kexts sauf ceux qui sont absolument nécessaires au fonctionnement du système.
C'est souvent utile pour des machines récalcitrantes ou bien après avoir installé un kext inadapté.

- x n'est pas adapté à une utilisation quotidienne. Son utilisation doit seulement permettre de stabiliser votre machine. En ce sens, ce boot-flag ne doit pas être sauvegardé dans un fichier de config, mais utilisé ponctuellement, si besoin.

-F
Ce boot-flag, valable uniquement pour Chamelon et à taper en majuscule, sert assez peu. Il permet d'ignorer l'ensemble des réglages de votre org.chameleon.Boot.plist que vous auriez déjà enregistré dans votre fichier de configuration.
-f
Permet d'ignorer le cache système. Cela peut être utile suite à une mauvaise manipulation ou après avoir bidouillé des kexts. Il force notamment le chargement de tous les kexts.

Souvent -f est à utiliser si on n'a pas bien installé un kext ni reconstruit le cache. Il en résulte des anomalies qu'il convient de réparer après avoir booter en -f.

Théoriquement, -f est devenu inutile depuis OS X Lion 10.7 car le kextcache a été remplacé par le kernelcache. Dans les faits, il fonctionne toujours aussi bien.

UseKernelCache=Yes /No
Le kernel cache est utile pour accélérer le démarrage du système. Par défaut il est activé dans OS X mais les installations sous Clover et Chameleon peuvent le désactiver pour contourner d'éventuels problèmes. En principe, il remplit donc le même rôle que -f. Dans les faits, une combinaison des deux boot-flags peut s'avérer nécessaire.

Néanmoins, si le démarrage est plus lent bien que fonctionnel, il est alors contre-productif de le laisser activé. Vous pouvez alors le désactiver en remplaçant le "Yes" par "No" dans le bootflag.

C'est toutefois un boot-flag à utiliser avec prudence, notamment si on utilise Chameleon. En effet, depuis Yosemite, il semblerait que les kexts qui sont situés dans le dossier Extra/Extensions ne soient pas/plus pris en compte par le cache système. Conséquence, certains kexts pourraient ne pas êtres chargés lors de son utilisation.

PCIRootUID=1
Ce boot-flag règle la plupart du temps des problèmes liés à la mauvaise détection de la carte graphique et/ou du disque dur. Il permet alors d'indiquer au bootloader sur quel emplacement (PCI Root) se trouve les périphériques PCI. Suivant les cas, cela peut-être 0 ou 1 ou plus rarement avec des valeurs supérieures (mais pas négatives).
GraphicsEnabler=Yes et son équivalent inject ATI/NVIDIA/Intel
Ce bootflag permet de forcer la prise en charge de la carte graphique.
Attention cependant aux configurations avec un processeur Intel et un iGPU activé. Il est conseillé de débrancher l'écran de la carte mère avant de tester la configuration sur carte graphique.
Ensuite, si ce bootflag vous est utile, il est conseillé de désactiver le iGPU dans le bios.

L'utilisation de ce boot-flag est assez aléatoire. Il peut se révéler obligatoire (notamment pour certaines cartes nVidia) mais peut aussi empêcher complètement le chargement complet de l'OS. Il n'y a pas vraiment de règle universelle en la matière. À voir et à essayer au cas par cas.

nv_disable=1
Spécifique aux cartes NVIDIA, il empêche le chargement des kexts nécessaires à ces cartes. Cela permet en général de contourner le problème de "Missing Bluetooth Controller…" et d'accéder à l'écran d'installation/au bureau.

Par ailleurs, ce boot-flag est obligatoire pour les cartes basées sur l'architecture Maxwell tant que les webdrivers n'ont pas été installés. Une fois ces derniers installés, il faut en revanche utiliser le boot-flag nvda_drv=1 pour les activer.

Enfin, les PC portables équipés de la technologie Optimus n'NVIDIA (Intel HD + NVIDIA) doivent également utiliser ce boot-flag s'il n'est pas possible de désactiver dans le Bios la puce NVIDIA intégrée ou si aucune DSDT (cf. FAQ Générale du Hackintosh) n'est utilisée pour le faire de manière logicielle.

Cette technologie n'est pas supportée sous OS X et Apple utilise sa propre solution pour basculer automatiquement entre la puce Intel HD et la puce NVIDIA (ou AMD le cas échéant mais ce boot-flag ne concerne évidemment pas les puces de cette marque dans ce cas précis).

IGPEnabler=Yes
Même raisonnement que le bootflag précédent mais avec le GPU intégré au processeur Intel.

Attention! Ne mettez pas les deux bootflag GraphicsEnabler et IGPEnabler ensemble, sous peine d'avoir un écran noir ou carrément un blocage. Ce sont des boot-flags contradictoires. En effet, s'il est possible d'activer les deux GPUs (intégré et externe) simultanément, ce n'est pas de cette manière qu'il faut procéder. Il faut passer par une DSDT (cf. FAQ Générale). Si jamais cela arrivait, vous pourriez alors booter avec -F pour les ignorer du fichier de config.

darkwake=Yes / No
Ce bootflag est utile pour paramétrer correctement la veille.
npci=0x2000 ou npci=0x3000
Si le boot en mode verbose bloque sur une ligne PCI Configuration Begin, entrer le flag npci=0x3000 ou npci=0x2000.
Il est souvent nécessaire pour les anciennes CM Asus et/ou dans le cas d'une configuration à base de processeur AMD. En revanche, il peut poser problème avec les patchs audio AppleHDA.
dart=0
Permet de désactiver vt-d qui est également désactivable dans le bios. Ce flag est par conséquent inutile si vous avez paramétré votre bios.
cpus=1
Ce bootflag permet de booter en utilisant qu'un seul cœur sur les processeurs multi-core. Généralement inutile, il peut s'avérer nécessaire sur une installation à base de processeur AMD ou avec des processeurs Intel sur socket LGA 2011. Si vous devez absolument rentrer ce boot-flag pour pouvoir démarrer, il faudra régler ce problème au plus vite. L'utilisation d'un seul cœur amoindrit considérablement les performances globales.
arch=i386
Permet de booter avec un noyau 32bits au lieu de 64bits. Certaines cartes graphiques ont besoin de ce flag pour fonctionner normalement. Il est par ailleurs obligatoire pour les processeurs très anciens et/ou non supportés comme certains Pentium, Celeron ou AMD qui ne sont pas 64bits. Ce boot-flag n'a plus cours depuis OS X 10.7 dont le kernel est 64bits par défaut tout comme le Finder. En clair, aucun processeur 32bits ne dépassera le stade de Snow Leopard.

À noter qu'en combinant arch=i386 et -force64, l'exécution d'applications 64bits sur des processeurs 64bits qui nécessitent tout de même l'utilisation du kernel 32bits est possible. En effet, comme précisé plus haut, certaines carte graphiques ne fonctionneront qu'avec le kernel 32bits.

arch=x86_64
Dans la continuité du bootflag précédent, permet de booter en 64bits le noyau. C'est inutile de préciser cela puisque depuis OS X 10.7, le système boot par défaut dans ce mode. Ce bootflag est plutôt réservé aux processeurs AMD ou aux anciennes versions d'OS X (Snow Leopard).
-nossse3bit
Permet d’émuler les instructions SSE3 sur un processeur non supporté, comme les AMD ou certains Intel.
kext-dev-mode=1

Le boot-flag kext-dev-mode=1 ne sert pas à stabiliser le Hackintosh. Ce boot-flag permet de désactiver la vérification des signatures des kexts par le système. Il ne sert que dans OS X Yosemite 10.10.x, les versions précédentes et les suivantes ne sont pas concernées.

Cette vérification de signature a été implémentée par Apple dans OS X Yosemite et sert de protection au système. Elle empêche le chargement des kext non-signés lors du boot. Gardez cela en tête mais dites-vous que cette désactivation est quasiment obligatoire sur un Hackintosh car nombre de kexts indispensables à son bon fonctionnement ne sont pas signés.

Par ailleurs, si un kext est altéré/patché pour qu'il puisse fonctionner correctement, il perd automatiquement sa signature et risque de ne pas être chargé. C'est le cas par exemple des AppleHDA.kext qui doivent être modifiés en fonction du codec audio utilisé par votre carte-mère.

Autre exemple : ce bootflag est indispensable pour pouvoir activer la commande trim sur Yosemite (sur un Mac comme sur un Hackintosh) mais pas seulement.

rootless=0

Ce boot-flag a été temporairement utilisé dans les premières versions Bêta d'OS X El Capitan 10.11 mais il est très rapidement devenu obsolète. En conséquence, ce boot-flag est totalement inutile !

Raison de l'édition : Ajout d'Optimus + Précisions sur kext-dev-mode=1 & rootless=0