https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/
OpenCore ou CLover ?
OpenCore est + récent, semble plus stable, plus fonctionnel avec certaines fonctions de macos (filevault, system integrity protection, meilleur support général), mais semble + complexe à mettre en oeuvre, et peut-être + instable, car + jeune
clover/Opencore : le bootloader. il modifie les id acpi, insere les kext (kernel extensions, basiquement les pilotes) pour rendre le noyau compatible avec le matériel
https://github.com/Dids/clover-builder/releases
clover configurator (pour éviter de faire le ficher de conf à la main)
genere le Config.plist ?
fichier qui configure clover pour lui dire quoi faire
VirtualSMC - pour émuler la présence du chip (nécessaire pour booter)
https://github.com/acidanthera/VirtualSMC/releases
les kexts doivent être choisies en fonction du matériel
https://onedrive.live.com/?authkey=%21APjCyRpzoAKp4xs&id=FE4038DA929BFB23%21455036&cid=FE4038DA929BFB23
— création de l’usb d’install
La clé USB créée sera spécifique pour cette machine, avec les bons KExts chargés. Clover (/Opencore ?) doit être installé sur la clé elle-même.
—- matos X230 :
https://dortania.github.io/OpenCore-Install-Guide/macos-limits.html#wireless-networking
i5 3320M (ivyBridge)
gpu intel HD 4000 (supporté de 10.7.3 à 10.15.7)
wifi probablement not supported (ou peut-être 3d party ?)
—– Open Core USB Creation
Pour l’install, utiliser la version DEBUG ; si tout marche bien, passer à la RELEASE ?
Depuis maxOS, une clé complète d’install peut être créée. Depuis Linux/Windows, seule une clé de recovery par internet peut être créée.
Créée sous Linux, seule le boot UEFI sera supporté.
https://dortania.github.io/OpenCore-Install-Guide/installer-guide/linux-install.html
Télécharger OpenCore : https://github.com/acidanthera/OpenCorePkg/releases
cd OpenCore-0.6.8-DEBUG/Utilities/macrecovery/
python ./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
# download macOS depuis les serveurs Apple
Ceci donne, dans le répertoire actuel, BaseSystem.dmg et BaseSystem.chunklist (ou RecoveryImage.dmg/chunklist)
Formater la clé d’install :
- table de partition GPT
- 1 seule partition, GUID 0700 (ceci se voit avec
fdisk -l /dev/sdX
qui donne “Microsoft basic data” ; ou avec gdisk -l /dev/sdX
qui donne “Code : 0700” ; peut se changer avec gdisk)
Avec gdisk /dev/sdX
- o
- n (définir uniquement le type à 0700 ; laisser le reste par défaut)
- w
sudo mkfs.vfat -F 32 -n "OPENCORE" /dev/sdX1
À la racine de la partition FAT32, mkdir com.apple.recovery.boot
et copier les fichier .dmg et .chunklist dans ce dossier
———- Préparation des fichiers EFI
https://dortania.github.io/OpenCore-Install-Guide/installer-guide/opencore-efi.html
Dans l’archive d’OpenCore, copier les fichiers du dossier X64 (ou IA32 si EFI 32b) à la racine de la partition que l’on vient de créer.
dans OC\Drivers, supprimer les pilotes non souhaités (voir site) ; je ne garde QUE OpenRuntime.efi
Dasn OC\Tools, ne garder QUE OpenShell.efi (optionnel, mais utile pour du debug)
On peut maintenant récupérer les pilotes pour NOTRE matériel ; .aml (SSDT et DSDT) vont dans ACPI ; .kext vont dans Kexts ; .efi vont dans Drivers.
Il faut HfsPlus.efi
Pour les kext, sous Linux/Win, ce sont des dossiers ; il FAUT qu’ils aient l’extensions .kext
On peut en trouver ici : http://kexts.goldfish64.com/
Il FAUT VirtualSMC et LiLu . Penser à supprimer les plugins non-nécessaires de VirtualSMC (SMCLightSensor si pas de capteur de luminosité, SMCBatteryManager pour l’install de l’OS (peut être rajouté plus tard), et SMCDellSensors si pas un Dell supporté)
Il FAUT WhateverGreen pour la gestion des GPUs. SSDT-pnlf ? Semble ne plus être nécessaire pour les versions récentes.
AppleALC : pour avoir du son, optionnel
Ethernet : pour un Lenovo X230M, c’est le chipset Intel 82579LM ; il faut donc IntelMausi
USB : Pour les chipset Skylake et ultérieurs, il ne devrait y avoir besoin de rien ; pour Coffee Lake et précédents (donc X230), il faut un injecteur universel. Ne fonctionne que sur chipsets intel
Wifi : pour carte intel, tester https://github.com/OpenIntelWireless/itlwm/releases ?
Trckpad/Trackpoint : pour Synaptics, https://github.com/VoodooSMBus/VoodooRMI/releases/
—— SSDTs
DSDT et SSDT sont des tables présentes dans le firmware du PC, qui servent à définir le matériel présent. La DSDT est la principale, les SSDT sont les secondaires.
Il faut compiler/installer les SSDT nécessaires pour notre matériel. Sous forme de code, ce sont des .dsl. Une fois compilés, ce sont des .aml. Ce sont les .aml qu’il faut passer à OpenCore.
Pour X230, il faut CPU-PM (post-install de macOS), SSDT-EC (pour le contrôleur embarqué), SSDT-PNLF (pour le rétroéclairage) et IRQ SSDT.
On peut en compiler certains avec SSDTTime , notamment SSDT-EC. À faire sur la machine cible, depuis Lnux (ou windows).
—— config.plist
Dit à OpenCore comment se comporter. On récupère Sample.plist
depuis le répertoire OpenCore\Docs\ et on le copie dans le dossier OC sur la clé USB, puis on le renomme config.plist
On utilise ProperTree (qui nécessite apt install python-tk
)
https://github.com/corpnewt/ProperTree
Ctrl-Shift-R pour faire un “Clean snapshot” : intègre les fichiers (kexts, ssdt etc…) ajoutés dans le config.plist
Vérificateur de config OpenCore :
https://opencore.slowgeek.com/