IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Reconstruire le cache Système sous OS X/macOS, Et en bonus, vérifier/Réparer les permissions sous OS X 10.11 El Cap
Options
polyzargone
posté 9 Nov 2015, 22:26
Message #1


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 13 720
Inscrit : 11 May 2006
Membre no 60 938





Le cache Système et le prelinkedkernel sous OS X/macOS




Vous avez certainement beaucoup entendu parlé sur les divers forums Hackintosh de l'importance du cache Système. Je vous propose de faire le point sur son fonctionnement et de vous expliquer dans quelles conditions le reconstruire et bien sûr, comment le faire*. Évidemment, il ne s'agit pas de rentrer dans les détails ni de tout savoir sur la question mais juste de présenter quelques notions de base.

De toute manière, il y aurait beaucoup trop à dire sur le sujet et je serais bien incapable de vous en dire plus tongue.gif . N'hésitez pas à commenter ou à me signaler des erreurs ou des oublis.

Cela étant précisé, je vais me concentrer principalement sur les versions récentes d'OS X/macOS et sur les deux principaux bootloaders utilisés à ce jour : Clover et Chameleon/Enoch.

* Si la partie explicative ne vous intéresse pas, téléchargez simplement le script de ce post en PJ tongue.gif .


◉ Les cas où reconstruire le cache est nécessaire :

En fait, il s'agit plutôt de le mettre à jour que de le reconstruire et c'est lorsque l'on modifie le dossier System/Library/Extensions que cela devient important.

Voici les cas où il faut le faire :
■ Lorsque l'on ajoute un ou plusieurs kexts.
■ Lorsque l'on modifie un ou plusieurs kexts (en le patchant "en dur" par exemple comme le font certains logiciels comme ADGPfix).
■ Lorsque l'on supprime un ou plusieurs kexts.

Pourquoi c'est nécessaire ?

Pour comprendre ce qui se passe, il faut savoir qu'OS X/macOS ne s'amuse pas à charger tous les kexts qui se trouvent dans System/Library/Extensions à chaque fois qu'il démarre. Ça prendrait beaucoup de temps et ça n'est pas nécessaire lorsque l'on sait que tous ne sont pas utiles au fonctionnement d'un Mac et à fortiori d'un Hackintosh.

Par exemple, une configuration n'utilisant pas de carte graphique NVIDIA ne va pas charger les kexts nécessaires à son fonctionnement. Tout comme les kexts AMD ne seront pas utilisés sur une configuration qui n'utilise pas ce type de carte graphique.

Pour éviter cela, le système va établir une liste de kexts fréquemment utilisés et va construire un "prelinkedkernel" qui sera chargé par macOS au démarrage. Ainsi, le temps de chargement sera considérablement réduit (je vous la fais très courte parce que c'est un peu plus compliqué que ça mais en gros, c'est ça l'idée tongue.gif ).

Ce prelinkedkernel étant établi sur la base des kexts chargés, il est donc essentiel que lorsque l'on modifie le dossier System/Library/Extensions, les changements soient pris en compte au prochain démarrage. Sans quoi, et comme le système continuera d'utiliser un ancien prelinkedkernel, ils ne seront pas pris en compte. Ou pas complétement.

◉ Je n'utilise que le dossier CLOVER/kexts ou Extra/Extensions. Suis-je concerné ?

En un mot : Non

Dans les deux cas, les kexts placés dans ces endroits ne sont pas pris en compte par le prelinkedkernel. C'est le bootloader qui s'occupera de les charger lors du démarrage et ils viendront "s'ajouter" aux kexts du prelinkedkernel.

En d'autres termes, reconstruire le cache Système ne sert à rien dans ces cas-là.

◉ Qu'en est-t-il des permissions ?

OS X/macOS étant un UNIX, la notion de droits/permissions est essentielle. Pour faire court et simple et dans le cas qui nous concerne, les kexts placés dans les dossiers System/Library/Extensions et Library/Extensions doivent impérativement être "possédés" par le Système et plus précisément par l'utilisateur root (le super utilisateur qui a absolument tous les droits).

Dès lors, il est obligatoire de s'assurer que ces kexts disposent des bons droits et des bonnes autorisations sans quoi le Système refusera de les charger. C'est à ça que servent les utilitaires comme Google: Kext Wizard ou Google: Kext Utility et c'est pourquoi on ne peut pas se contenter de copier/coller des kexts dans ces dossiers.

À noter que :
■ Le dossier Extra/Extensions utilisé parfois par Chameleon/Enoch ne déroge pas à cette règle.

■ Le dossier CLOVER/kexts (et tous ses sous-dossiers) n'est pas soumis à cette obligation.

En effet, la notion de droits/permissions ne s'applique qu'aux volumes HFS+ sous OS X/macOS et comme la partition EFI est un volume FAT32, elle n'est pas concernée. En clair, il n'y a pas besoin de s'occuper des permissions ni de reconstruire le cache lorsque l'on utilise uniquement le dossier EFI/CLOVER.

◉ Comment reconstruire le cache manuellement ?

En principe, vous n'aurez pas à le faire grâce aux utilitaires cités plus haut mais si vous voulez faire ça "proprement" et savoir ce qui se passe réellement, tapez ceci et validez après chaque ligne puis redémarrez :

Code
sudo chmod -R 755 /Library/Extensions
sudo chown -R 0:0 /Library/Extensions
sudo chmod -R 755 /System/Library/Extensions
sudo chown -R 0:0 /System/Library/Extensions
sudo touch /System/Library/Extensions
sudo kextcache -Boot -U /


Pour macOS Big Sur (et suivants) :

Code
sudo chmod -Rf 755 /Library/Extensions
sudo chown -Rf 0:0 /Library/Extensions
sudo touch -f /Library/Extensions
sudo kextcache -i /
sudo kcditto


Vous pouvez également utiliser ce script tout fait.

◉ BONUS - Vérifier/Réparer les permissions sous OS X 10.11 El Capitan :

Vous l'avez peut-être remarqué, l'Utilitaire de disque d'El Capitan ne propose plus de réparer les permissions du disque système.

Apple considère que ce n'est plus nécessaire. C'est peut-être vrai dans le cadre de l'utilisation normale d'un Mac (encore que…) mais sur un Hackintosh, ça peut être utile voire nécessaire dès que le SIP est désactivé et que l'on commence à jouer un peu avec le dossier Système.

Et comme l'ancienne commande terminal

Code
diskutil repairPermissions /


ne fonctionne plus non plus, on pourrait croire que c'est désormais impossible.

Fort heureusement, ce n'est pas le cas biggrin.gif !

Simplement, la commande a changé et la fonction existe toujours.
La commande pour vérifier les permissions est la suivante :

Code
sudo /usr/libexec/repair_packages --verify --standard-pkgs /


Et pour les réparer :


Code
sudo /usr/libexec/repair_packages --repair --standard-pkgs /

Si vous souhaitez vérifier/réparer les permissions d'un autre volume que celui du disque de démarrage, il faut adapter comme ceci (si le nom du volume comporte des espaces, pensez à le mettre entre ""):
Code
sudo /usr/libexec/repair_packages --verify --standard-pkgs /Volumes/"nom du volume à vérifier ou réparer"


Ceci étant dit, ne croyez pas que réparer les permissions du disque est la solution à tous les problèmes. Ce n'était pas le cas avec les versions précédentes d'OS X et ça ne l'est toujours pas.

Gardez aussi à l'esprit que cette commande ne reconstruit pas le cache Système et que quoiqu'il arrive, il faudra toujours le faire lorsque c'est nécessaire comme par exemple après l'ajout/modification d'un ou plusieurs kexts dans le dossier /Système/Bibliothèque/Extensions !

Fichier(s) joint(s)
Fichier joint  system_caches_rebuild.command.zip ( 720 octets ) Nombre de téléchargements : 47
Fichier joint  system_caches_rebuild.command_BS.command.zip ( 1009 octets ) Nombre de téléchargements : 2
 


--------------------
Un MacmacOS 10.15.7 MacBook Air mi-2012 Core i5 1,7 GHz Intel HD 4000 SSD 64 Go
Des Hacks Asus Z170-P - Core i7 6700 3,40 GHz - Sapphire RX 6600 XT 8 Go - 32 Go DDR4 Gigabyte H110M-S2H - Core i5 6600 3,30 GHz - Zotac GTX 1060 6 Go - 32 Go DDR4 Gigabyte GA-H97-HD3 - Core i5 4570 3,20 GHz - MSI GTX 650 Ti 2 Go - 16 Go DDR3 Acer Aspire V3 772G Core i5 4210M 2,60 GHz - Intel HD 4600 + GTX 850M 2 Go (désactivée) - 16 Go DDR3 Dell Latitude e7470 Core i5 6300U 2,40 GHz - Intel HD 520 - 16 Go DDR4 Dell Latitude 7490 Core i7 8650U 1,90 GHz - Intel UHD 620 - 16 Go DDR4 Dell Latitude e7440 Core i7 4600U 2,10 GHz - Intel HD 4400 - 16 Go DDR3 HP Elite 8300 USFF - Core i7 3770S 3,90 GHz - Intel HD 4000 (+ quelques autres...)

Politique vis à vis des outils automatisés et des distributions - Guide d'installation - Tutoriels - Lexique et utilité des Kexts - FAQ Générale du Hackintosh - FAQ des Bootloaders - FAQ des Bootflags - FAQ des problèmes les plus courants - FAQ sur les Mises à jour Majeures sur Hackintosh
Go to the top of the page
 
+Quote Post
Patrice Broussea...
posté 10 Nov 2015, 02:38
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 931
Inscrit : 18 Jan 2015
Lieu : Montréal, Québec
Membre no 193 846



Également possible via cet utilitaire: https://www.firewolf.science/2015/07/repair...sions-v2-0-cli/

Aussi intéressant: http://www.firewolf.science/2015/10/kcpm-u...g-sip-and-more/

Ce message a été modifié par Patrice Brousseau - 10 Nov 2015, 02:43.


--------------------
Nouveau Hackintosh dédié MAO • Gigabyte Designare i7 9700K 3,6GHz - RX560 - 32 Go DDR4 - OS X 10.14.6/Win 10 - OpenCore 0.8.8 Mod No ACPI
Hackintosh Bureau • Dell XPS 8930 i7 8700 3,2GHz - Radeon RX580 - 32 Go DDR4 - MacOS 13.6.4/MacOS 14.3.1 test Windows 11 - OpenCore 0.9.7 Mod No ACPI
Ancien Hackintosh dédié MAO • Dell Optiplex 9020 i7 4770 3,4GHz - GT710 - 16 Go DDR3 - OS X 10.14.6 - OpenCore 0.8.8
Go to the top of the page
 
+Quote Post
polyzargone
posté 10 Nov 2015, 19:22
Message #3


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 13 720
Inscrit : 11 May 2006
Membre no 60 938



Citation (Patrice Brousseau @ 10 Nov 2015, 02:38) *


Le second lien me semble en effet très intéressant et bien plus complet que le premier ! Ça pourrait régler le problème de l'installation sous Ozmosis si le SIP peut être désactivé en NVRAM. À essayer unsure.gif

Merci pour l'info thumb.gif


--------------------
Un MacmacOS 10.15.7 MacBook Air mi-2012 Core i5 1,7 GHz Intel HD 4000 SSD 64 Go
Des Hacks Asus Z170-P - Core i7 6700 3,40 GHz - Sapphire RX 6600 XT 8 Go - 32 Go DDR4 Gigabyte H110M-S2H - Core i5 6600 3,30 GHz - Zotac GTX 1060 6 Go - 32 Go DDR4 Gigabyte GA-H97-HD3 - Core i5 4570 3,20 GHz - MSI GTX 650 Ti 2 Go - 16 Go DDR3 Acer Aspire V3 772G Core i5 4210M 2,60 GHz - Intel HD 4600 + GTX 850M 2 Go (désactivée) - 16 Go DDR3 Dell Latitude e7470 Core i5 6300U 2,40 GHz - Intel HD 520 - 16 Go DDR4 Dell Latitude 7490 Core i7 8650U 1,90 GHz - Intel UHD 620 - 16 Go DDR4 Dell Latitude e7440 Core i7 4600U 2,10 GHz - Intel HD 4400 - 16 Go DDR3 HP Elite 8300 USFF - Core i7 3770S 3,90 GHz - Intel HD 4000 (+ quelques autres...)

Politique vis à vis des outils automatisés et des distributions - Guide d'installation - Tutoriels - Lexique et utilité des Kexts - FAQ Générale du Hackintosh - FAQ des Bootloaders - FAQ des Bootflags - FAQ des problèmes les plus courants - FAQ sur les Mises à jour Majeures sur Hackintosh
Go to the top of the page
 
+Quote Post
Farkas
posté 11 Aug 2018, 14:07
Message #4


Adepte de Macbidouille
*

Groupe : Membres
Messages : 248
Inscrit : 1 Apr 2009
Membre no 133 913



Hello

Merci pour ce tuto, très utile !

Petite mise à jour : depuis Sierra, même les commandes via le terminal ne permettent plus de réparer les permissions.
Seules les permissions utilisateur peuvent être réparées via
Code
diskutil resetUserPermissions / `id -u`

Pour le reste, DCPIManager, Onyx ou encore CleanMyMac ... ?

--

Une question :
Après la reconstruction manuelle, j'obtiens toutes les permissions de kext-dev-mode pour les kexts additionnels.



Je suppose qu'il n'y a pas lieu de s'en inquiéter ?
La question peut paraître banale mais je pense que le préciser évitera des inquiétudes aux débutants du hack.

Ce message a été modifié par Farkas - 11 Aug 2018, 14:23.


--------------------
Farkas se prononce fɔʁkɔʃ

iMac 27" 2013 : Intel i7 / 16 Go / GTX 680MX / Yosemite
iHack : Z97X-UD3H-BK / Intel i7 4790K / 16Go / GTX 970 / High Sierra + Win 10 / Clover
iHack : ASUS ROG Strix Z490-E / Intel i7 10700K (Comet Lake) / 32Go / Intel UHD630 + RX 5700 XT / Catalina + Win 10 / OpenCore
Hackbook Pro : MSI GP72VR 7RF / Intel i7 7700HG (Kaby Lake) / 8Go / Intel HD630 + GTX 1060 / Sierra + Win10 / Clover
Go to the top of the page
 
+Quote Post
pierrep
posté 7 Nov 2019, 19:22
Message #5


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 279
Inscrit : 13 Oct 2002
Lieu : Paris
Membre no 4 115



Salut !
Est-ce possible de reconstruire le cache système d'un volume autre que le volume de démarrage en cours ?
Je ne sais pas si je suis très clair...


--------------------
Hackintosh Gigabyte Z170X-UD3 / Core i7 6700K / 32 Go / Radeon RX 580 (27"+22") / 3 SSD / Mojave + Windows 10
Go to the top of the page
 
+Quote Post
pierrep
posté 17 Nov 2019, 20:04
Message #6


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 279
Inscrit : 13 Oct 2002
Lieu : Paris
Membre no 4 115



Please, help!


--------------------
Hackintosh Gigabyte Z170X-UD3 / Core i7 6700K / 32 Go / Radeon RX 580 (27"+22") / 3 SSD / Mojave + Windows 10
Go to the top of the page
 
+Quote Post
maclinuxG4
posté 18 Nov 2019, 06:17
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 3 454
Inscrit : 28 Dec 2001
Lieu : ile de france
Membre no 1 715



oui, si tu monte la partition EFI du second disque.
et tu adapte le script indiquer que c'est ton second disk

wink.gif wink.gif


--------------------
hack Z170-UD5 TH + i7 6700k + 16 Go dimm + radeon 580 pulse 8192 mo + SSD 1 T / 2 T + acer XF240H+ macOS Mac OS + Mac OS 10.12.6 /10.14.6 + imprimante HP5520 + (port DP / carte HDMI ) + H75 v2 +r5138
 macpro1,1 Dual core 2,66 GHz, 4 Go FB-dimm+ radeon HD 5770 + ST 500 Go + LCD Samsung 710T + Mac OS 10.6.8 + plantronics DSP 500 + Canon S50 + imprimante HP5520 +  ipad mini
► NO WINDOWS BOOT... Only  linux manjaro
hack AMD 5950 B550-vision D + 32 Go dimm + radeon VII 16 Go+ 2 M2 x 1 xT + SSD 1 T / 2 T + sonnet ether 10G+ acer XF240H+ 10.14.6 + H150 pro + O C 07.1+ boitier 900 v2 Be quiet

--------------------
Go to the top of the page
 
+Quote Post
pierrep
posté 18 Nov 2019, 19:16
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 279
Inscrit : 13 Oct 2002
Lieu : Paris
Membre no 4 115



Merci maclinuxG4

Donc comme ça ?

sudo chmod -R 755 /Volumes/"nom du volume"/Library/Extensions
sudo chown -R 0:0 /Volumes/"nom du volume"/Library/Extensions
sudo chmod -R 755 /Volumes/"nom du volume"/System/Library/Extensions
sudo chown -R 0:0 /Volumes/"nom du volume"/System/Library/Extensions
sudo touch /Volumes/"nom du volume"/System/Library/Extensions
sudo kextcache -Boot -U /Volumes/"nom du volume"

Et c'est les mêmes commandes sous Sierra ?


--------------------
Hackintosh Gigabyte Z170X-UD3 / Core i7 6700K / 32 Go / Radeon RX 580 (27"+22") / 3 SSD / Mojave + Windows 10
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 09:35