Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

  • 2 weeks later...

X58 with M2

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

Any idea?

Link to comment
Share on other sites

  • 3 weeks later...

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?

Link to comment
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).

Link to comment
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

Link to comment
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!

Link to comment
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.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

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.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

Hello Friends!

 

I have two NVME SSDs here, both 512gb, which have windows installed and working:

  • Samsung NVME 960 Pro m.2
  • WD Black NVME PCIe (which I changed from 512k to 4k but the installer still can't see it)

I have been trying to make them work (one at a time) for the past two weeks and I'm exhausted, since I tried everything that saw in many, many forums and blog posts.

 

The hardware is a Dell Latitude e7270 with i7-6600u and 16GB DDR4, but for some reason, the OSX installer seems to always load IONVMeFamily.kext and ignore any kind of patch that I try to use, so I can't use any of the NVME disks with a OSX Sierra USB stick.

 

Please, can some help me with this? I literally don't know what to do to fix this and install OSX on these disks.

 

Thanks a million for any help!

clover_dsarch.zip

Link to comment
Share on other sites

Do you followed procedure which descripted there - https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/ ?

 

N.B. As for me, it was more simple to install OS X at common HDD first, then determine needed parameters and create NVMe patch, get SSD drive visible for OS X, then carboncopy system on it.

Link to comment
Share on other sites

Yes, I tried to follow this as well...

 

But the drive does not show, here is the name of my device in BIOS: _SB.PCI0.RP09, then I followed the instructions and created this file (SSDT_NVMe-Pcc.aml.zip) and tried to patch the vanilla IONVMEFamily.kext file from the OSX Sierra USB Installer, which is (IONVMeFamily.kext.zip) which generated this file (HackrNVMeFamily-10_12_6.kext.zip).

 

Then I added HackrNVMeFamily-10_12_6.kext to EFI/CLOVER/Kexts/Other and added SSDT_NVMe-Pcc.aml to EFI/CLOVER/ACPI/patched but again, nothing.

 

Here is my clover folder with the above files: clover_dsarch_hacknvme.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...