Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

For example, post #420: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/page-21?do=findComment&comment=2307585

 

configSample.plist has:

Find: <89b3f802 0000c1e0 0c050010 00008983>

Replace: <89b3f002 0000c1e0 09050010 00008983>

 

Should be...

Find: <89b3f802 0000c1e0 0c050010 00008983>

Replace: <89b3f802 0000c1e0 09050010 00008983>

 

I didn't read every post after that to see if it was ever corrected. But the same wrong patch also appears in other posts...

I had a doubt, but the code snippet from the disassembling I done at the time, was showing me only the idea to do that or leaving it as is, since its working well. I mean just removing removing patch #1.

Link to comment
Share on other sites

I mean just removing removing patch #1.

That would be wrong.

You should really take a close look at diffs between patched/un-patched disassembly.

Removing patch #1 instead of substituting in the correct patch would result in a partially patched kext... definitely not as Pike intended.

Link to comment
Share on other sites

hi all

 

My build:

ASrock Z170 Extreme 7+, 32GB Ram, GTX 980Ti, Wifi/BT (Mac compatible) card running Sierra 10.12.1. Everything works including Messages. Just occasional KP's with AppleIGB.kext when warm booting only(strange but haven't had time to really nail that down).

 

I have a m.2 NVMe 950Pro 256GB  running the last 2-3 weeks without any problems on a new build. Installed using Rehabman's recommended Kext patch method(worked the very first time). Thanks to all the efforts and hours to Rehabman, Mork, Piker et al. -spent doing the hard work!

 

Problem:

I just received my 960Pro 1TB and 512Gb and can't boot when mounted. Booting from 950PRO, It goes into a boot loop.. sometimes AppleIGB, sometimes Brcm..(BT kext) causing the KP's. If I take them out and everything boots and run's normal.. so I think its just erroneous conflict with the SSD not being recognized?

 

Do the 960Pro have a different" IOPCIClassMatch" and how to find it without being able to boot with them installed? Hope somebody (Rehabman?) can help.. otherwise I have two very expensive chewing gum size pieces of silicon..

 

thanks!

Link to comment
Share on other sites

was reporting the correct preferred block size. From this the doubt.

Most of the patches are there, except two lines...

It obviously works... until you create the conditions that lead to running the un-patched code.

hi all

 

My build:

ASrock Z170 Extreme 7+, 32GB Ram, GTX 980Ti, Wifi/BT (Mac compatible) card running Sierra 10.12.1. Everything works including Messages. Just occasional KP's with AppleIGB.kext when warm booting only(strange but haven't had time to really nail that down).

 

I have a m.2 NVMe 950Pro 256GB  running the last 2-3 weeks without any problems on a new build. Installed using Rehabman's recommended Kext patch method(worked the very first time). Thanks to all the efforts and hours to Rehabman, Mork, Piker et al. -spent doing the hard work!

 

Problem:

I just received my 960Pro 1TB and 512Gb and can't boot when mounted. Booting from 950PRO, It goes into a boot loop.. sometimes AppleIGB, sometimes Brcm..(BT kext) causing the KP's. If I take them out and everything boots and run's normal.. so I think its just erroneous conflict with the SSD not being recognized?

 

Do the 960Pro have a different" IOPCIClassMatch" and how to find it without being able to boot with them installed? Hope somebody (Rehabman?) can help.. otherwise I have two very expensive chewing gum size pieces of silicon..

 

thanks!

Are you using the "class-code" spoof? If so, did you apply it to both the 950 *and* 960?

Link to comment
Share on other sites

Are you using the "class-code" spoof? If so, did you apply it to both the 950 *and* 960?

ah.. I'm a noob, but I thought that was built in to the original kext patch..?

I did recheck the patched kext and MD5 checks out, it was for the 10.12.0 (was working in 10.12.1 16B25657) so I updated it.. but no change.

where would I do the spoof?

 

It is also possible to use config.plist/Devices/Arbitrary to inject the bogus class-code.

 

In Clover you can press F2 to get preboot.log (in EFI/Clover/misc/preboot.log). This is how to determine the required PciAddr data.

For example on my NUC6i7KYK:

 

do you mean this? I did the spoofing here.. in the config list. so I'll try tomorrow to find the code using the description you made in post 569

Link to comment
Share on other sites

ah.. I'm a noob, but I thought that was built in to the original kext patch..?

No .. read my post at insanelymac (linked from README).

It is a separate (a bit advanced) step.

 

I did recheck the patched kext and MD5 checks out, it was for the 10.12.0 (was working in 10.12.1 16B25657) so I updated it.. but no change.

where would I do the spoof?

Need data...

 

Attach ioreg as ZIP: Please, use the IORegistryExplorer v2.1.

 

Provide output (in Terminal):

kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda
Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

 

Attach output of (in Terminal):

sudo touch /System/Library/Extensions && sudo kextcache -u /
Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.
  • Like 1
Link to comment
Share on other sites

will do tomorrow.. I'm in Europe so its almost bedtime for me.

 

I assume I do this while booted into the 950Pro. without the 960's installed?

 

thanks!

960 must be installed. If you can't boot, show photo and provide data with just 950.

I wonder if the 960 uses a different block size?

Link to comment
Share on other sites

960 must be installed. If you can't boot, show photo and provide data with just 950.

I wonder if the 960 uses a different block size?

here's what I have from today: 2 kinds of KP's KP1

KP2

and here's the 960 Specs: no mention of blocksize but it does have a new controller(internal) https://www.dropbox.com/s/7zrsuepdelbsu37/Samsung_SSD960PRO_Spezifikationen.jpg?dl=0

 

can't seem to upload images.. so I'll just link them for now..

Link to comment
Share on other sites

here's what I have from today: 2 kinds of KP's https://www.dropbox.com/s/h4bv7ml0jo596xs/IMG_9823.jpg?dl=0 https://www.dropbox.com/s/fv0jyhg5joud9ij/IMG_9827.jpg?dl=0

and here's the 960 Specs: no mention of blocksize but it does have a new controller(internal) https://www.dropbox.com/s/7zrsuepdelbsu37/Samsung_SSD960PRO_Spezifikationen.jpg?dl=0

 

can't seem to upload images.. so I'll just link them for now..

Need all data requested. Please provide in single post.

 

It is possible the 960 does not use 512 byte block size. In which case, you would need to inject a different class code (or match on PCI ID) for each, with appropriately patched (or un-patched) kext for each 950/960 with respective block sizes.

Vanilla IONVMeFamily.kext assumes 4096 byte block size.

Patched HackrNMVmeFamily.kext assumes 512 (Pike's patches).

A system with both installed, would need two patched kexts (all class names would need to be renamed, such that they are independent) with separate matching criteria, so the correct driver is selected.

Probably best to test each independently first, so you know what is required for each.

Link to comment
Share on other sites

Link to comment
Share on other sites

If it is true (960 == 4k block size), it would mean it could work with vanilla IONVMeFamily.kext.

Link to comment
Share on other sites

 

Can you post your IORegistryExplorer 2.1 output ?

If it showed the same as mine, that means we are the unlucky ones--hardware incompatibility issue !

 

Please upload your output (saved it as ....) as mine at Post#564

Link to comment
Share on other sites

 

Please upload your output (saved it as ....) as mine at Post#564

 

I double check yours and compared with mine: the situation is almost the same !

We are unlucky at present because it's due to hardware incompatibility instead of something wrong about our hardware or software.

The HackrNVMeFamily-10_12_1.kext was partially loaded only without fully activated our M2 devices.

WE need waiting for new IONVMeFamily.kext plus proper patching in the future, otherwise no way to use it at Mac OS X at present.

Link to comment
Share on other sites

No .. read my post at insanelymac (linked from README).

It is a separate (a bit advanced) step.

 

 

Need data...

 

Attach ioreg as ZIP: Please, use the IORegistryExplorer v2.1.

 

Provide output (in Terminal):

kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda
Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

 

Attach output of (in Terminal):

sudo touch /System/Library/Extensions && sudo kextcache -u /
Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.

 

ok..here it is..

 

I managed to boot into a virgin 10.12.1 installation pre-nvme kext install. so I have all 3 installed M2_1(960PRO-512GB), M2_2(950PRO-256GB) and M2_3 (960PRO-1TB). In Sytem Info, it even shows 3X Apple SSD controller started but nothing else. IOREG too.. 

 

Clover install is from the original boot disk with hackrnvme installed...

 

if it is possible to use vanilla, can you walk me through it to get the 960's going? would seem easier to use vanilla kext over long term..the 950 I can sell..

 

thanks!

Rehabman_REQs.zip

Link to comment
Share on other sites

ok..here it is..

 

I managed to boot into a virgin 10.12.1 installation pre-nvme kext install. so I have all 3 installed M2_1(960PRO-512GB), M2_2(950PRO-256GB) and M2_3 (960PRO-1TB). In Sytem Info, it even shows 3X Apple SSD controller started but nothing else. IOREG too.. 

 

Clover install is from the original boot disk with hackrnvme installed...

 

if it is possible to use vanilla, can you walk me through it to get the 960's going? would seem easier to use vanilla kext over long term..the 950 I can sell..

 

thanks!

It is going to involve looking at the debug traces from IONVMeFamily to determine what kind of patches will be required.

From what you show, it seems the 960 not working with unmodified IONVMeFamily.

And what you said earlier, not working with Pike's patches either.

Link to comment
Share on other sites

I double check yours and compared with mine: the situation is almost the same !

We are unlucky at present because it's due to hardware incompatibility instead of something wrong about our hardware or software.

The HackrNVMeFamily-10_12_1.kext was partially loaded only without fully activated our M2 devices.

WE need waiting for new IONVMeFamily.kext plus proper patching in the future, otherwise no way to use it at Mac OS X at present.

 

Yes :O/

i hope the problem don't come from the firmware of the M2 controller

i don't know why, but i have an idea, perhaps i'm totally wrong, but i think it's like certain usb key who only support certain system file like FAT32.

it's possible ?

Do you know the LBA size of your M2 ?

And do you have The controller datasheet ?

 

https://vendev.org/pci/ven_14a4/

Link to comment
Share on other sites

It is going to involve looking at the debug traces from IONVMeFamily to determine what kind of patches will be required.From what you show, it seems the 960 not working with unmodified IONVMeFamily.And what you said earlier, not working with Pike's patches either.

So... What do I need to do to get the debug traces..?

Link to comment
Share on other sites

Yes :O/

i hope the problem don't come from the firmware of the M2 controller

i don't know why, but i have an idea, perhaps i'm totally wrong, but i think it's like certain usb key who only support certain system file like FAT32.

it's possible ?

Do you know the LBA size of your M2 ?

And do you have The controller datasheet ?

 

https://vendev.org/pci/ven_14a4/

I am not sure about LBA size of my M2 SSD which's Plextor M8Pe series (Plextor PX-256M8PeG).

Its Controller is Marvell 88SS1093 and NAND Flash is Toshiba 15nm Toggle MLC.

The original Vendor ID 0x14A4 belong to  GVC/BCM Advanced Research

It maybe merged by Lite-On Technology Corporation later.

And Plextor is currently owned by Lite-On IT Corp. / Plextor too.

Plextor M8PeG_EN_0808.pdf

  • Like 1
Link to comment
Share on other sites

I am not sure about LBA size of my M2 SSD which's Plextor M8Pe series (Plextor PX-256M8PeG).

Its Controller is Marvell 88SS1093 and NAND Flash is Toshiba 15nm Toggle MLC.

The original Vendor ID 0x14A4 belong to  GVC/BCM Advanced Research

It maybe merged by Lite-On Technology Corporation later.

And Plextor is currently owned by Lite-On IT Corp. / Plextor too.

 

Are you guys reporting the Plextor NVME drive is not hackable to work with Sierra? I just ordered a Plextor M8Pe PX-512M8PeY.

Was on sale for like $200. Great deal on Newegg. May just dedicate it to Windows if not Hackable.

 

Thanks

Link to comment
Share on other sites

Are you guys reporting the Plextor NVME drive is not hackable to work with Sierra? I just ordered a Plextor M8Pe PX-512M8PeY.

Was on sale for like $200. Great deal on Newegg. May just dedicate it to Windows if not Hackable.

 

Thanks

You may try it by yourself at first, because your MB is Gigabyte which seems more close to Apple's than mine (Asus).

If the hardware compatibility is due to Marvell controller 88SS1903, it will not work as mine.

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

Link to comment
Share on other sites

 Share

×
×
  • Create New...