Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

I perceive the problem in my instalation and the dozen I read these days it is not clear where I get this:

"spoofed class-code". 

 

I got my boot with the Config with kext to patch from Magnifico (Grazie mile!).

The rest of the system and configuration is a copy of the other made it by Maldon (Brigado!) and I added in Clover IONVMeFamily.kext.

 

Everything works fine. But now I'm interested in Rehabman method for future updates. This kext patch works, but, lot ot users said could bring problems. I'm not an expert like you.

 

 

Thanks everybody implied in my help @Tobinejumi @mfc88 @Mork vom Ork with his guides.

Link to comment
Share on other sites

I applied RehabMan patched kext with spoof way and successfully boot my Hackintosh system, 
However, I met a problem recently. 

When all my SATA disks were connected, my nvme ssd (Samsung 950 pro) write/read speed were only 7XX/7XX MB/s

And I was pretty certain that it was connected with the proper PCIE channel because System report showed 5.0 GT/s, 4 channels compatible with the actual PCIE I installed (PCIE 2.0 X 4)

 

Without other configuration changed, I just went tp BIOS settings and turned the SATA off. 

Then the speed was back, 1500/900 MB/s

(Edited) Through another boot, though SATA off, the speed still limited back

Any suggestion? 


My Hackintosh environment: 
Clover Version: 4049

Mac OS X Sierra 10.12.4
CPU: i5-4460
Motherboard: Asus H97 Pro Gamer

NVMe SSD: Samsung 950 Pro connected at PCIE 2.0 X 4
Graphic Card: Nvidia 750 TI
 

 

Clover-debug info included config.plist, clover/ACPI folder including original and patched, and IOreg, hope helpful

 

 

 

 

 

post-1585043-0-93218400-1491633627_thumb.png

Clover-debug info.zip

post-1585043-0-45529000-1491634163_thumb.png

Link to comment
Share on other sites

Well ok, let's go:

 

1) grab your copy of macOS 10.12 SIERRA. download it to a disc of your choice. If u grabed it on a legal way, it should be named like "Install 10.12 Developer Preview"

 

2) boot into any previous OS X (10.10.x or 10.11.x) and put the downloaded file to your APPLICATIONS folder.

 

3) have a 16GB USB-stick handy and connected to any USBport

 

4) open terminal window and type in the following to make a bootable SIERRA usb-stick:

sudo /Applications/Install\ 10.12\ Developer\ Preview.app/Contents/Resources/createinstallmedia --volume /Volumes/your_USBstick_here --applicationpath /Applications/Install\ 10.12\ Developer\ Preview.app

just to make sure: "your_USBstick_here" should be replaced with the name of YOUR USBstick. Please don't use "your_USBstick_here", cause it won't work.

 

5) wait to get the bootable SIERRA USB-stick ready

 

6) get a copy of any CLOVER installer (4 myself i prefere this one. Thx to chris1111 for his great work)

 

7) install CLOVER to the just created SIERRA USBstick (within the installer choose the desired options you need for your setup)

 

8) copy your YOSEMITE or EL CAPITAN config.plist to your CLOVER installation you just made.

 

9) open the just copied config.plist with any texteditor (how about TEXTEDIT?) application and go to <key>KernelAndKextPatches</key> section

 

10) paste the following code somewhere between the two <array> </array> commands of <key>KextsToPatch</key> section:

<dict>
    <key>Comment</key>
    <string>IONVMeFamily IONameMatch</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>InfoPlistPatch</key>
    <true/>
    <key>Find</key>
    <data>PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4=</data>
    <key>Replace</key>
    <data>PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4=</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#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>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#2</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>D7aMiIIAAACD+QwPhTIBAA==</data>
    <key>Replace</key>
    <data>D7aMiIIAAACD+QkPhTIBAA==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#3</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>AMeDpAAAAAAQAABIi0gISA==</data>
    <key>Replace</key>
    <data>AMeDpAAAAAACAABIi0gISA==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#4</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>SYnGTYX2dGFBwecMSWP/vg==</data>
    <key>Replace</key>
    <data>SYnGTYX2dGFBwecJSWP/vg==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#5</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>hv8PAABIwegMD7cPgeH/Dw==</data>
    <key>Replace</key>
    <data>hv8PAABIwegJD7cPgeH/Dw==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#6_7</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>icGB4f8PAABIAdFIgfn/DwAAdzs=</data>
    <key>Replace</key>
    <data>icGB4f8BAABIAdFIgfn/AQAAdzs=</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#8</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>SYHF/w8AAEnB7QxJiwQkSA==</data>
    <key>Replace</key>
    <data>SYHF/w8AAEnB7QlJiwQkSA==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#9_10</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAAQAABJKfQ=</data>
    <key>Replace</key>
    <data>BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAACAABJKfQ=</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#11</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>AABJiY4iAQAAugAQAABIKQ==</data>
    <key>Replace</key>
    <data>AABJiY4iAQAAugACAABIKQ==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#12</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>yAAAAEkp17gAEAAATYskJA==</data>
    <key>Replace</key>
    <data>yAAAAEkp17gAAgAATYskJA==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#13</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>4b+AQBUGTYnWugAQAABFMQ==</data>
    <key>Replace</key>
    <data>4b+AQBUGTYnWugACAABFMQ==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#14</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>iWTY+EmBxAAQAABJgccA8A==</data>
    <key>Replace</key>
    <data>iWTY+EmBxAACAABJgccA8A==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#15</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>Bf8PAABIwegMZvfB/w8PlQ==</data>
    <key>Replace</key>
    <data>Bf8PAABIwegJZvfB/w8PlQ==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#16</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>weIIQQ+2wcHgDEQJ0EQJwA==</data>
    <key>Replace</key>
    <data>weIIQQ+2wcHgCUQJ0EQJwA==</data>
</dict>
<dict>
    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#17</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>RYTJD5XAD7bAweAMRAnYRA==</data>
    <key>Replace</key>
    <data>RYTJD5XAD7bAweAJRAnYRA==</data>
</dict>

11) save your config.plist file

 

12) grab the IONVMeFamily.kext from SIERRA (attached to this post) and paste it to your CLOVER EFI partition in the following place: EFI -> CLOVER -> kexts -> Other

      ! this step is neccesary, cause SIERRA Installer doesn't contain this kext in its own startup and you won't be able to select NVMe-device, cause it wasn't detected during startup !

 

13) install your NVMe device to your hardware. Either on an M.2 PCIe card for PCIe slot or directly into an M.2 slot on your motherboard. Have both tested here myself, both configs work perfectly 4 me

 

14) reboot your system, enter your BIOS and select SIERRA USBstick as your bootdevice

 

15) when CLOVER gets booted, select your SIERRA USBstick, press ENTER and wait for SIERRA booting into macOS 10.12 Installer.

 

16) when arrived into the installer, choose Use Disc Utility to get your NVMe-Device formatted. Format the device with desired partition or just delete partitions data

 

17) Quit DISC UTILITY to get back to SIERRA installer

 

18) select INSTALL SIERRA, choose your just formated NVMe-device and start Installation

 

19) when finished with the install process, copy your CLOVER EFI folder from SIERRA USBstick to EFI partition of your just installed SIERRA NVMe-device.

      After doing so, you could delete IONVMeFamily.kext from EFI -> CLOVER -> kexts -> Other from your just installed SIERRA EFI partition, cause kext is now installed in S/L/E

 

20) if you have any questions: ask your local dealer or post the question here

 

Regards... Mork vom Ork

 

PS: don't forget to drop Pike R. Alpha a line for his great work on this patch.

Hello Mork vom Ork

 

I have successfully used this to install macOS Sierra on a WD Black 256GB NVMe. I have not yet been able to make it a bootable drive. I have recreated a new boot USB stick with all the files. I have had success installing macOS Sierra and updating and running from the NVMe after using the USB stick as a boot drive. I hope to finally be able to create a properly booting system with this new USB stick. I will post more kudos upon success.

 

James C

Link to comment
Share on other sites

I applied RehabMan patched kext with spoof way and successfully boot my Hackintosh system, 

However, I met a problem recently. 

When all my SATA disks were connected, my nvme ssd (Samsung 950 pro) write/read speed were only 7XX/7XX MB/s

And I was pretty certain that it was connected with the proper PCIE channel because System report showed 5.0 GT/s, 4 channels compatible with the actual PCIE I installed (PCIE 2.0 X 4)

 

Without other configuration changed, I just went tp BIOS settings and turned the SATA off. 

Then the speed was back, 1500/900 MB/s

 

(Edited) Through another boot, though SATA off, the speed still limited back

 

Any suggestion? 

 

 

My Hackintosh environment: 

Clover Version: 4049

Mac OS X Sierra 10.12.4

CPU: i5-4460

Motherboard: Asus H97 Pro Gamer

NVMe SSD: Samsung 950 Pro connected at PCIE 2.0 X 4

Graphic Card: Nvidia 750 TI

 

 

Clover-debug info included config.plist, clover/ACPI folder including original and patched, and IOreg, hope helpful

 

The only way to manage my M.2 disk was disconecting the other boot disk. If not, everything were messed up. The boot, the audio in the other, kernel panic, slow start up. One disk for a time. 

Link to comment
Share on other sites

Dear Rehabman

 

First of all thanks for all the work and knowledge

 

My problem comes when I have two NVMe installed at the same time, I get KernelPanic. CRUCIAL MP500 and SAMSUNG PM961 both of 204GB

 

I´m booting SIERRA 10.12.4 from an SSD, not from the NVMe´s. Everything works fine (but the USB 3.0, I´ll investigate later)

 

I´ve followed (succesfully I think) for two drives, with ACPI paths 09 and 17 :

 


 

with one NVMe drive installed everything works fine, either MP500 or PM961 and either in M.2 1 or 2 slots ,always there is only one drive at a time

 

When I install a second one, OSX gives Kernel Panic. It does not matter if I exchange the NVMe slots. With one, everything fine, with two,..no success. BIOS and Windows 10 recognises both drives (W10 boots from the MP500)

 

I attach two verbose boot screens. for the second I renamed IONVMEFAMILY.kext Just in case since I had spoofed class, similar results.

post-2035694-0-89039200-1492087675.jpgIMG_1906.JPG . 

post-2035694-0-56480300-1492087682.jpg

IMG_1908 After renaming ionvmefamily kext.JPG

 

 

i also attach Clover folder, IOreg, some Terminal outputs I´ve seen you have asked for in previous posts, the text used for the SSDT, and the compiled file

 

In SLE I just have FAKESMC and VoddooHDA as far as I know.

IN LE I have I only have HackrNVMeFamily-10_12_4 and USBInjectAll

 

It would be great if you can help me. I´ve devoted the last three weeks to investigate and tests, my first hack was Easy (Z77) but with Z270, NVIDIA 1080, and NVMe I´m having lots of fun being an economist. (Luckily NVIDIA launched PASCAL drivers when I just quit trying to have HD630 free of glitches)

I want to have both NVMe working same time. One with W10 and one with SIERRA

 

Thank you very much

Alvaro

 

My specs:

MSI Z270 M5, I7 7700K, NVIDIA GTX 1080, BCM943602CS

Nvme Crucial MP500 256GB (w10); Samsung PM961 256GB

SSD OCZ 64GB and 128GB, Samsung EVO 850 500 GB and 256 GB, Kingston 128GB

TOSHIBA HDD 4TB

 

 

 

Archivo comprimido.zip

post-2035694-0-89039200-1492087675_thumb.jpg

post-2035694-0-56480300-1492087682_thumb.jpg

Link to comment
Share on other sites

Dear Rehabman

 

First of all thanks for all the work and knowledge

 

My problem comes when I have two NVMe installed at the same time, I get KernelPanic. CRUCIAL MP500 and SAMSUNG PM961 both of 204GB

 

I´m booting SIERRA 10.12.4 from an SSD, not from the NVMe´s. Everything works fine (but the USB 3.0, I´ll investigate later)

 

I´ve followed (succesfully I think) for two drives, with ACPI paths 09 and 17 :

 

https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/

 

with one NVMe drive installed everything works fine, either MP500 or PM961 and either in M.2 1 or 2 slots ,always there is only one drive at a time

 

When I install a second one, OSX gives Kernel Panic. It does not matter if I exchange the NVMe slots. With one, everything fine, with two,..no success. BIOS and Windows 10 recognises both drives (W10 boots from the MP500)

 

I attach two verbose boot screens. for the second I renamed IONVMEFAMILY.kext Just in case since I had spoofed class, similar results.

...

IMG_1908 After renaming ionvmefamily kext.JPG

 

 

i also attach Clover folder, IOreg, some Terminal outputs I´ve seen you have asked for in previous posts, the text used for the SSDT, and the compiled file

 

In SLE I just have FAKESMC and VoddooHDA as far as I know.

IN LE I have I only have HackrNVMeFamily-10_12_4 and USBInjectAll

 

It would be great if you can help me. I´ve devoted the last three weeks to investigate and tests, my first hack was Easy (Z77) but with Z270, NVIDIA 1080, and NVMe I´m having lots of fun being an economist. (Luckily NVIDIA launched PASCAL drivers when I just quit trying to have HD630 free of glitches)

I want to have both NVMe working same time. One with W10 and one with SIERRA

 

Thank you very much

Alvaro

 

My specs:

MSI Z270 M5, I7 7700K, NVIDIA GTX 1080, BCM943602CS

Nvme Crucial MP500 256GB (w10); Samsung PM961 256GB

SSD OCZ 64GB and 128GB, Samsung EVO 850 500 GB and 256 GB, Kingston 128GB

TOSHIBA HDD 4TB

I don't see any photos from Windows device manager (showing ACPI path) here.

Need either those photos or an ioreg that shows both NVMe drives installed.

Keep in mind that to determine the paths, you must have both drives installed at the time of path determination (ACPI paths may change as you change hardware).

 

But I think I may see the problem.

You did not add the _DSM->XDSM patch, and there is definitely an OEM _DSM at RP17.PXSX, where there isn't one at RP09.PXSX.

It means that when you add the NVMe SSD at RP17.PXSX, the SSDT will be ineffective (duplicate _DSM), and IONVMeFamily.kext will load for it instead of HackrNVMeFamily.kext. At that point, you have both loading, which is already known to cause panic.

  • Like 2
Link to comment
Share on other sites

Thanks a lot, the patch _DSM>XDSM did it, Great!!

 

booting from the samsung NVME (cloned from my boot drive). Not booted in windows but these are the ACPI patchs from Ioreg with 09 and 17

 

post-2035694-0-53958700-1492091160_thumb

post-2035694-0-53958700-1492091160_thumb.png

Link to comment
Share on other sites

There is one thing i forgot to mention:

 

if u are going to use SIERRA installer to install SIERRA on your NVMe drive, you have to boot into the installer, open terminal and load the IONVMeFamily.kext manually. After the kext got loaded, you could open Disc Utility and than you should be able to see and format your NVMe device. I havent tried it this way - i installed SIERRA on AHCI device and after installation i Carbon Copy cloned this Installation to my NVMe device, than restarted - et voila: successfull boot from my SAMSUNG 950 Pro NVMe drive..

How to do do this manually, ive tried the method in your post added the code the configplist and the kext to the clover folder but still does not see the drive to format the NVMe SSD 960 EVO drive from the boot USB sierra.

 

Pete.

Link to comment
Share on other sites

I've recently developed an app that now makes creating custom NVME SSDTs that work in conjunction with a HackrNVMeFamily-10_xx_x.kext simpler for those with little to no knowledge of ACPI programming. While the app was geared toward x99/z170 systems, the NVME portion should work with all motherboards that support NVMe devices (supported by Pike's NVME patches).
 
This custom SSDT still REQUIRES a spoofed HackrNVMeFamily-10_xx_x.kext. No exceptions.
 
Before running the app, some things you need to know:
1.) Is your NVMe's ACPI path complete (SB.PCIslot.device.leafnode -- example: SB.PCI0.BR1B.H000)?
Or a complete ACPI path, but behind a PCI bridge (SB.PCISlot.device.leafnode.address -- example: SB.PCI0.PEG0.PEGP.0800)?
Or an incomplete ACPI path (SB.PCISlot.device.address -- example: SB.PCI0.POP4.0000)?
 
2.) Are you using a custom DSDT.aml in EFI/CLOVER/ACPI/patched?
- If you're using a custom DSDT.aml, then you'll need to search through it and make sure you don't have any _DSMs at or scoped to your NVME ACPI path
- If you're not using a custom DSDT.aml, then you'll only need this Clover DSDT patch, which will remove all the DSDT's _DSMs.

3.) Are any OEM SSDTs injecting a _DSM at your NVME's ACPI path?
- If so, you'll need to drop the SSDT. 
 
For more information about 2 and 3, please read Generic HackrNVMeFamily guide (steps 1-4 and 10-16b), which explain more about _DSMs within custom DSDT.amls/OEM SSDTs.
 
Downloading and running the app:
1.) You can download the latest version of ssdtGenApp by copying/pasting the following command in a terminal window:

cd ~/desktop && curl -OL https://github.com/mattcarlotta/ssdtGenApp/raw/master/ssdtGen.zip && unzip -qu ssdtGen.zip && rm -rf __MACOSX && rm -rf ssdtGen.zip 

You must initially run the program as a ROOT user otherwise you may receive an error when attempting to install IASL (after IASL has been installed, double clicking the ssdtGen.app will suffice). Enter the following command in a terminal window to run ssdtGen.app as a ROOT user: 

sudo $HOME/Desktop/ssdtGen.app/Contents/MacOS/ssdtGen

2.) Select "NVME" under the Build icon, then select the required checkboxes (complete ACPI, complete ACPI and behind a PCI bridge, or incomplete ACPI) and input your NVME's ACPI location:
 
For example, complete ACPI:

aSun881.png

For example, complete ACPI behind a PCI Bridge:

gghb7yV.png

For example, an incomplete ACPI:

vzSEf9f.png

3.) Click the Build icon and a NVME SSDT will be made for you (make sure it doesn't contain any errors):
TMJ3yMM.png
 
4.) Mount your primary drive with Clover Configurator, open the partition, then add the custom SSDT-NVME.aml to your EFI/CLOVER/ACPI/patched folder
 
 
5.) Run Rehabman's patch_nvme script, build a spoofed HackrNVMeFamily-10_xx_x.kext, then place it in S/L/E, L/E or EFI/CLOVER/kexts/other. 
For example:

./patch_nvme.sh --spoof

6.) Reboot and make sure the NVME is properly injected. 
 
qEGslVR.png
3D1EWg1.png
 
If you have any questions/comments/issues with the app, don't post about it here, instead please post here

  • Like 4
Link to comment
Share on other sites

I bought a Plextor m8pe nvme ssd without doing my homework and it's seeming to not be supported (yet). Anyone know different? So far I've only tried the kext patches from http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?p=2356251but Disk Utility never shows the drive.

 

Is the drive showing up in Disk Utility a pre-requisite for the drive every working? Is there any reason try rehabman's process without the drive showing up in DU?

Link to comment
Share on other sites

I bought a Plextor m8pe nvme ssd without doing my homework and it's seeming to not be supported (yet). Anyone know different? So far I've only tried the kext patches from http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?p=2356251but Disk Utility never shows the drive.

You may need one of those patches + the patches for 4k block size (best to use class-code spoof and HackrNVMeFamily).

You should also see if you can change the native block size to 4k (see link from patch-nvme README).

 

Is the drive showing up in Disk Utility a pre-requisite for the drive every working?

Yes, of course.

 

Is there any reason try rehabman's process without the drive showing up in DU?

Yes, of course.

The drive will not show until you have the kext correctly patched...

Link to comment
Share on other sites

You may need one of those patches + the patches for 4k block size (best to use class-code spoof and HackrNVMeFamily).

You should also see if you can change the native block size to 4k (see link from patch-nvme README).

 

Hi RehabMan, thanks for your response and thanks for all the help you give the community! Since I posted I've done a lot of research and trial and error and still had no luck despite lots of anecdotal evidence that the Plextor M8Pes are working. I have the M.2 2280 256GB M8Pe(G) with heatsink.

 

I'm doing everything on a 10.12.4 system. I identified the PCI address using a Windows boot on the same system. I was able to create the HackrNVMeFamily kext with --spoof (it auto-detected 10.12.4 and the md5s matched). Each time I try something I boot up and go into disk utility and use that as the baseline for whether the current patch worked. The ssd has never shown up.

 

First I tried JUST applying the various versions of the 0x10 -> [0x01|0x02|0x04|0x08] patch to IONVMeFamily in config.plist via clover configurator. None of those worked on it's own.

 

Then I followed the full guide for NVMe including identifying the PCI address via Windows, building the ssdt, using MacIASL to build a SSDT-NVMe-ssd.aml, replacing the PCI address in both places from the template with my PCI address, compiling/saving/moving to booted EFI/CLOVER/acpi/patched; no custom dsdt so added the rename _DSM -> XDSM acpi/DSDT patch; verifying that no other aml in my acpi/patched had a name conflict with my pci address; and creating the --spoofed HAackrNVMeFamily.kext and copying it to EFI/CLOVER/kexts/other where all my kexts are (it created with 10_12_4 appended to the name but i renamed it).

 

According to another post the m8pe does not support 4k so I didn't add any patches about 4k? I'm not entirely clear on this part. 

 

So to sum up what I've tried is

- using just the 0x10 -> [0x01|0x02|0x04|0x08] patches: 4 reboots no love

- creating SSDT-NVMe-ssd.aml in acpi/patched and --spoofed HackrNVMeFamily.kext in kexts/other and _DSM -> XDSM rename patch and all four variants of 0x10 rename patch: 4 reboots no love

- saw a post that if you have HackrNVMeFamily the 0x10 -> 0x01 patches should be against HackrNVMEFamily instead of IONVMeFamily so tried that, four reboots no love

 

I'll try to understand what you mean when you say "you should see if you can change the native block size to 4k". As I stated another post earlier in this thread seemed to indicate the m8pes don't support 4k. I guess that involves booting linux? 

 

Would love a bit more of your time to point me in the right direction. Or if someone else with one of these plextor M8Pes could chime in with what is working for them. I don't want to do the 15 or 17 or whatever config.plist patches.

 

Thanks again, I appreciate your help!

Link to comment
Share on other sites

Hi RehabMan, thanks for your response and thanks for all the help you give the community! Since I posted I've done a lot of research and trial and error and still had no luck despite lots of anecdotal evidence that the Plextor M8Pes are working. I have the M.2 2280 256GB M8Pe(G) with heatsink.

 

I'm doing everything on a 10.12.4 system. I identified the PCI address using a Windows boot on the same system. I was able to create the HackrNVMeFamily kext with --spoof (it auto-detected 10.12.4 and the md5s matched). Each time I try something I boot up and go into disk utility and use that as the baseline for whether the current patch worked. The ssd has never shown up.

 

First I tried JUST applying the various versions of the 0x10 -> [0x01|0x02|0x04|0x08] patch to IONVMeFamily in config.plist via clover configurator. None of those worked on it's own.

 

Then I followed the full guide for NVMe including identifying the PCI address via Windows, building the ssdt, using MacIASL to build a SSDT-NVMe-ssd.aml, replacing the PCI address in both places from the template with my PCI address, compiling/saving/moving to booted EFI/CLOVER/acpi/patched; no custom dsdt so added the rename _DSM -> XDSM acpi/DSDT patch; verifying that no other aml in my acpi/patched had a name conflict with my pci address; and creating the --spoofed HAackrNVMeFamily.kext and copying it to EFI/CLOVER/kexts/other where all my kexts are (it created with 10_12_4 appended to the name but i renamed it).

 

According to another post the m8pe does not support 4k so I didn't add any patches about 4k? I'm not entirely clear on this part. 

 

So to sum up what I've tried is

- using just the 0x10 -> [0x01|0x02|0x04|0x08] patches: 4 reboots no love

- creating SSDT-NVMe-ssd.aml in acpi/patched and --spoofed HackrNVMeFamily.kext in kexts/other and _DSM -> XDSM rename patch and all four variants of 0x10 rename patch: 4 reboots no love

- saw a post that if you have HackrNVMeFamily the 0x10 -> 0x01 patches should be against HackrNVMEFamily instead of IONVMeFamily so tried that, four reboots no love

 

I'll try to understand what you mean when you say "you should see if you can change the native block size to 4k". As I stated another post earlier in this thread seemed to indicate the m8pes don't support 4k. I guess that involves booting linux? 

 

Would love a bit more of your time to point me in the right direction. Or if someone else with one of these plextor M8Pes could chime in with what is working for them. I don't want to do the 15 or 17 or whatever config.plist patches.

 

Thanks again, I appreciate your help!

HackrNVMe and Pike's IONVMeFamily patches are all about 4k->512.

Unfortunately, I cannot identify your mistake without details... (EFI/Clover, images of paths in Windows, 'lspci -nn' output from Linux, etc)

Link to comment
Share on other sites

What distro of linux are you using to check for 4k support?

 

 I tried Unbuntu 16.10 desktop  and the 

smartctl -a /dev/nvme0

 errors out with something like type unknown.  I noticed an option in usage to list supported types and NVMe is not one of the types supported.

Link to comment
Share on other sites

What distro of linux are you using to check for 4k support?

 

 I tried Unbuntu 16.10 desktop  and the 

smartctl -a /dev/nvme0
 errors out with something like type unknown.  I noticed an option in usage to list supported types and NVMe is not one of the types supported.

 

sudo?

Link to comment
Share on other sites

I did not understand yet one thing, but if I buy a ssd nvme with 4k i do not need any kext hack and do it all with the vanilla kext?

If the blocksize is 4k instead of 512, it negates the need for the large set of patches that change the block size assumptions in the kext from 4k to 512.

  • Like 1
Link to comment
Share on other sites

sudo?

ubuntu@ubuntu:~$ sudo smartctl -a /dev/nvme0
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/nvme0: Unable to detect device type
Please specify device type with the -d option.

Use smartctl -h to get a usage summary

ubuntu@ubuntu:~$ smartctl -d
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=======> ARGUMENT REQUIRED FOR OPTION: d
=======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test <=======

Use smartctl -h to get a usage summary

ubuntu@ubuntu:~$
Link to comment
Share on other sites

 

ubuntu@ubuntu:~$ sudo smartctl -a /dev/nvme0
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/nvme0: Unable to detect device type
Please specify device type with the -d option.

Use smartctl -h to get a usage summary

ubuntu@ubuntu:~$ smartctl -d
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=======> ARGUMENT REQUIRED FOR OPTION: d
=======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test <=======

Use smartctl -h to get a usage summary

ubuntu@ubuntu:~$

 

Probably no /dev/nvme0. Check with 'ls /dev'.

Also, you should look at your 'lspci -nn' output...

Link to comment
Share on other sites

Probably no /dev/nvme0. Check with 'ls /dev'.

Also, you should look at your 'lspci -nn' output...

Def /dev/nvme0 exists.

 

and I see it in lspci output

03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller [144d:a802] (rev 01)

Link to comment
Share on other sites

Def /dev/nvme0 exists.

 

and I see it in lspci output

03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller [144d:a802] (rev 01)

You might want to read here:

https://www.smartmontools.org/wiki/NVMe_Support

 

When I was gathering the same info on my Samsung 950 Pro, I found the wiki to be quite useful...

FYI: Last I checked, the 950 Pro cannot be switched to 4k. Assuming no firmware update has become available, I'm guessing your drive is the same.

  • Like 1
Link to comment
Share on other sites

Hi RehabMan. Thanks for your work on this tool.

 

I'm experiencing a super weird SSD issue with 10.12.4 and was wondering if you've experienced it before or know what might be causing it. I've got an Intel 600p 512GB NVMe that has worked flawlessly right up until the 10.12.4 update. It's running with the patched IONVMeFamily.kext and what I'm experiencing is that at completely random times - it could be a couple hours or a couple days or a week - the read and write speeds completely tank, all the way down to about 5MB/s! The system is completely unusable/sluggish at that point.

If I warm reboot, macOS boots back up and the drive is still immediately slow. If I cold reboot, the drive is speedy again at 600MB/s write and 1500MB/s read, but eventually - hours, days, a week - and I'm back to the same 5MB/s read and write issue.

Trim is enabled and the drive is error free, per intel's drive tools (smart/scan etc). The same issue happens when booting into safe mode. I'm not seeing anything strange in the logs.

I thought maybe it was overheating and therefore being throttled, but if I immediately boot into windows, the temp is below 50C, so normal.

I'm at a loss as to what is triggering this, this started happening immediately after updating to 10.12.4.

Any ideas? Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...