Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

is an example :huh:,  

cd /Users/magnifico/Desktop/tmp

tmp folder must exist into your Desktop

 

EDIT

you can also dowble click NVMeP... but then you have to look inside your Home folder for the generated files..

Link to comment
Share on other sites

-s 4 not -s [4], braket usually are only for indicate an argument but must not be written, plus the help indicate as example:

 e.g. NVMeP -s 0

and anyway you are in 10.11.6 ..so there's no reasons to try 10.11.5 patches

 

EDIT

Carmine, you have to use the one coming from github, compile it and run it, not the one posted here yesterday where the -s option even existed  :wink_anim:

Link to comment
Share on other sites

no new NVMeFamily.kext patch needed for SIERRA beta5 Build 16A286a - cause all patches applied to beta 4 are also applied to beta5 successfully. So if you have a working beta4 patched kext, you dont need to recompile with a different patch. Just veryfied the code here and all Piker's patches get applied.

 

So we are still save on this. Enjoy...

Link to comment
Share on other sites

no new NVMeFamily.kext patch needed for SIERRA beta5 Build 16A286a - cause all patches applied to beta 4 are also applied to beta5 successfully. So if you have a working beta4 patched kext, you dont need to recompile with a different patch. Just veryfied the code here and all Piker's patches get applied.

 

So we are still save on this. Enjoy...

Thz my friend

Link to comment
Share on other sites

Reporting SSDT injection for internal icon working.

Found this in ioreg

post-799111-0-71598600-1470893382_thumb.png

nvme in PCI0/BR1B/H000@0

then added compiled SSDT-2 (SSDT for speedsteps and SSDT-1 for nVidia HDMI) in EFI\EFI\CLOVER\ACPI\Patched, rebuilt cache, rebooted.

Icon shows now internal with this ioreg result

post-799111-0-88606900-1470893597_thumb.png

 

This is the ssdt

/*

 * Intel ACPI Component Architecture
 * AML Disassembler version 20131218-64 [Jan  8 2014]
 * Copyright © 2000 - 2013 Intel Corporation
 * 
 * Disassembly of iASLqF0gVa.aml, Thu Aug 11 07:34:51 2016
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000097 (151)
 *     Revision         0x02
 *     Checksum         0x7D
 *     OEM ID           "hack"
 *     OEM Table ID     "nvme"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20131218 (538120728)
 */
DefinitionBlock ("iASLqF0gVa.aml", "SSDT", 2, "hack", "nvme", 0x00000000)
{
 
    External (_SB_.PCI0.BR1B, DeviceObj)
    External (_SB_.PCI0.BR1B.H000._ADR, IntObj)
 
    Scope (\_SB.PCI0.BR1B)
    {
        Device (NVME)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, One)  // _SUN: Slot User Number
            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                Store (0x0F, \_SB.PCI0.BR1B.H000._ADR)
            }
 
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03
                    })
                }
 
                Return (Package (0x02)
                {
                    "built-in", 
                    Buffer (0x0A)
                    {
                        "NVMe SSD"
                    }
                })
            }
        }
    }
}

 
Hardware:

- Asus X99-A II

- Intel I7 6900K

- nvme Samsung 950 Pro M.2 512 GB on board (not PCIe adapter)

 

Thanks Toleda, RehabMan, Mork and, of course, Pike

  • Like 1
Link to comment
Share on other sites

Hi,

 

First thanks for this awesome work.

I have an Intel 750 1.2Tb PCI-E SSD.

 

On Sierra DP3, it worked perfectly including Boot via Clover.

 

Sadly since DP4, it doesn't.

 

On DP3, using Rehabman's script to generete Hackr kext:

 

post-20963-0-67611600-1471522085_thumb.jpg

 

 

On DP4 and newer (including DP6), suing Micky Borgs kext:

 

post-20963-0-42082600-1471522212_thumb.png

 

and

 

post-20963-0-45576300-1471522356_thumb.png

 

It seems Borg kext complains about Only Apple kexts may link against com.apple.kpi.private:

 

post-20963-0-47295800-1471522299_thumb.png

 

Any help would be appreciated.

 

Many thanks in advance,

 

Eric

 

 

 

Link to comment
Share on other sites

Hi,

 

First thanks for this awesome work.

I have an Intel 750 1.2Tb PCI-E SSD.

 

 

On DP4 and newer (including DP6), suing Micky Borgs kext:

 

It seems Borg kext complains about Only Apple kexts may link against com.apple.kpi.private:

Should be fixed, also added your device id pci8086,0953.

 

EDIT

confirmed fixed, Intel 750 1.2Tb PCI-E SSD working  :lol:

Link to comment
Share on other sites

Caution! MD5 hash has changed!!!!

 

 

MD5 (IONVMeFamily DP6) = d525e0862b29c70b6d8393cb4ea44ed7

 

MD5 (IONVMeFamily DP7) = c69d50c9923557c0327b90a31be0e21b

 

 

Edit: after updating everything looks cool and still working, however besides booting and speed I have no real test

Link to comment
Share on other sites

Just tested: all Pike patches get applied succesfully on SIERRA DP7 build 16A304a.

But they still have made many changes under the hood within the new IONVMeFamily.kext

 

But none of their changes is relevant to make the patch working for 3rd party NVMe devices. So it is save to use.

  • Like 1
Link to comment
Share on other sites

Just tested: all Pike patches get applied succesfully on SIERRA DP7 build 16A304a.

But they still have made many changes under the hood within the new IONVMeFamily.kext

 

But none of their changes is relevant to make the patch working for 3rd party NVMe devices. So it is save to use.

thus confirming that we should not make additional changes? only use the patch dp6?

Link to comment
Share on other sites

Just tested: all Pike patches get applied succesfully on SIERRA DP7 build 16A304a.

But they still have made many changes under the hood within the new IONVMeFamily.kext

 

But none of their changes is relevant to make the patch working for 3rd party NVMe devices. So it is save to use.

yes, confirmed. NVME patches running fine here on 16304a!

Link to comment
Share on other sites

I am trying to install OS X to a computer with an ASUS Maximus VIII (which has an M.2 NVME slot) and a 950 Pro.

 

The problem I am running in to is that the OS X installer cannot see the M.2 drive. Even when I open Disk Util on the installer, it still doesn't see it.

 

I generated HackrNVMeFamily-10_11_6.kext on a different computer. Could that be the problem? When I read the git repo, I wasn't entirely sure if the kext needed to be generated ON the computer with the NVME drive itself or not.

 

Could that be the problem?

Link to comment
Share on other sites

I am trying to install OS X to a computer with an ASUS Maximus VIII (which has an M.2 NVME slot) and a 950 Pro.

 

The problem I am running in to is that the OS X installer cannot see the M.2 drive. Even when I open Disk Util on the installer, it still doesn't see it.

 

I generated HackrNVMeFamily-10_11_6.kext on a different computer. Could that be the problem? When I read the git repo, I wasn't entirely sure if the kext needed to be generated ON the computer with the NVME drive itself or not.

 

Could that be the problem?

You can generate HackrNVMeFamily-10_11_6.kext on another computer, but the computer must be running 10.11.6.

Link to comment
Share on other sites

Hello rehab, I think you should write it even in read.me files, just my point of view

It is already very clear in the README:

Usage:

...

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

Link to comment
Share on other sites

It is already very clear in the README:

Maybe it's clear to people that aren't as dumb as me... ;)

 

I can write large scale image recognition neural networks but when it comes to this driver stuff I'm about as knowledgeable as a chimp, lol.

 

Thank you, I will try running the sh script on a computer with 11.6 and will see how it goes!

Link to comment
Share on other sites

Try removing just the _SUN method. It would leave you with:

               Device (H000)
                {
                    Name (_ADR, 0x00)
                }
 
If you're going to do much ACPI coding, recommend you read the ACPI spec.

 

Hey RehabMan... I just wanted say a big THANK YOU for pushing me to try to sort things out by getting into DSDT. I finally got a good extraction, got my graphics card working great with the GFX1 edit, replaced all of my EHC1, EHC2 and XHCIs, edited the USB port limit and implemented your fix for my NVMe which now shows as an internal drive on the desktop.

 

Everything is working great but I'm still not convinced that although all my USB ports are working and at the correct respective speeds, that the USB stuff is actually correct.

 

I decided to map my USB ports with a little program I found called USB Tree Viewer (not USBView) under Windows. Please see here for results. I am using one of your kexts but I am now convinced that (with all due respect) things could be done better in the DSDT.

 

I'd really appreciate your view on this and if possible, some guidance as I have no idea where to begin.

Link to comment
Share on other sites

I am able to generate the kext. However I can see, using kextstat, that OS X is not loading it....even when I put it in the /EFI/Clover/kexts folder?

 

Is this a kext signing issue? I am a registered developer, so to avoid this signing problem, is there a way I can compile the kext in Xcode?

Link to comment
Share on other sites

 Share

×
×
  • Create New...