Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

Update: Samsung 960 PRO works! I checked all my settings today and it seems I never deleted/renamed vanilla IONVMeFamily.kext. I renamed and it booted with the 960's installed and working. All three M.2 are bound to HackrNVMe. AJA benchmark was at 2100/3100 MB/s..

 

So It seems that its the same as the 950's! Dumb mistake to make, but the single 950 didn't have any problems with the vanilla kext.. maybe Rehabman has an idea why?

 

anyway, thanks!

Link to comment
Share on other sites

@ Racer 

 

hello ,

it did step by step what you have written to the post 569, created the SSDT and edited info.plist in kext hack, but unfortunately it does not work, I also eliminated the kext vanilla, but I always know kp ..not where I'm wrong, very honest, do you want to see my SSDT and ioreg? looks very patiently, thanks

You will need to provide complete details.

Update: Samsung 960 PRO works! I checked all my settings today and it seems I never deleted/renamed vanilla IONVMeFamily.kext. I renamed and it booted with the 960's installed and working. All three M.2 are bound to HackrNVMe. AJA benchmark was at 2100/3100 MB/s..

 

So It seems that its the same as the 950's! Dumb mistake to make,

Good to know... (details matter!)

 

but the single 950 didn't have any problems with the vanilla kext.. maybe Rehabman has an idea why?

Panic is due to possible hardware contention/timing... and it appears to be a random memory trashing (perhaps writing to memory through an uninitialized pointer), so the panic varies, and even no panic is possible (and in fact, reported here).

Link to comment
Share on other sites

hey rehabman

 

 

You will need to provide complete details.

Good to know... (details matter!)


Panic is due to possible hardware contention/timing... and it appears to be a random memory trashing (perhaps writing to memory through an uninitialized pointer), so the panic varies, and even no panic is possible (and in fact, reported here).

seems contention only happened when more then one.. never happened when it was the single NVMe, which makes sense.. never a problem with one kid waiting for their icecream..

 

thanks!

Link to comment
Share on other sites

seems contention only happened when more then one.. never happened when it was the single NVMe, which makes sense.. never a problem with one kid waiting for their icecream..

Actually, typical result is panic with only one NVMe should both HackrNVMeFamily and IONVMeFamily load.

But the actual panic is random/system dependent, which means it is a timing/memory trash issue, which means there could be cases that the timing is not bad, or the memory trashed is somewhere not important.

  • Like 1
Link to comment
Share on other sites

I have a Samsung 960 Evo 256 working perfectly in my Z97X-UD5H rig running 10.12.1
 
did not use Pike's clover patch entries. Opted for Rehabman's script (Thanks REHABMAN!)
 
1. Created the kext using Rehabman's shell script.
2. Placed the resulting kext (HackrNVMeFamily-10_12_1.kext) in efi/kexts/other
3. Removed IONVMeFamily.kext from /System/Library/Extensions (machine kernel paniced with this loaded unless you follow post #569)
4. Rebooted and 960 drive appeared asking to be initialized.
5. Cloned 850 drive to 960 drive.
6. Installed Clover on 960 drive and copied over kexts/config file/themes, etc
7. Rebooted to 960 and all is well! Getting 1500 reads and 2500 writes.
 
Everything opens even faster and machine is more responsive. Glad I updated :)
 
I placed the Samsung 960 in a PCIe 4x slot. Would having it in an 8x slot make any difference?

Link to comment
Share on other sites

I have a Samsung 960 Evo 256 working perfectly in my Z97X-UD5H rig running 10.12.1

 

I placed the Samsung 960 in a PCIe 4x slot. Would having it in an 8x slot make any difference?

Since the Samsung 960 EVO 256 is an M.2 card (PCIe 3.0 x4) then connecting it to an x8 slot shouldn't make any difference. You didn't say how it is connected to the PCIe x4 slot, or why you're not using it in the M.2 slot of the motherboard.

 

The Z97X-UD5H has a total of 16 PCIe 3.0 lanes divided between 3 slots. These are the possible combinations:

1) x16

2) x8, x8

3) x8, x4, x4

 

If you have a graphics card in the x16 slot, then using any of the other two slots will make it run at x8.

Link to comment
Share on other sites

 Would having it in an 8x slot make any difference?

????you know what it means x4 or x8?

Since the Samsung 960 EVO 256 is an M.2 card (PCIe 3.0 x4) then connecting it to an x8 slot shouldn't make any difference. You didn't say how it is connected to the PCIe x4 slot, or why you're not using it in the M.2 slot of the motherboard.

 

The Z97X-UD5H has a total of 16 PCIe 3.0 lanes divided between 3 slots. These are the possible combinations:

1) x16

2) x8, x8

3) x8, x4, x4

 

If you have a graphics card in the x16 slot, then using any of the other two slots will make it run at x8.

+1

Link to comment
Share on other sites

7. Rebooted to 960 and all is well! Getting 1500 reads and 2500 writes.

... or why you're not using it in the M.2 slot of the motherboard.

I looked at the Z97X-UD5H motherboard manual. It says it has a DMI 2.0 link between the CPU and the chipset. This would limit bandwidth to the M.2 slot to 2 GB/s. So that's one reason not to use the M.2 slot, since you wouldn't get the 2500 MB/s writes.

 

Z170 motherboards have DMI 3.0, which has a bandwidth of 3.93 GB/s between the CPU and the PCH which would allow max bandwidth to the M.2 slot.

Link to comment
Share on other sites

I opted to use a PCIe card (Lycom DT-120 M.2 PCIe to PCIe 3.0 x4 Adapter (Support M.2 PCIe 2280, 2260, 2242) because the Z97X-UD5H onboard M.2 connector is only x2.

That's an even better reason (the manual didn't have that detail) since PCIe 3.0 x2 is only 1.97 GB/s max. It makes sense since x4 would have been wasted on a motherboard that has DMI 2.0.
Link to comment
Share on other sites

I used RehabMan's patch-nvme and deleted the IONVMeFamily.kext from S/L/E. I can now see my Samsung 960 Pro. I used Carbon Copy to cone my current drive to the 960 

 

However when I try to boot from Clover - It doesn't give me the option to select the NVME drive (instead shows my USB drive, and Intel SSD - which I am currently running off)

 

I'm using a Silverstone ECM20 - which is a PCI-Ex4 to M.2 adaptor. My motherboard doesn't give the option to boot this - as I assume it is too old

 

Is it possible for clover to load the HackrNVMeFamily kext so I can boot to the 960 ? or is there any way to make it so I can boot the 960 ? 

 

Thanks

  • Like 1
Link to comment
Share on other sites

You can add the EDK2 driver (NvmExpressDxe) to your firmware and NVMe drives will work.

I had done this procedure a year ago to boot my Intel 750 nvme drive off of a Z68 Asus motherboard. I posted the module to Win-Raid forum and others cleaned up the checksums. Confirm it worked for me. Loading Windows and Sierra off of a nvme drive with an unsupported motherboard pretty cool..

Link to comment
Share on other sites

You can add the EDK2 driver (NvmExpressDxe) to your firmware and NVMe drives will work.

I followed the guide below and injected the NvmExpressDxe in to my motherboard BIOS & now can boot from Clover (running from USB) to the 960 Pro NVMe

http://www.win-raid.com/t871f16-Guide-How-to-get-full-NVMe-support-for-Intel-Chipset-systems-from-Series-up.html

 

One thing I haven't been able to do since install is to make the system boot clover either directly off a SSD connected to a SATA port, or the NVMe. I ran [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] and installed the drives, copied the kext & config.plist across. Anyone know what it could be ?

Link to comment
Share on other sites

I followed the guide below and injected the NvmExpressDxe in to my motherboard BIOS & now can boot from Clover (running from USB) to the 960 Pro NVMe

http://www.win-raid.com/t871f16-Guide-How-to-get-full-NVMe-support-for-Intel-Chipset-systems-from-Series-up.html

 

One thing I haven't been able to do since install is to make the system boot clover either directly off a SSD connected to a SATA port, or the NVMe. I ran ##### and installed the drives, copied the kext & config.plist across. Anyone know what it could be ?

On my Z68 unsupported motherboard, that I had injected the nvmeExpress-Dxe module, I had cloned Windows first onto my NVME drive from my Sata drive including the system partition. I verified it could boot without other drives attached. Then I made a Clover folder in the EFI system partition and copied Clover files there. Made sure my Sierra Sata drive had nvme kext installed and then cloned Sierra from Sata drive onto the third partition of my NVME drive using Paragon Hard Disk Manager within Windows. Then I ran Bcfg command line tool within Uefi Shell and created a custom boot entry for the Clover Boot files because my bios wouldn't auto recognize the Clover Uefi boot files. After that I had an entry in my bios that would load Clover and thus Sierra without needing an USB key or Sata disk with Clover to assist. That's how I did it. Though I wonder if the Clover installer would do the same thing I don't know. Also make sure you install Clover in Uefi mode only otherwise I have noticed it uses the config.plist files from other random drives and not the selected disk you choose to load up from bios boot menu. Sorry I couldn't be more precise.

Link to comment
Share on other sites

Actually, typical result is panic with only one NVMe should both HackrNVMeFamily and IONVMeFamily load.

But the actual panic is random/system dependent, which means it is a timing/memory trash issue, which means there could be cases that the timing is not bad, or the memory trashed is somewhere not important.

Hi RehabMan,

I am sorry for intervention but the method from post 569 is not working. Tested by magnifico.

See the picture

Снимок экрана 2016-12-05 в 20.21.55.png

This device obtained fake class code =

but IOPCIFamily took original class code fro PCI space 

compatible = <...>

 

So that original IONvmeFamily.kext is attached to this device and cause panic as confirmed by users.

Link to comment
Share on other sites

Hi RehabMan,

I am sorry for intervention but the method from post 569 is not working. Tested by magnifico.

It works just fine (I'm using it on the computer on which I'm typing this message!)

 

User magnifico is making a mistake.

He has two NVMe disks (second at RP13.PXSX). He is injecting class-code only on one of them (RP09.PXSX).

So... of course native IONVMeFamily still matches on the one still with standard class-code, which causes the problem...

  • Like 1
Link to comment
Share on other sites

It works just fine (I'm using it on the computer on which I'm typing this message!)

 

User magnifico is making a mistake.

He has two NVMe disks (second at RP13.PXSX). He is injecting class-code only on one of them (RP09.PXSX).

So... of course native IONVMeFamily still matches on the one still with standard class-code, which causes the problem...

Hi RehabMan,I finished install OS X 10.11.6  on PM961 by using patches in config.plist KextsToPatch. It is easy. But I have a problem when I boot OS X from PM961.It is a photo by verbose mode.post-1557617-0-20287400-1481036587_thumb.jpg

 

And I have another problem when I used HackrNVMeFamily-10_11_6.kext in CLOVER/KEXTS . The kext froms the other OSX 10.11.6.post-1557617-0-22311000-1481036758_thumb.jpg

Link to comment
Share on other sites

Hi RehabMan,I finished install OS X 10.11.6  on PM961 by using patches in config.plist KextsToPatch. It is easy.[/size] But I have a problem when I boot OS X from PM961.It is a photo by verbose mode.[/size]attachicon.gifpatch .jpg

 

And I have another problem when I used HackrNVMeFamily-10_11_6.kext in CLOVER/KEXTS . The kext froms the other OSX 10.11.6.[/size]attachicon.gifkext.jpg

HackrNVMeFamily.kext should be installed to the system volume.

Make sure you don't use config.plist patches for IONVMeFamily at the same time as HackrNVMeFamily*.kext.

Link to comment
Share on other sites

 Share

×
×
  • Create New...