Jump to content
Mork vom Ork

Patch for using NVMe under macOS Sierra is ready.

1,380 posts in this topic

Recommended Posts

Advertisement

So I set up the RAID 0 and the speeds are not double a single SSD. 

 

Before

Write 2000 MB/s,  Read 2300 MB/s

 

After

Write 2850 MB/s,  Read 2690 MB/s

 

Any advice on if this is to be expected or there is a problem. I assumed it would be close to double a single drive

 

Thanks !

Share this post


Link to post
Share on other sites

Anyone apply RebabMan‘s NVMe patch successful with SK hynix PC300?

always get startup failed......

Just convert it to 4k under linux and it's gonna work natively

Share this post


Link to post
Share on other sites

Just convert it to 4k under linux and it's gonna work natively

could you share your EFI? Thanks a lot! 

I converted it to 4K, but got crash every time when I try to apply that patch.......

Share this post


Link to post
Share on other sites

but got crash every time when I try to apply that patch.......

You do not need any NVMe patches once converted to 4k cluster size. It just works.

Share this post


Link to post
Share on other sites

X58 with M2

I test to  x58A ud7 with SM 951 with adappter not show the hard drive in bios.

Any idea?

Share this post


Link to post
Share on other sites

Attached is the script (and supporting files) to create a patched kext that can be used without modifying or deleting existing vanilla IONVMeFamily.kext.

 

Contents:

binpatch: pre-built utility to patch binary files using a simple command line.

binpatch.c: source for binpatch binary

NVMe_patches_10_11_5.plist: KextsToPatch content as provided by Mork vom Ork, post #33 this thread.

NVMe_patches_10_11_6_beta4.plist: KextsToPatch content as provided by Mork vom Ork, post #16 this thread.

NVMe_patches_10_12_dp1.plist: KextsToPatch content as provided by Mork vom Ork, post #8 this thread.

patch_nvme.sh: main patching script

 

Usage:

- extract patch_nvme.zip archive

- cd to the extracted location

- execute patch_nvme.sh with argument that corresponds to the plist you wish to patch with

- the script creates the patched kext in the current directory

- you must run the script with the parameter that corresponds to the version of OS X you are running

- /System/Library/Extensions/IONVMeFamily.kext must be vanilla

 

For example, if you are running 10.11.5, to create a patched 10.11.5 kext:

# assuming downloaded and extracted to ~/Downloads/patch_nvme
cd ~/Downloads/patch_nvme
./patch_nvme.sh 10_11_5
The result is HackrNVMeFamily-10_11_5.kext. You can install it to /S/L/E, /L/E, or use Clover kext injection with it. It will not interfere with IONVMeFamily.kext and system updates will not change it.

 

Similarly, you would use './patch_nvme.sh 10_12_dp1' or './patch_nvme.sh 10_11_6_beta4' to patch based on the other plist files. Of course, you need to be running the version of OS X that corresponds to the plist you're patching with as the script relies on getting vanilla IONVMeFamily.kext from /S/L/E.

 

You should also make sure you have no patches for IONVMeFamily.kext in your config.plist before trying to use the patched kext.

 

attachicon.gifpatch_nvme.zip

 

Note: The patch assumes Samsung 950 Pro NVMe. You will see the device-id coded in the script... Change it to match the device-id of your NVMe controller.

 

Note 2: The original attachment found here is the first version. Since then, I've moved the script and supporting files to github. The new version at github uses IOPCIClassMatch to match against the well-known NVMe PCI class code, so it is not necessary to supply the vendor/device-id for IONameMatch.

 

github repo: https://github.com/RehabMan/patch-nvme

 

 

Hi Rehabman,

 

I tried this on a pretty clean install of 10.12.6 but still can't see the NVME drive (Intel 750). I tried with both spoof and non-spoof, S/L/E and inject, different versions of Clover...

 

I had this drive working as a boot drive with the original PikerAlpha patch in config.plist (so not with HackrNVMeFamily-10_12_6.kext) but for some reason this was very unstable, not sure if it had to do with the patch or something else. So I then made a clean install, applied rampagedev DMG, but I have to run that with NullCPUpowermgmt and all kexts in clover/kexts instead of S/L/E or the system will panic. With AppleIntelCPUpowermgmt the system always panics.

 

With the spoofed HackrNVMeFamily-10_12_6.kext the SSD controller shows, but no drive. According to kextstat IONVME family is loaded, cannot see the HackrNVMeFamily-10_12_6.kext though (not sure if it is supposed to show?).

 

Any tips?

Share this post


Link to post
Share on other sites

Hi Rehabman,

 

I tried this on a pretty clean install of 10.12.6 but still can't see the NVME drive (Intel 750). I tried with both spoof and non-spoof, S/L/E and inject, different versions of Clover...

 

I had this drive working as a boot drive with the original PikerAlpha patch in config.plist (so not with HackrNVMeFamily-10_12_6.kext) but for some reason this was very unstable, not sure if it had to do with the patch or something else. So I then made a clean install, applied rampagedev DMG, but I have to run that with NullCPUpowermgmt and all kexts in clover/kexts instead of S/L/E or the system will panic. With AppleIntelCPUpowermgmt the system always panics.

 

With the spoofed HackrNVMeFamily-10_12_6.kext the SSD controller shows, but no drive. According to kextstat IONVME family is loaded, cannot see the HackrNVMeFamily-10_12_6.kext though (not sure if it is supposed to show?).

 

Any tips?

 

You made a mistake.

Not possible to diagnose without problem reporting files (see guide that is linked from the patch_nvme README).

Share this post


Link to post
Share on other sites

You made a mistake.

Not possible to diagnose without problem reporting files (see guide that is linked from the patch_nvme README).

 

I'm pretty sure I made a mistake....

 

Could not find the guide you were referring to, but I have attached the ioreg and the EFI folder. Is that enough?

WillieMacPro.ioreg.zip

EFI.zip

Share this post


Link to post
Share on other sites

I'm pretty sure I made a mistake....

 

Could not find the guide you were referring to, but I have attached the ioreg and the EFI folder. Is that enough?

 

The ioreg is corrupt (wrong version of IORegistryExplorer used...  must use 2.1).

You have no SSDT to spoof the class-code.

The guide is linked from the patch_nvme github.

Read carefully here:

https://github.com/RehabMan/patch-nvme

Share this post


Link to post
Share on other sites

The ioreg is corrupt (wrong version of IORegistryExplorer used...  must use 2.1).

You have no SSDT to spoof the class-code.

The guide is linked from the patch_nvme github.

Read carefully here:

https://github.com/RehabMan/patch-nvme

It really was a mistake (of course). I reinstalled the non-spoof version and now I can boot again from the SSD. In hindsight, I think it was a kernel cache issue. I am now getting 800MB/sec write speed and 900MB/sec read speed. Not bad for an old X79 horse. Thanks for creating this great package!

Share this post


Link to post
Share on other sites

Is there any patch for latest 10.11 security update (2017-004)?

It is likely the same as the previous patch(es). Upload IONVMeFamily.kext and I'll look.

Share this post


Link to post
Share on other sites

Thank you!

Added NVMe_patches_10_11_6_sec2017-004.plist.

Same as previous set of patches but different md5 sums.

Share this post


Link to post
Share on other sites

Is it possible to add something for 10.12.6 security update 2017-001?

I don't see where you attached IONVMeFamily.kext from that build (hint, hint).

Share this post


Link to post
Share on other sites

This is  my IONVMeFamily.kext  [Mac OS Sierra 10.12.6 (16G1036)]

Added NMVe-Patches_10_12_6_sec2017-001.plist.

Same as previous set of patches but different md5 sums.

Share this post


Link to post
Share on other sites

Hi RehabMan, is samsung pm1725 compatible with the native IONVMEFAMILY kext, or need some patch script.

Look forward to your reply.

Thanks a lot.

Share this post


Link to post
Share on other sites

Hi RehabMan, is samsung pm1725 compatible with the native IONVMEFAMILY kext, or need some patch script.

No idea. I don't have a pm1725.

You should test/investigate.

Need for patches depends on the hardware and software you're using.

Share this post


Link to post
Share on other sites

Could you make a patch for the latest Mac OS 10.12.6 (16G1114) ?

Same for latest 10.11.6 2017 security 5 (15G18013)?

Looks like it doesn't touch IONVMe kext, but just for sure...

attachicon.gifIONVMeFamily.kext.zip

Both added to the github project.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×