Contribute
Register

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

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,422
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
RehabMan,
I have a system in which I'm using the Samsung 950 Pro NVMe M.2 SSD on a PCIe card. In IOJones, the acpi-path is IOACPIPlane:/_SB/PCI0@0/PEG2@10002. For the SSDT, I can get the parameter down to _SB.PCI0.PEG2.???? but I'm not sure about the last ????. (Note, I'm currently using the non spoof kext having removed the Apple HackrNVMeFamily.kext.)
View attachment 246248
I've attached is my IOJones file, too.
According to your ioreg image (I don't have IOJones on my system, I use only IORegistryExplorer v2.1)...

_SB.PCI0.PEG2 is the parent path.
The SSD is at a subnode without an ACPI identity (which is why you see the generic name pci144d,a802).

Read post #1 for how to add the missing ACPI identity under _SB.PCI0.PEG2.
 

Stork

Admin
Staff member
Joined
Sep 21, 2010
Messages
12,862
Motherboard
ASUS ROG MAXIMUS X HERO Z370
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook Pro, Mac mini, Mac Pro
Classic Mac
Power Mac, PowerBook
Mobile Phone
iOS
RehabMan, thank you for the info. I'll look at Post#1...and use ORegistryExplorer v2.1 to valid what I found out with IOJones. :thumbup: Unfortunately, I don't have Windows on my system - I don't have it period. So, it will be a little harder to find the correct info.
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,422
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
RehabMan, thank you for the info. I'll look at Post#1...and use ORegistryExplorer v2.1 to valid what I found out with IOJones. :thumbup: Unfortunately, I don't have Windows on my system - I don't have it period. So, it will be a little harder to find the correct info.
You already have the correct info... Your case is the very simplest of cases where only the leaf node (the actual SSD node) is missing an ACPI identity. Reading post #1, you will find it is only a single line of code to add that identity...

Hint:
Code:
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.PEG2, DeviceObj)
    // Add PXSX device under PEG2
    Device(_SB.PCI0.PEG2.PXSX) { Name(_ADR, 0) }
    /// Now we can inject the method at RP13.PXSX
    Method(_SB.PCI0.PEG2.PXSX._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
//EOF
 

Stork

Admin
Staff member
Joined
Sep 21, 2010
Messages
12,862
Motherboard
ASUS ROG MAXIMUS X HERO Z370
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook Pro, Mac mini, Mac Pro
Classic Mac
Power Mac, PowerBook
Mobile Phone
iOS
Thank you for the hint. :)
 
Joined
Jul 11, 2013
Messages
181
Motherboard
Z170 Asus Hero VIII
CPU
i7 6700K @47 1.29V
Graphics
AMD 390X Asus Strix
Mac
MacBook Pro
Classic Mac
Classic
Mobile Phone
Android
I made a USB for boot with 10.12.4. But the 960 EVO M.2 it's not recognizied in disk utilities for the instalation.

I had put the SSDT into ACPI>Patched and the Kext into others.

I atach the Clover Folder, and picture of windows.

https://www.dropbox.com/s/4b6ai7imysjdqra/CLOVER.zip?dl=0
 

Attachments

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,422
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Joined
Apr 15, 2013
Messages
79
Motherboard
Gigabyte Z370 Aorus Gaming 5
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook Air, MacBook Pro, Mac Pro
Classic Mac
Centris, Color Classic, LC, Performa, Quadra, SE
Mobile Phone
iOS
Hi everyone,
I saw on GitHub that there is a "new version"
  • changed to using IOPCIClassMatch instead of IONameMatch

    Is there any benefit of making the patch again?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,422
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi everyone,
I saw on GitHub that there is a "new version"
  • changed to using IOPCIClassMatch instead of IONameMatch

    Is there any benefit of making the patch again?
That change was ages ago. Last change was for 10.12.4 and 10.11.6 security updates.
 
Joined
Apr 15, 2013
Messages
79
Motherboard
Gigabyte Z370 Aorus Gaming 5
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook Air, MacBook Pro, Mac Pro
Classic Mac
Centris, Color Classic, LC, Performa, Quadra, SE
Mobile Phone
iOS
Sorry, realy!
 
Joined
Oct 26, 2010
Messages
33
Motherboard
ASUS X99 Deluxe II
CPU
Broadwell 6900k
Graphics
Nvidia 980 TI
Mac
Mac Pro
I keep getting 10.2.4 still waiting for root device after the update. Any idea on what I can do to restore my system ?
 
Top