Contribute
Register

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

Status
Not open for further replies.
It is the case you have no ACPI identity for the SSD itself.
Parent ACPI identity is _SB.PCI0.RP03. So you just create the "leaf node" identity for the SSD (I tend to use SSD0).
Read post #1... it is explained and a template is provided.

Hey thanks!

Tested it out right now, but still cant see the NVMe drive. hmm..
In case you want to see my ssdt, its uploaded here..

I have also added my pci id`s into patch_nvme.sh and added the generated kext to my clover kexts folder.
 

Attachments

  • SSDT-NVMe-Pcc.dsl
    1,005 bytes · Views: 99
Hey thanks!

Tested it out right now, but still cant see the NVMe drive. hmm..
In case you want to see my ssdt, its uploaded here..

I have also added my pci id`s into patch_nvme.sh and added the generated kext to my clover kexts folder.

Read post #1, "Problem Reporting".
No need to modify patch_nvme.sh.
 

Attachments

  • ThomasMacPro.zip
    2.1 MB · Views: 78
Ah, ok.

here is my files and a ioreg dump

Your SSD is at _SB.PCI0.RP05.
Your SSDT-NVMe-Pcc.aml is using RP03 (it was a typo in my original reply...)
 
Your SSD is at _SB.PCI0.RP05.
Your SSDT-NVMe-Pcc.aml is using RP03 (it was a typo in my original reply...)

ahh thanks! Now i can see the ACPI in ioreg, but it not loading the kext. I will play around here to see whats wrong.
 
hmmm. Kext is not loaded. But the IONVMeFamily kext is not loaded. so someting is happening here.

Update:
I can see the drive now, but i cant format the drive. It hangs at 50%.
Any clue? Cant see anyting in the logs.
 
Last edited:
hmmm. Kext is not loaded. But the IONVMeFamily kext is not loaded. so someting is happening here.

Update:
I can see the drive now, but i cant format the drive. It hangs at 50%.
Any clue? Cant see anyting in the logs.

Assuming you installed to another drive...

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.

Note: Mixed results with the Intel NVMe drives... Most people choose Samsung for hacks...
 
Last edited:
Assuming you installed to another drive...

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.

Note: Mixed results with the Intel NVMe drives... Most people choose Samsung for hacks...

Hey again!

I got it working! I had some USB 3.0 issues during the boot that ****ed up the system. Used your kext USBInjectAll and it seems to be working great now!!

The only issue i got now is that the NVMe is external. Uploading ioreg and efi folder.
 

Attachments

  • MacProEFI-iOREG.zip
    1.5 MB · Views: 77
Last edited:
Hey again!

I got it working! I had some USB 3.0 issues during the boot that ****** up the system. Used your kext USBInjectAll and it seems to be working great now!!

The only issue i got now is that the NVMe is external. Uploading ioreg and efi folder.

Problems:
- your SSDT-NVMe-Pcc.aml is wrong
- your HackrNVMeFamily is not created with --spoof (you must have deleted IONVMeFamily.kext)

Your SSD is without a ACPI identity. It is the case of parent node has identity but not the final leaf node for the SSDT itself.

Also, you coded RP03 into your SSDT, when your SSDT is at RP05.

Correct SSDT-NVMe-Pcc.dsl:
Code:
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.RP05, DeviceObj)
    Device(_SB.PCI0.RP05.SSD0) { Name(_ADR, 0) } // adding SSD0 identity under _SB.PCI0.RP05
    Method(_SB.PCI0.RP05.SSD0._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
//EOF

Once you put the new SSDT in place, class-code will be injected and you will not be able to boot with the HackrNVMeFamily you have installed (because it was generated without --spoof). So, make sure to regenerate with --spoof and install it.
 
Last edited:
Problems:
- your SSDT-NVMe-Pcc.aml is wrong
- your HackrNVMeFamily is not created with --spoof (you must have deleted IONVMeFamily.kext)

Your SSD is without a ACPI identity. It is the case of parent node has identity but not the final leaf node for the SSDT itself.

Also, you coded RP03 into your SSDT, when your SSDT is at RP05.

Correct SSDT-NVMe-Pcc.dsl:
Code:
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.RP05, DeviceObj)
    Device(_SB.PCI0.RP05.SSD0) { Name(_ADR, 0) } // adding SSD0 identity under _SB.PCI0.RP05
    Method(_SB.PCI0.RP05.SSD0._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
//EOF

Once you put the new SSDT in place, class-code will be injected and you will not be able to boot with the HackrNVMeFamily you have installed (because it was generated without --spoof). So, make sure to regenerate with --spoof and install it.

Ahh. My bad! I reinstalled the USB drive yesterday and added the old SSDT files. Have fixed it now and created a new HackrNVMeFamily and the drive boots fine now.

I think i will replace the intel drive with a Samsung later, but its out of stock everywhere here in norway right now.

Thanks for your help mr! :)
 
Status
Not open for further replies.
Back
Top