IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Installer un SSD NVme (méthode avec SSDT), pour Sierra et El Capitan
Options
jeanchrijaz
posté 13 Feb 2018, 18:51
Message #1


Macbidouilleur de vermeil !
****

Groupe : Modérateurs
Messages : 965
Inscrit : 22 Sep 2015
Lieu : Aix-en-Provence (France)
Membre no 196 549



Pour ceux qui veulent ajouter un SSD en NVme mais qui sont encore sous Sierra ou El Capitan il existe plusieurs solutions
- la plus simple c'est d'installer les patch de Pike R. Alpha inclus dans clover configurator

MAIS dans mon cas les débits en lecture/écriture du NVme n'étaient pas corrects et le disque était reconnu en externe
en plus je trouvais que ca manquait de stabilité au niveau du système...
c'est pour cette raison que j'ai du me tourner vers une 2ème solution

- Donc... 2ème possibilité : créer un fichier SSDT spécifique à votre carte mère et générer un kext (méthode RehabMan)
qui est l'objet du tuto....

pour ce tuto il faut remplir plusieurs conditions
• avoir un NVme (logique...)
avoir déjà un système fonctionnel qui sera exactement le même que vous allez installer sur votre NVme (important !!!!!)
• prendre le temps de lire et analyser le tuto

Au 1er abord ca peut vous paraitre relativement compliqué
mais si vous suivez à la lettre ce tuto tout devrait bien se passer et votre NVme devrait être parfaitement reconnu et fonctionnel
et logiquement si vous suivez bien les étapes vous devriez en avoir pour 5-10 mn pour créer votre SSDT et votre kext
MAIS SI VOUS NE VOUS SENTEZ PAS CAPABLE IL VOUS MIEUX DÉFINITIVEMENT VOUS ORIENTER VERS LA 1ÈRE SOLUTION

Petite parenthèse....
Si vous n'avez pas de port M.2 sur votre carte mère, vous pouvez quand même installer un NVme grace à des adaptateur en PCI-express que l'on peut trouver un peu de partout
(ou bien rajouter un 2ème NVme a votre installation si vous n'avez qu'un seul port M.2 sur votre carte mère)
personnellement j'ai pris celui ci (Asus HYPER mini M.2 X4) qui fonctionne très bien
il faut bien entendu avoir un port PCIe de libre qui gère le x4 (un 2ème port 16x fait très bien l'affaire) et bien regarder les compatibilités avec votre chipset qui peuvent varier d'une carte à l'autre
si vous passez par cette solution la procédure sera exactement la même
________



Maintenant que les présentations sont faites on va pouvoir entrer dans le vif du sujet et démarrer le Tuto.....

Démarrez votre hack normalement (sur le disque qui vous sert de boot)
si le Nvme n'est pas détecté dans l'utilitaire de disques, installez provisoirement les patch de Pike R. Alpha en fonction de votre système (sierra ou el capitan)
OU installez toujours provisoirement « NVMeGeneric.kext » et mettez le dans EFI/clover/kext/other
(c'est l'un ou l'autre mais pas les 2)

Une fois que votre disque est détecté on va procéder par étapes :

• 1: Téléchargez la dernière version de MaciASL à partir du repo de Rehabman https://bitbucket.org/RehabMan/os-x-maciasl...atic/downloads/

• 2: Décompressez le fichier et mettez MaciASL.app dans votre dossier Applications

• 3: Téléchargez et installez Xcode depuis l'App Store: https://itunes.apple.com/fr/app/xcode/id497799835?mt=12
Une fois installé, ouvrez Xcode et acceptez ensuite le contrat de licence

excl.gif Pour Sierra vous devez aussi installer les outils de commande
Pour les installer entrez cette commande dans le terminal

Code
xcode-select --install

Une boite de dialogue s'ouvrira et cliquez sur installer pour les télécharger



• 4: Une fois Xcode installé, ouvrez une fenêtre du Terminal et exécutez ces commandes pour générer et installer la dernière version du compilateur IASL:

Code
cd ~/Documents
git clone https://github.com/RehabMan/Intel-iasl.git iasl.git
cd iasl.git
make

ensuite

Code
sudo make install

et pour finir

Code
sudo cp /usr/bin/iasl /Applications/MaciASL.app/Contents/MacOS/iasl61



• 5: Téléchargez et lancez IORegistryExplorer v2.1 (téléchargez le ici)

• 6: Dans la barre de recherche de IOReg, tapez «storage» et recherchez l'arborescence contenant votre SSD NVme ...

Dans mon cas on peut voir que mon Samsung 950 Pro est sur la ligne PCI0 RP01 PXSX

excl.gif LES ADRESSES DE VOTRE ARBORESCENCE SERONT DIFFÉRENTES !!!! c'est uniquement pour l'exemple et vous aider à visualiser vos propres adresses



Ensuite, vous devrez sélectionner la ligne (adresse) ou est connecté votre NVme (PXSX dans mon cas)
il va falloir modifier la première valeur pour que « IONVMEFamily.kext » ne se charge pas pendant le processus de démarrage

class-code => <02 08 01 00>
class-code modifié => <FF 08 01 00>





• 7: Maintenant que vous avez toutes vos adresses et le class-code vous pouvez ouvrir MaciASL.
Ensuite, dans la barre de menu cliquez «File» et faites «New» (N'utilisez PAS New ACPI).

Vous devez copier le code ci-dessous, puis remplacer ces parties en surbrillance par vos emplacements et votre class-code
Je vous mets une image avec des couleurs pour bien les mettre en évidence



Maintenant que vous avez bien repéré vos adresses et le class-code à modifier vous pouvez copier et coller le code ci dessous dans le nouveau fichier MaciASL
Encore une fois, pensez à bien modifier les valeurs par les votres

Code
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.RP01.PXSX, DeviceObj)
    Method(_SB.PCI0.RP01.PXSX._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xFF, 0x08, 0x01, 0x00 },
        })
    }
}
//EOF


excl.gif SI VOUS ÊTES SUR EL CAPITAN ET QUE VOUS VOUS VOULEZ INSTALLER UN SAMSUNG 960 EVO
Si vous avez cette combinaison (10.11.x + 960 EVO), vous devez injecter des propriétés supplémentaires pour empêcher le chargement du fichier « IONVMeFamily.kext ».
Et pensez à changer les valeurs par les votres !!!

Code
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
// also inject "compatible", "IOName", and "name" such that 10.11.x IONVMeFamily
// does not match on pci144d,a804 (Samsung 960 EVO)
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.RP01.PXSX, DeviceObj)
    Method(_SB.PCI0.RP01.PXSX._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
            "compatible", Buffer() { "pci144d,a801" },
            "IOName", "pci144d,a801",
            "name", Buffer() { "pci144d,a801" },
        })
    }
}
//EOF




• 8: Une fois que vous êtes sûr que tout est correct, cliquez sur «Compile» et assurez-vous que vous n'obtenez aucune erreur.
Si tout est bon dans la barre de menu cliques sur «File», «Save as» et enregistrez le fichier avec les paramètres suivants :

Name: SSDT-NVMe-Pcc.aml
Location: Desktop (bureau)
Format: ACPI Machine Language Binary


• 9: Montez la partition de votre disque principal à l'aide de Clover Configurator (pas le NVme !!!!!),
puis prenez le fichier « SSDT-NVMe-Pcc.aml » que vous avez sauvegardé sur bureau et mettez le dans EFI/clover/ACPI/Patched

• 10: Téléchargez le patch de RehabMan qui se trouve à cette adresse : https://github.com/RehabMan/patch-nvme
et dézippez le dans votre dossier « Téléchargements »

• 11: Maintenant il va falloir générer le kext
Pour cela ré-ouvrez le terminal et collez les commandes ci-dessous

Code
cd ~/Downloads/patch-nvme-master


Ensuite utilisez qu'une seule de ces commandes en fonction de la version de votre OS
choisissez dans le dossier que vous avez téléchargé et mis dans votre dossier téléchargements, la version qui correspond a celle votre OS

Code
./patch_nvme.sh --spoof 10_12_0
./patch_nvme.sh --spoof 10_12_1
./patch_nvme.sh --spoof 10_12_2
...etc


il ne fauf pas copier toutes les commandes, mais uniquement celle qui correspond a votre OS
la commande ./patch_nvme.sh --spoof + la version du .plist qui correspond à la version sur laquelle vous êtes

Par exemple pour Sierra avec dernière mise à jour de sécurité ca donnera ça

Code
./patch_nvme.sh --spoof 10_12_6_sec2018-001


Si vous obtenez ce message c'est que vous avez entré le bon code et la bonne version de votre OS
Si c n'est pas cas c'est que vous vous êtes trompé de version d'OS et vous devez recommencer

Code
Vanilla MD5 matches expected MD5 entry (1b712ac1b6e56f846a7e5d0056cdea20)
Patched MD5 matches expected MD5 entry (cde08888426959748a7c1e01f990643e)



• 12: Allez dans votre dossier téléchargement et dans le dossier que vous avez téléchargé
et récupérez le kext que vous venez de générer « HackrNVMeFamily-xx_xx_x.kext » et mettez le dans votre dossier EFI/clover/kext/other

• 13: lancez clover configurator et ouvrez votre fichier config.plist
et ajoutez ce patch dans DSDT (à l'onglet ACPI)

Comment : Change _DSM to XDSM
Find : 5f44534d
Replace : 5844534d

pensez aussi à rajouter SSDT-NVMe-Pcc.aml dans le tableau SortedOrder




• 14: Toujours dans votre fichier config.plist supprimez les patchs de Pike R. Alpha
(ou NVMeGeneric.kext dans votre dossier kext/other)
une fois que c'est fait sauvegardez le fichier config.plist et redémarrez votre hack.....

• 15: vous devriez maintenant voir votre Nvme parfaitement reconnu...
vous pouvez à présent le formater et ensuite copier tout votre dossier EFI du disque de boot dans la partition de votre NVme pour le rendre bootable

Maintenant que le NVme est formaté et que le dossier EFI est copié vous pouvez cloner votre disque actuel dessus
ou bien directement faire une clean instal dessus....

Si vous faites une clean instal a partir de votre clé de boot
PENSEZ A METTRE LE KEXT ET LE FICHIER SSDT DANS VOTRE CLÉ DE BOOT
excl.gif La version de l'OS sur la clé de boot doit être la même que celle du kext qui à été créée

Et voila... c'est (enfin) terminé...
Donc si vous avez des question ou le moindre soucis c'est en dessous que ca se passe wink.gif


EDIT
Si vous avez plusieurs NVme il n'y aucun problème.... (un sur le port M.2 et un autre sur une carte par exemple)
il faudra ajouter les adresses de chacun au moment de la création de votre SSDT (étape 6 du tuto)


et dans mon cas ca donne ca.....

Code
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.PEG1.PEGP, DeviceObj)
    Method(_SB.PCI0.PEG1.PEGP._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
    External(_SB.PCI0.RP01.PXSX, DeviceObj)
    Method(_SB.PCI0.RP01.PXSX._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
//EOF


--------------------
iPhone 6s 64 Go Apple TV 4 Macbook Pro Touch Bar 13" (2017) SSD Nvme 512 Go /16 Go de Ram / macOS High Sierra 10.13.3
Hackintosh : SMBIOS iMac 14,2 - macOS Sierra 10.12.6 (voir ici)
• Carte mère : Asus Z97-Pro (wifi-ac) • i7 4790K (+ Watercooling Be Quiet silent loop 240) • 32 Go de Ram (4 x 8 Go) Corsair Platinum @ 2133Mhz C9
• Disque Système : Samsung 960 EVO 250 Go M.2 NVme • Disque de rendus : Samsung 950 pro 256 Go M.2 NVme • Disque Cache : Samsung 850 EVO 500 Go • Stockage interne : 3 x 3 To en Raid 0
• EVGA GTX 980 Ti SC+ 6Go GDDR 2 moniteurs AOC 27" en 2560 x 1440 (QHD) PCIE combo card Broadcom BCM94360CSAX (wifi 5Ghz + bluetooth 4.0)
M-Audio Fast Track C600 (carte son externe USB) Alimentation Corsair RM750x NO WINDOWS BOOT
... Only

Politique vis à vis des outils automatisés et des distributions - FAQ Générale du Hackintosh - FAQ des Bootloaders - FAQ des Bootflags - FAQ des problèmes les plus courants - Tutoriels - Passage à El Capitan/Sierra

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 : 24th February 2018 - 00:53