Contribute
Register

OS X Driver for NVMe M.2 Solid State Drives Released

Status
Not open for further replies.
I'd like to upgrade my hackintosh to boot from a bigger, faster NVMe drive... I have a couple of noob questions - and I didn't see answers from reading this thread:

Just to clarify - can I put an M.2 drive - like the Samsung 950 Pro M.2 (with adapter) on a GA-Z97X-UD7 TH motherboard (9 series)? I'm assuming this would be at the '2x' speeds of a 9 series motherboard?

I use clover from the EFI partition on my main macos drive - would that mean maintaining the hackintosh would require me to need an alternative boot method to edit those kexts during any OS upgrade?

Will a PCIe 3.x drive work on a 9 series motherboard?

Thanks for any info!
 
Last edited:
You can use Clover to boot your Mac... it is just a matter of disabling all the hack related Clover features since most of them would not be needed on a real Mac.

Suggest you start by booting Clover from USB and experiment from there.

I'm currently making the Clover bootable USB. And, I'll be using a default config.plist (attached). Once I can get my USB to be running in my Mac, I'll press option key during the boot, and will boot USB efi, and will run the Sierra.

My question is, though, once I can run the Sierra installer and install the macOS to the NVMe, could my computer actually detect NVMe drive as "start up" disk, and automatically start from NVMe. I'm a bit confused about how this process will enable NVMe during the boot. I know the kext file that JimJ made will be enabled "after" the boot, but would Clover actually ever reroute this enabling even before the booting?

Also, I'm little having a hard time configuring the SMBIOS profile where to get all the correct information of my own Mac.
 

Attachments

  • config.plist
    2.4 KB · Views: 218
You can use Clover to boot your Mac... it is just a matter of disabling all the hack related Clover features since most of them would not be needed on a real Mac.

Suggest you start by booting Clover from USB and experiment from there.

I now ran into something other unexpected problem. I could actually boot into macOS installer with clover USB, however, once I exited and reboot, now computer does not even offer me any "option" disk selection options, nor resetting NVRAM, nor resetting SMC, now the computer completely frozen - does not even show the apple logo anymore. Right now, my computer runs its fan very loudly, and stuck like that. Please help, rehabman!
 
I'm currently making the Clover bootable USB. And, I'll be using a default config.plist (attached). Once I can get my USB to be running in my Mac, I'll press option key during the boot, and will boot USB efi, and will run the Sierra.

My question is, though, once I can run the Sierra installer and install the macOS to the NVMe, could my computer actually detect NVMe drive as "start up" disk, and automatically start from NVMe. I'm a bit confused about how this process will enable NVMe during the boot. I know the kext file that JimJ made will be enabled "after" the boot, but would Clover actually ever reroute this enabling even before the booting?

Also, I'm little having a hard time configuring the SMBIOS profile where to get all the correct information of my own Mac.

For your config.plist/SMBIOS, you will want to fill it out with the actual data from your Mac.

I've never tried to setup a real Mac to start Clover automatically. I only did it with USB via Option key. You will need to experiment to see what is available from SysPrefs->Startup Disk. And you will need to see if the Apple EFI firmware even recognizes Clover on an NVMe drive as a bootable target.

If you wish to pursue this further, you should probably open a separate thread in the appropriate forum.
 
Hey RehabMan,

Just a heads-up that the same thing happened to me with 10.12.3 as with the 10.12.2 patch. The md5 hashes before and after patch application don't match. Using combo update, system is v. 16D32. Here' the output of the patch script:
Code:
Creating patched HackrNVMeFamily-10_12_3.kext
Vanilla MD5 matches expected MD5 entry (b54230d2816150a4d57b000d23bf1fc1)
Patched MD5 matches expected MD5 entry (2ea6658fbc1b161b4e1131ba5c2c5196)

The HackrNVMeFamily-10_12_3.kext generated works fine, though. Attached is my original IONVMeFamily.kext

Pato
 
Last edited:
Hey RehabMan,

Just a heads-up that the same thing happened to me with 10.12.3 as with the 10.12.2 patch. The md5 hashes before and after patch application don't match. Using combo update, system is v. 16D32. Here' the output of the patch script:
Code:
Creating patched HackrNVMeFamily-10_12_3.kext
Vanilla MD5 matches expected MD5 entry (b54230d2816150a4d57b000d23bf1fc1)
Patched MD5 matches expected MD5 entry (2ea6658fbc1b161b4e1131ba5c2c5196)

The HackrNVMeFamily-10_12_3.kext generated works fine, though. Attached is my original IONVMeFamily.kext

Pato

What do you mean by "don't match"?
The output you provide here shows "...matches expected MD5...".
 
Ok, I'm having trouble getting the NVME kext to load and now starting to wonder if I'm off down the wrong rabbit hole. I want to keep my system booting as is, and just add a new 960 Evo 1TB NVMe drive in a PCIe adapter card.

I tried to test I can access the drive by using the non-spoof HackrNVMeFamily*.kext and remove IONVMeFamily.kext from S/L/E as that seemed quickest. After it works I planned to go through the spoof method and restore the vanilla kext to S/L/E. But I am stuck at the first hurdle as I can't get it to load the kext. All my other Clover injected kexts work (List below).

Should kextstat show the kext as loaded? If so, what can stop it loading? If not, what would you check next?

Any help appreciated!


FWIW...

I've tried it using Clover kext injection, manual install to S/L/L or L/E, on 10.12.1 and 10.12.3 (generated each Hackr kext on the right version and checksums match), with csr active config 0x03 and 0x67, but after boot kextstat never shows the kext as loaded but I can sudo kextload it fine.

I am unsure how to debug failure to load a kext. I tried the clover debug kext log but it only seems to go to screen and a video of that didn't show anything obvious.

Now I've tried to undo back to vanilla IONVMeFamily from the 10.12.3 installer and try the kextstopatch method but kextutil is now saying IONVMeFamily.kext has an invalid signature and it does not show up in kextstat either, so I don't think the kextstopatch will work:

Diagnostics for /System/Library/Extensions/IONVMeFamily.kext:
Code Signing Failure: code signature is invalid
kext-dev-mode allowing invalid signature -67014 0xFFFFFFFFFFFEFA3A for kext "/System/Library/Extensions/IONVMeFamily.kext"
kext signature failure override allowing invalid signature -67014 0xFFFFFFFFFFFEFA3A for kext "/System/Library/Extensions/IONVMeFamily.kext"

and my other kexts that Clover seems to inject fine:

6:452 0:000 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.12
6:452 0:000 Extra kext: EFI\CLOVER\kexts\10.12\FakePCIID_XHCIMux.kext
6:453 0:001 Extra kext: EFI\CLOVER\kexts\10.12\FakePCIID.kext
6:454 0:000 Extra kext: EFI\CLOVER\kexts\10.12\FakeSMC.kext
6:455 0:001 Extra kext: EFI\CLOVER\kexts\10.12\NullCPUPowerManagement.kext
6:457 0:001 Extra kext: EFI\CLOVER\kexts\10.12\VoodooTSCSync.kext
6:458 0:000 Extra kext: EFI\CLOVER\kexts\10.12\XHCI-x99-injector.kext
6:458 0:000 Extra kext: EFI\CLOVER\kexts\10.12\BrcmFirmwareData.kext
6:470 0:011 Extra kext: EFI\CLOVER\kexts\10.12\BrcmPatchRAM2.kext
 
Ok, I'm having trouble getting the NVME kext to load and now starting to wonder if I'm off down the wrong rabbit hole.

It was indeed a rabbit hole. I went back to the drawing board. Went through all the bios windows and found one that shows what is connected to each PCI slot... Nothing! Power down, reseat the card, power up, all working with the plist method :) Now I just need to do the spoof kext!

I feel so stupid. In my defence the LEDs on the card were on, something just wasn't quite connecting well.
 
Status
Not open for further replies.
Back
Top