Contribute
Register

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

Status
Not open for further replies.
No KP there. Problem with your memory map/Clover setup. Use OsxAptioFixDrv-64.efi not OsxAptioFix2Drv-64.efi.



It is the KP you expect when using non-spoof HackrNVMeFamily with IONVMeFamily.

Suggest you implement the solution a step at a time:
0) start with vanilla setup (no HackrNVMeFamily, vanilla IONVMeFamily in /S/L/E)
1) add _DSM->XDSM patch. Boot. Verify that injected ACPI (use MaciASL to view) is without _DSM methods. IONVMeFamily will still try to load, but fail due to 512 byte block size.
2) add SSDT_NVMe-Pcc.aml. Boot. Verify that class-code is injected by looking at _SB.PCI0.RP04.PXSX in ioreg. IONVMeFamily will not load as it does not match against the spoofed class-code.
3) generate and install HackrNVMeFamily. Boot. You should now be using HackrNVMeFamily. NVMe device should be detected.

How can I tell if IONVMeFamily is loading or not after the aml is added? I can verify that the class-code is injected.
 

Attachments

  • Screen Shot 2017-08-25 at 3.35.29 AM (2).png
    Screen Shot 2017-08-25 at 3.35.29 AM (2).png
    1.2 MB · Views: 108
How can I tell if IONVMeFamily is loading or not after the aml is added? I can verify that the class-code is injected.

Code:
kextstat|grep IONVMeFamily
 
Code:
Joes-iMac:~ joe$ kextstat|grep IONVMeFamily
   47    0 0xffffff7f81d01000 0x34000    0x34000    com.apple.iokit.IONVMeFamily (2.1.0) 12D4270E-AFFC-34DC-9714-44D1FE33333F <39 23 17 16 12 7 6 5 4 3 1>

Check out this output. Looks like its loading despite the class-code being injected.
If I'm understanding this right, thats totally bizarre.
 
Code:
Joes-iMac:~ joe$ kextstat|grep IONVMeFamily
   47    0 0xffffff7f81d01000 0x34000    0x34000    com.apple.iokit.IONVMeFamily (2.1.0) 12D4270E-AFFC-34DC-9714-44D1FE33333F <39 23 17 16 12 7 6 5 4 3 1>

Check out this output. Looks like its loading despite the class-code being injected.
If I'm understanding this right, thats totally bizarre.

You need to attach ioreg.
Maybe you have more than one NVMe SSD?
Which SSD do you have?
 
You need to attach ioreg.
Maybe you have more than one NVMe SSD?
Which SSD do you have?

Only 1 NVMe SSD. Samsung 960 EVO 500GB. Is the IOreg in my original post not working? Here it is again just in case.

I got a little desperate, and moved IONVMeFamiliy.kext out and recreated the HackrNVMeFamily-10_12_6.kext but this time without --spoof and installed it to /S/L/E. It detects the drive no problem but this isn't the preferred method.
 

Attachments

  • IOReg.ioreg
    4.6 MB · Views: 99
Only 1 NVMe SSD. Samsung 960 EVO 500GB. Is the IOreg in my original post not working? Here it is again just in case.

I got a little desperate, and moved IONVMeFamiliy.kext out and recreated the HackrNVMeFamily-10_12_6.kext but this time without --spoof and installed it to /S/L/E. It detects the drive no problem but this isn't the preferred method.

SSDT-NVMe-Pcc.aml is not working.
As can be seen clearly in ioreg, class-code is not spoofed, and IONVMeController is loading.
The ioreg also shows ACPI path as _SB.PCI0.PEG2.PEGP.
That is not the path you used in your SSDT-NVMe-Pcc.aml.

The ioreg shows a WiFi card installed at _SB.PCI0.RP04.PXSX. You can see clearly that class-code is spoofed there (as a spoofed NVMe... due to your SSDT-NVMe-Pcc.aml). But of course, trying to force an NVMe driver to load for a WiFi device is nonsense.

It seems to me you moved some hardware around after you collected ACPI paths via Windows.
The slot you have hardware installed affects which ACPI patch it appears under.

I think if you use the correct path in SSDT_NVMe-Pcc.aml, you'll be off to the races.
 
Last edited:
@RehabMan Just want to say thank you for your hard work and dedication to help others. People like you always impress me so much, taking so much time to help others. What can I say, I guess you are a legend.

Got my NVMe drive going perfectly thanks to you.

You're welcome. Fortunately, NVMe is likely to get a bit easier on 10.13.
 
Hi RehabMan,

It's me again. Thanks for helping getting my hackintosh to recognize my 960 Pro SSD. I have another question regarding to your patch-nvme support on the next macOS. I am trying the install the new 10.13 public beta onto the same machine. But I noticed that you don't have any .plist file available for 10.13 in your GitHub repo. Do you support public beta? If not, what changes should I make in existing plist files in order to give a shot? Many thanks!
 
Status
Not open for further replies.
Back
Top