Contribute
Register

[Guide] HackrNVMeFamily co-existence with IONVMeFamily using class-code spoof

Status
Not open for further replies.
Note: If you already have a statically patched DSDT.aml in ACPI/patched, you should not use the _DSM->XDSM patch. Instead, make sure you removed the _DSM at the path (or renamed to XDSM) in your patched DSDT (or patched SSDTs) at ACPI/patched/DSDT.aml. Typically, this would be done by applying "Remove _DSM methods", or "Rename _DSM methods to XDSM" as per my laptop ACPI patching guide.
Thanks,Rehabman. My NVMe SSD is Samsung SM961. ACPI path is /SB.PCI0.RP09.PXSX. But OEM already defined a _DSM method. I only Changed PXSX._DSM as PXSX.XDSM. Others same your way. Then NVMe SSD is internal disk.
 
@RehabMan, for a fresh installation of 10.12.6 Sierra on 960 evo nvme, I followed the guide, and yet I still can't see the drive inside the installer. here's what i've done:
  • determine the path & generate the SSDT_NVMe-Pcc.aml, placed in /ACPI/Patched
  • Placed NVMe_patches_10_12_6.plist from your patch-nvme GitHub site in KextsToPatch
  • Placed IONVMeFamily.kext (taken from my other hack running 10.12.6) inside the kexts/Other
  • added change _DSM to XDSM in clover DSDT patch
Since the guide on the GitHub says to place HackrNVMeFamily.kext post-install, I didn't include it in the USB installer.
I have my CLOVER file attached below. Thanks
 

Attachments

  • didii-CLOVER.zip
    3.3 MB · Views: 97
@RehabMan, for a fresh installation of 10.12.6 Sierra on 960 evo nvme, I followed the guide, and yet I still can't see the drive inside the installer. here's what i've done:
  • determine the path & generate the SSDT_NVMe-Pcc.aml, placed in /ACPI/Patched
  • Placed NVMe_patches_10_12_6.plist from your patch-nvme GitHub site in KextsToPatch
  • Placed IONVMeFamily.kext (taken from my other hack running 10.12.6) inside the kexts/Other
  • added change _DSM to XDSM in clover DSDT patch
Since the guide on the GitHub says to place HackrNVMeFamily.kext post-install, I didn't include it in the USB installer.
I have my CLOVER file attached below. Thanks
Oh la la... Only point 1 & 4 seem correct.
You need to read again (slowly!) post #1 here.
You need to generate yourself a HackrNVMeFamily-10_12_6.kext and place it into EFI/Clover/kexts/Other
 
Oh la la... Only point 1 & 4 seem correct.
You need to read again (slowly!) post #1 here.
You need to generate yourself a HackrNVMeFamily-10_12_6.kext and place it into EFI/Clover/kexts/Other

Hi Cosmos654, thanks for replying man. :)

Really? because according to the Sierra notes from RehabMan's github repo says

"If you are trying to use HackrNVMeFamily for the 10.12 installer, forget about it. Use the correct patches in config.plist KextsToPatch."

I'll try your suggestion tho. At the moment, I somehow managed to install it to my external HDD, and clone it into the 960 evo via safemode. Now i can boot into the 960 evo, but only on safemode. Booting normally gives me a kp regarding nvme.
 
Hi Cosmos654, thanks for replying man. :)

Really? because according to the Sierra notes from RehabMan's github repo says

"If you are trying to use HackrNVMeFamily for the 10.12 installer, forget about it. Use the correct patches in config.plist KextsToPatch."

I'll try your suggestion tho. At the moment, I somehow managed to install it to my external HDD, and clone it into the 960 evo via safemode. Now i can boot into the 960 evo, but only on safemode. Booting normally gives me a kp regarding nvme.

Are you sure you used '--spoof' option when generating the kext ?
post #1 extract:
To do this we use the --spoof option. For example, to create HackrNVMeFamily for 10.12.2:
Code (Text):

cd ~/Projects/patch-nvme.git
./patch_nvme.sh --spoof

If you're running 10.12.x, the result will be HackrNVMeFamily-10_12_x.kext which can be placed in EFI/Clover/kexts/Other for injection via Clover (installer or recovery scenario), or installed to the system volume (post-install scenario).
 
Are you sure you used '--spoof' option when generating the kext ?
post #1 extract:
To do this we use the --spoof option. For example, to create HackrNVMeFamily for 10.12.2:
Code (Text):

cd ~/Projects/patch-nvme.git
./patch_nvme.sh --spoof

If you're running 10.12.x, the result will be HackrNVMeFamily-10_12_x.kext which can be placed in EFI/Clover/kexts/Other for injection via Clover (installer or recovery scenario), or installed to the system volume (post-install scenario).

Yeah man, I did. and i generated the shellscript on my other hack running 10.12.6 as well. The md5 hash outputs seems to be ok as well no error or anything.

Just now, i placed the HackrNVMeFamily-10_12_6.kext in kexts/Other inside the USB installer. I can boot in safemode, but it gives me KP "nvme fatal error" on normal boot. I have the kp pic attached as well as my current EFI folder

Should the md5 output be different when we're using the --spoof option, and without?

Thankyou
 

Attachments

  • safemodeCLOVER.zip
    3.3 MB · Views: 96
  • nvmeKP.JPG
    nvmeKP.JPG
    126.7 KB · Views: 97
Yeah man, I did. and i generated the shellscript on my other hack running 10.12.6 as well. The md5 hash outputs seems to be ok as well no error or anything.

Just now, i placed the HackrNVMeFamily-10_12_6.kext in kexts/Other inside the USB installer. I can boot in safemode, but it gives me KP "nvme fatal error" on normal boot. I have the kp pic attached as well as my current EFI folder

Should the md5 output be different when we're using the --spoof option, and without?

Thankyou
Just in case:
- rebuild kext cache: sudo kextcache -i /
- your clover-config indicates "detect" for kexts/other/ so check if you have a fakeSMC kext (and other kext) allready installed in your L/E/ or S/L/E/ boot disk (because you talked previously about cloning...)
- If not, use "Inject" instead of "detect" in clover-config.
- If yes, you need to post-install all kext (e.g. HackrNVMeFamily-10_12_6.kext) in L/E or S/L/E/ with e.g. KextBeast
 
Last edited:
@RehabMan, for a fresh installation of 10.12.6 Sierra on 960 evo nvme, I followed the guide, and yet I still can't see the drive inside the installer. here's what i've done:
  • determine the path & generate the SSDT_NVMe-Pcc.aml, placed in /ACPI/Patched
  • Placed NVMe_patches_10_12_6.plist from your patch-nvme GitHub site in KextsToPatch
  • Placed IONVMeFamily.kext (taken from my other hack running 10.12.6) inside the kexts/Other
  • added change _DSM to XDSM in clover DSDT patch
Since the guide on the GitHub says to place HackrNVMeFamily.kext post-install, I didn't include it in the USB installer.
I have my CLOVER file attached below. Thanks

You need to go back and read post #1. Carefully.

"If you are trying to use HackrNVMeFamily for the 10.12 installer, forget about it. Use the correct patches in config.plist KextsToPatch."

You should read the entire README.
 
Yeah man, I did. and i generated the shellscript on my other hack running 10.12.6 as well. The md5 hash outputs seems to be ok as well no error or anything.

Just now, i placed the HackrNVMeFamily-10_12_6.kext in kexts/Other inside the USB installer. I can boot in safemode, but it gives me KP "nvme fatal error" on normal boot. I have the kp pic attached as well as my current EFI folder

Should the md5 output be different when we're using the --spoof option, and without?

Thankyou

Assuming you are booting the installer, not something else...

Note: You have way too much stuff in EFI/Clover/kexts/Other for booting the installer.

Read post #1, "Problem Reporting" (image from Windows Device Manager is missing).
 
c
Just in case:
- rebuild kext cache: sudo kextcache -i /
- your clover-config indicates "detect" for kexts/other/ so check if you have a fakeSMC kext (and other kext) allready installed in your L/E/ or S/L/E/ boot disk (because you talked previously about cloning...)
- If not, use "Inject" instead of "detect" in clover-config.
- If yes, you need to post-install all kext (e.g. HackrNVMeFamily-10_12_6.kext) in L/E or S/L/E/ with e.g. KextBeast

I'm using inject right now, and no, I didn't install anything inside the L/E or S/L/E. Just confirmed this. Unless clover automatically installs kexts to L/E or S/L/E.

Assuming you are booting the installer, not something else...

Note: You have way too much stuff in EFI/Clover/kexts/Other for booting the installer.

Read post #1, "Problem Reporting" (image from Windows Device Manager is missing).


Hi RehabMan, I'm not booting into the installer anymore, I installed Sierra to my external hdd, and then cloned it using CCC into my 960 Evo. I didn't install anything into the S/L/E or L/E atm IONVMeFamily.kext is untouched. The spoofed HackrNVMeFamily-10_12_6.kext is still inside my USB's kexts/other

Oh, another thing, the special patch for 960 evo in the post #1 is strictly for 10.11.x right? it doesn't apply to 10.12.x?

I have my updated clover file below (still gives me the same nvme kp), as well as the NVMe path from windows manager, and the spoofed IOPCIClassMatch value inside HackrNVMeFamily-10_12_6.kext' info.plist. I think it seems to be ok. Thanks for the help guys. I really appreciate it :)

EDIT:
I forgot to mention this, but i can boot to my 960 evo via safemode. I can see RP09 inside ioreg in terminal, which the same as my NVMe path from windows. under RP09, HackrNVMeController is also present. kexstat also show that HackrNVMeFamily is present, but not IONVMeFamily. Does this mean i did the class-code spoofing properly?
 

Attachments

  • didii-latestClover.zip
    3.3 MB · Views: 98
  • NVMe path.png
    NVMe path.png
    118.8 KB · Views: 171
  • IOPCIClassMatchValue.png
    IOPCIClassMatchValue.png
    29 KB · Views: 152
Last edited:
Status
Not open for further replies.
Back
Top