Contribute
Register

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

Status
Not open for further replies.
I recently received a 500GB Samsung 960 Evo and have been eagerly hopeing to get it up and running. However, I haven't had much luck. I have been trying to follow the directions here to get it working. While my system was able to recognize it in Windows and I can see it in the IORegistryExplorer, MacOS is unable to see it in DiskUtility.

I did the following after installing the NVMe SSD in my machine:
Booted to windows and got the device path (_SB.PCI0.RP09.PXSX)
Booted to MacOS to create and compiled the class-code spoof and placed it in the Clover/ACPI/patched folder
Created HackrNVMeFamily-10_12_3.kext and placed in /Library/Extensions (and rebuilt kextcache)
added _DSM->XDSM patch to Clover config.plist

However, MacOS is not recognizing the drive, and I am at a loss as to what the problem may be. If anyone can see where I've messed up, please let me know.

I've attached a copy of my Clover folder (minus themes), a screen capture of the device path (from ioreg and Windows), a copy of my uncompiled spoof (for verification), and a copy of the generated HackrNVMEFamily kext. I've also attached a compressed copy of my ioreg in the event the screen capture was insufficient.
 

Attachments

  • CLOVER.zip
    2.2 MB · Views: 91
  • Capture.PNG
    Capture.PNG
    10.9 KB · Views: 161
  • IOregCapture.png
    IOregCapture.png
    235.4 KB · Views: 172
  • SSDT-NVMe-Pcc.dsl
    568 bytes · Views: 101
  • IOregOutput.zip
    19.4 MB · Views: 93
  • HackrNVMeFamily-10_12_3.kext.zip
    89.9 KB · Views: 85
try my compliled file (is the same source code but sure to not made error of copy or other)

https://www.tonymacx86.com/attachme...0/?temp_hash=c01b198a41fe4d3fea7a9d122e46947f

If it's work with mine it's your source code where your made an error

Thanks! That seems to have fixed my problem. I'm not sure what the issue was. As far as I could tell I copied everything correctly (directly from the 1st page to MaciASL) and made the correct modifications, however, I note that my file was slightly larger than yours.
 
Thanks! That seems to have fixed my problem. I'm not sure what the issue was. As far as I could tell I copied everything correctly (directly from the 1st page to MaciASL) and made the correct modifications, however, I note that my file was slightly larger than yours.
Did you remember to save your SSDT-NVMe-Pcc file with the proper .aml extension? Seems you used the default .dsl extension, which would explain why it didn't work for you and why your file size was different.
 
RehabMan,

Test first by using the same method you're using now for IONVMeFamily (I assume Clover patches via KextsToPatch).
Change the SSDT to inject #class-code instead of class-code. Verify it is injecting #class-code by looking at ioreg before changing back to class-code and installing HackrNVMeFamily (generated with --spoof).

Do you have any other suggestions for me, or are you ignoring me because I neglected to do something really simple that you are waiting for me to discover myself? I changed the class-code to #class-code, attached ioreg as you requested, but never received a response back. Your --spoof was implemented properly, as far as I know. I even did it again just to make sure Terminal spit back the proper values after I had already updated to 10.12.3, and it did.

The "@1D" location was throwing me off (RP09@1D). Here is my new ioreg (I switched out the 960 pro with a 950 Pro since I'm really only wanting it to serve as my clover boot loader, but everything else is the same). I have also attached a screenshot since it seems that the problem is most likely related to the IONVMeFamily kext; also, USB port limit is reached despite installing your 01/2017 USB-InjectAll kext manually with KextBeast and injecting the UpgradeMaxPort code via MultiBeast (and even make sure I manually inject your most recent InjectAll kext after just to be sure I have it updated). Anyways, just seeking a little direction since you're the man - I don't mind putting in the hours, but when I run up against a brick wall then I kinda need some insight - not satisfied relying on USB, I want it to be via real internal AHCI SATA or NVMe PCIe, as petty as that may be, for my clover boot loader, and not have to rely on the UniBeast USB (otherwise the setup is not professional Imo). Thanks again RehabMan!

Note: Ideally, I would just use my 850 EVO as my clover boot loader and keep all 4 960 SSDs for the Squid OS X RAID 0 Array, instead of reverting to 3. I initially tried to do this, but wasn't able to boot without the UniBeast USB inserted (same problem as now), so I changed methods. Also, it shouldn't make a difference whether I install the kexts into the System Library Extensions or the User Library Ext, right? The way I understand it, installing the kexts into the System Library just means it will be applied to all users. Anyways, it seems the kexts obviously aren't loading properly without the USB no matter when trying to boot from an NVMe SSD from the Squid Board.
It seems when booting from an SSD behind the PCI bridge created by the Carrier Board w/out the UniBeast USB inserted, the kext don't load properly for some reason.. I will revert back to the simple single 960 Pro install behind a 1x M.2 to PCIe bridge since I haven't heard back from you. I hope you haven't abandoned me, however, since naturally I'd really like be able to utilize the Squid as my OS X boot drive, but only if I don't have to rely on the UniBeast USB to get it to boot.. :think:
 
Last edited:
The "@1D" location was throwing me off (RP09@1D).

It is based on the _ADR.

Here is my new ioreg

No ioreg attached.

also, USB port limit

USB questions are off-topic in this thread.

Also, it shouldn't make a difference whether I install the kexts into the System Library Extensions or the User Library Ext, right?

Kexts must be installed to /System/Library/Extensions or /Library/Extensions. Kexts are never installed to "User Library Ext"...
 
I recently received a 500GB Samsung 960 Evo and have been eagerly hopeing to get it up and running. However, I haven't had much luck. I have been trying to follow the directions here to get it working. While my system was able to recognize it in Windows and I can see it in the IORegistryExplorer, MacOS is unable to see it in DiskUtility.

I did the following after installing the NVMe SSD in my machine:
Booted to windows and got the device path (_SB.PCI0.RP09.PXSX)
Booted to MacOS to create and compiled the class-code spoof and placed it in the Clover/ACPI/patched folder
Created HackrNVMeFamily-10_12_3.kext and placed in /Library/Extensions (and rebuilt kextcache)
added _DSM->XDSM patch to Clover config.plist

However, MacOS is not recognizing the drive, and I am at a loss as to what the problem may be. If anyone can see where I've messed up, please let me know.

I've attached a copy of my Clover folder (minus themes), a screen capture of the device path (from ioreg and Windows), a copy of my uncompiled spoof (for verification), and a copy of the generated HackrNVMEFamily kext. I've also attached a compressed copy of my ioreg in the event the screen capture was insufficient.

Your ioreg is corrupt (use only the version 2.1 as per post #1 request).

Your SSDT-NVMe-Pcc.aml is wrong.
The ACPI path already exists, so you should not be trying to add another...
Remove this code:
Code:
    Device (_SB.PCI0.RP09.PXSX)
    {
        Name (_ADR, Zero)  // _ADR: Address
    }
 
Do you have any other suggestions for me, or are you ignoring me because I neglected to do something really simple that you are waiting for me to discover myself? I changed the class-code to #class-code, attached ioreg as you requested, but never received a response back. Your --spoof was implemented properly, as far as I know. I even did it again just to make sure Terminal spit back the proper values after I had already updated to 10.12.3, and it did.

I don't see where you provided any updates...
No reply that I see to my post #190 (no ioreg provided since then).

It seems when booting from an SSD behind the PCI bridge created by the Carrier Board w/out the UniBeast USB inserted, the kext don't load properly for some reason.. I will revert back to the simple single 960 Pro install behind a 1x M.2 to PCIe bridge since I haven't heard back from you. I hope you haven't abandoned me, however, since naturally I'd really like be able to utilize the Squid as my OS X boot drive, but only if I don't have to rely on the UniBeast USB to get it to boot.. :think:

Need files as I previously requested.
 
It is based on the _ADR.

No ioreg attached.

USB questions are off-topic in this thread.

Kexts must be installed to /System/Library/Extensions or /Library/Extensions. Kexts are never installed to "User Library Ext"...
I was referring to the same destination you specified; I apologize for using completely incorrect terminology in my description. I did attach my ioreg, but I don't like leaving those around for more than a couple of hours since it reveals a little too much unique information for my comfort (serial numbers and such). Would it be possible for you to direct me to as place I could privately upload this file (I.e., so it's not accessible by everyone on the planet)?
 
Last edited:
I was referring to the same destination you specified; I apologize if my shorthand was not obvious. I did attach my ioreg, but I don't like leaving those around for more than a couple of hours since it reveals a little too much unique information for my comfort (serial numbers and such);

You will need to repost it. We may be in different time zones. Or I may step away from the forums for my real life sometimes...

besides, I thought you moderators would have access to whatever I posted, regardless if it had been modified/deleted.

No.

Would it be possible for you to direct me to as place I could privately upload this file (I.e., so it's not accessible by everyone on the planet)?

You could use a PM.
 
Status
Not open for further replies.
Back
Top