Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

Thanks, Rehab. I'm not sure how to inject _DSM so I guess removing _SUN would be easier for me. Will I have to remove that whole section?


Okay, so I tried removing the section H000 with _SUN but when I compiled, I got two errors:
 
17195, 4007, Field offset is in bits, but a byte offset is required
 
55141, 4064, Object does not exist (\_SB.PCI0.BR1A.H000)

 

So I tried just saving without any changes and I still got the first error.

 

Not sure where to go from here.

Link to comment
Share on other sites

Thanks, Rehab. I'm not sure how to inject _DSM so I guess removing _SUN would be easier for me. Will I have to remove that whole section?

 

Okay, so I tried removing the section H000 with _SUN but when I compiled, I got two errors:

 

17195, 4007, Field offset is in bits, but a byte offset is required

 

55141, 4064, Object does not exist (\_SB.PCI0.BR1A.H000)

 

So I tried just saving without any changes and I still got the first error.

 

Not sure where to go from here.

My suggestion was to remove only the _SUN, not the entire H000 device.

Link to comment
Share on other sites

Yes, I realise that but the _SUN is in the middle of it's own lump of code, or so it seems.

 

So I've found this in my DSDT:

 

               Device (H000)
                {
                    Name (_ADR, 0x00)
                    Method (_SUN, 0, NotSerialized)
                    {
                        Return (SNUM ())
                    }
                }
 
and that's the section which I think you suggest I remove (perhaps I've misunderstood).

 

I am looking further into DSDT and it is obvious that I have a lot to learn so I guess I should be patient. It is frustrating, however. Many references are to do with DSDT Editor and not MaciASL. The former seems to require Java which I refuse to install. I try to disassemble my DSDT.aml and things just go wrong from there so like I said, I guess I'm just going to need to be patient.

 

Amongst other problems that I'm trying to sort out with my X99 system is Turbo boost. Last night I switched off turbo on the BIOS but switched off EIST. This made some difference so when I run AppleIntelInfo, I now get the last state as being 34' and not '33'. My GeekBench score has gone up above 20000, now but I do not think that things are correct. With turbo boost, I should have processor speeds up to 3.7 GHz but I can only get things up to 3.4 GHz.

 

Of course any help / ideas would be appreciated.

Link to comment
Share on other sites

Yes, I realise that but the _SUN is in the middle of it's own lump of code, or so it seems.

 

So I've found this in my DSDT:

 

               Device (H000)

                {

                    Name (_ADR, 0x00)

                    Method (_SUN, 0, NotSerialized)

                    {

                        Return (SNUM ())

                    }

                }

 

and that's the section which I think you suggest I remove (perhaps I've misunderstood).

 

I am looking further into DSDT and it is obvious that I have a lot to learn so I guess I should be patient. It is frustrating, however. Many references are to do with DSDT Editor and not MaciASL. The former seems to require Java which I refuse to install. I try to disassemble my DSDT.aml and things just go wrong from there so like I said, I guess I'm just going to need to be patient.

 

Amongst other problems that I'm trying to sort out with my X99 system is Turbo boost. Last night I switched off turbo on the BIOS but switched off EIST. This made some difference so when I run AppleIntelInfo, I now get the last state as being 34' and not '33'. My GeekBench score has gone up above 20000, now but I do not think that things are correct. With turbo boost, I should have processor speeds up to 3.7 GHz but I can only get things up to 3.4 GHz.

 

Of course any help / ideas would be appreciated.

Yes, I realise that but the _SUN is in the middle of it's own lump of code, or so it seems.

 

So I've found this in my DSDT:

 

               Device (H000)

                {

                    Name (_ADR, 0x00)

                    Method (_SUN, 0, NotSerialized)

                    {

                        Return (SNUM ())

                    }

                }

 

and that's the section which I think you suggest I remove (perhaps I've misunderstood).

 

I am looking further into DSDT and it is obvious that I have a lot to learn so I guess I should be patient. It is frustrating, however. Many references are to do with DSDT Editor and not MaciASL. The former seems to require Java which I refuse to install. I try to disassemble my DSDT.aml and things just go wrong from there so like I said, I guess I'm just going to need to be patient.

 

Amongst other problems that I'm trying to sort out with my X99 system is Turbo boost. Last night I switched off turbo on the BIOS but switched off EIST. This made some difference so when I run AppleIntelInfo, I now get the last state as being 34' and not '33'. My GeekBench score has gone up above 20000, now but I do not think that things are correct. With turbo boost, I should have processor speeds up to 3.7 GHz but I can only get things up to 3.4 GHz.

 

Of course any help / ideas would be appreciated.

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.
Link to comment
Share on other sites

For SIERRA DP4 Build 16A270f just one little change has to be made. Just change the following entry within config.plist - KextsToPatch section:

 

Change:

            <dict>
                <key>Comment</key>
                <string>NVMe SSD PikePatch#1</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>ibPoAgAAweAMBQAQAACJgw==</data>
                <key>Replace</key>
                <data>ibPoAgAAweAJBQAQAACJgw==</data>
            </dict>

into:

            <dict>
                <key>Comment</key>
                <string>NVMe SSD PikePatch#1</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>ibPwAgAAweAMBQAQAACJgw==</data>
                <key>Replace</key>
                <data>ibPwAgAAweAJBQAQAACJgw==</data>
            </dict>

All other patches matches for SIERRA DP 4 Build 16A270f. Tested and running here since yesterday.

 

Regards... Mork vom Ork

  • Like 1
Link to comment
Share on other sites

Hi all, I'm collecting builds for the new "MatchBuild" key using patches there  (Clover), any help remember those Sierra's versions? 

// beta 1 = 16A238m
// beta 2 =
// beta 3 = 16A254g ??
// beta 4 = 16A270f

// dp 1 = 16A201w
// dp 2 = 16A239j
// dp 3 = 16A270f (same as beta 4?)
Link to comment
Share on other sites

@ Micky

 

DB = Developer Beta  (or DP = Developer Preview)  

 

PB = Public Beta

// db 1 = 16A201w
// db 2 = 16A239j
// db 3 = 16A254g
// db 4 = 16A270f

// pb 1 = 16A238m
// pb 2 = 16A254g (same build as db 3) 
// pb 3 = 16A270f (same build as db 4)
  • Like 1
Link to comment
Share on other sites

Anyone intrested trying this command line?

usage:

cd /to/a/folder
NVMeP -k /path/to/IONVMeFamily.kext

or by default search in /System/Library/Extensions, so no arguments needed.

cd /to/a/folder
NVMeP 

The result should be a patched kext + the configSample.plist..

 

Need that for Pandora, but I don't want to use scripts... so I made this reusable code.

 

https://github.com/Micky1979/NVMeP

Link to comment
Share on other sites

Anyone intrested trying this command line?

usage:

cd /to/a/folder
NVMeP -k /path/to/IONVMeFamily.kext

or by default search in /System/Library/Extensions, so no arguments needed.

cd /to/a/folder
NVMeP 

The result should be a patched kext + the configSample.plist..

 

Need that for Pandora, but I don't want to use scripts... so I made this reusable code.

:( what is this ?

Link to comment
Share on other sites

Carmine:

copy NVMeP to your desktop.

create a folder named "test" inside your desktop

 

open the Terminal and paste this:

cd $HOME/Desktop/test

press return (invio)

 

then paste this again in Terminal:

$HOME/Desktop/NVMeP

press return (invio)

 

Look inside the "test" folder..

Link to comment
Share on other sites

Carmine:

copy NVMeP to your desktop.

create a folder named "test" inside your desktop

 

open the Terminal and paste this:

cd $HOME/Desktop/test

press return (invio)

 

then paste this again in Terminal:

$HOME/Desktop/NVMeP

press return (invio)

 

Look inside the "test" folder..

Last login: Sat Aug  6 14:42:46 on ttys000
Airdimagnifico:~ magnifico$ cd $HOME/Desktop/test
Airdimagnifico:test magnifico$ $HOME/Desktop/NVMeP
-bash: /Users/magnifico/Desktop/NVMeP: No such file or directory
Airdimagnifico:test magnifico$

:lol:

 

resolved 

Airdimagnifico:~ magnifico$ cd $HOME/Desktop/test
Airdimagnifico:test magnifico$ $HOME/Desktop/NVMeP
NVMeP v1.0 by Micky1979,
program to patch IONVMeFamily.kext.
Patch Author: Pike R.Alpha.
Contributors: Mork vom Ork and RehabMan
 
Try using patch for Sierra DP4:
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 01 (DP4)"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 02"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 03"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 04"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 05"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 06-07"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 08"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 09-10"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 11"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 12"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 13"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 14"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 15"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 16"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 17"
Failed applying binary patches, nothing done.
Try using patch for Sierra DP1/3:
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 01 (DP1-DP3)"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 02"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 03"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 04"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 05"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 06-07"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 08"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 09-10"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 11"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 12"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 13"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 14"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 15"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 16"
**Error applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 17"
Failed applying binary patches, nothing done.
Try using patch for El Capitan 10.11.6 (15G31):
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 01"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 02-03"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 04"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 05-06"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 07-08-09"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 10"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 11"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 12-13"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 14"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 15-16-17-18-19"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 20-21-22"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 23-50"
Success patching binary!
Success patching Info.plist!
Success creating /Users/magnifico/Desktop/test/IONVMeFamilyBorg.kext
Success creating /Users/magnifico/Desktop/test/configSample.plist!
NOTE: for EC kexts may need to adjust the InfoPlistPatch to match your device id.
      and off course if you install the kext, no need for the KextsToPatch!
 
SUCCESS!
IONVMeFamilyBorg.kext successfully generated using El Capitan 10.11.6 (15G31) patches!
Airdimagnifico:test magnifico$  

:(  :( Many error why Micheligno ?

Omg  You are genius man , so i can use also kext inside folder clover?

:wink_anim:  :wink_anim:

michel you are fantastic about this 

post-410253-0-82109300-1470488273_thumb.png

post-410253-0-19896500-1470488284_thumb.png

Link to comment
Share on other sites

No errors, is good. It try all patches available (10.11.5, 10.11.6, Sierra DP1-DP3, Sierra DP4 etc), and the good one is:

Try using patch for El Capitan 10.11.6 (15G31):
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 01"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 02-03"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 04"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 05-06"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 07-08-09"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 10"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 11"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 12-13"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 14"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 15-16-17-18-19"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 20-21-22"
Success applying patch with Comment "IONVMeFamily Pike R. Alpha Patch 23-50"
Success patching binary!
Success patching Info.plist!
Success creating /Users/magnifico/Desktop/test/IONVMeFamilyBorg.kext
Success creating /Users/magnifico/Desktop/test/configSample.plist!

.. that succeded because all patches are correctly applied.

Link to comment
Share on other sites

No, there's no need to replace it. And if you use the kext, ther's no need for the KextToPatch.

But verily, I am here to compare already working kext with one generated by NVMeP for the various OSes, just to be sure! (roll out)


EDIT

 

is opensource, let me add more options and clean the source for some comments in it..

  • Like 1
Link to comment
Share on other sites

Mickelao 

 

about external i need this in config 

 

 

<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#External</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>SIXAdAeAiwgBAAAQ</data>
    <key>Replace</key>
    <data>kJCQkJCAiwgBAAAQ</data>
</dict>
Link to comment
Share on other sites

SIXAdAeAiwgBAAAQ = 4885c074 07808b08 01000010
kJCQkJCAiwgBAAAQ = 90909090 90808b08 01000010

 

 

 

post-674334-0-06712700-1470499040_thumb.png

 

 

 

Carmine, something is telling me that you have to patch the patched kext... not "IONVMeFamily", if any  ;)

Link to comment
Share on other sites

 

Mickelao 

 

about external i need this in config 

<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#External</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>SIXAdAeAiwgBAAAQ</data>
    <key>Replace</key>
    <data>kJCQkJCAiwgBAAAQ</data>
</dict>

maybe <string>HackrNVMeFamily</string> instead of <string>IONVMeFamily</string> ?

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...