Contribute
Register

OS X Driver for NVMe M.2 Solid State Drives Released

Status
Not open for further replies.
My speeds are this limited because my board is PCI Express 2.0 x2 instead of gen 3 right? I am using the m.2 slot.
Can someone confirm if this is what is expected?
Z97S Krait.




Yut1SwMqQQiS_4EMKcfJoA.png

7_PrtoajTfG3lmjQ5HHqHg.png
 
looks like it. you might try a pci-e adapter if needing higher sequentials. i've been a bit hard on mine lately, though it shows close to a clean drive. in a 3.0 x 16 slot via an adapter:

tired drive.jpeg
 
Last edited:
All I had to do for my desktop was add an ACPI identity that matches the location of the PCI device. Nothing else was needed.

As can be seen from ioreg (and DSDT), your SSD is connected at _SB.PCI0.PEG1:
- the PEG1@1,1 (in IOService) corresponds to Device (PEG1) and _ADR=0x00010001
- all PCI devices are usually under PCI0 (as confirmed in DSDT)
- PCI0 is usually in scope _SB (as confirmed in DSDT, and IOACPIPlane of ioreg)

This should be all you need:
Code:
//SSDT-NVMe.dsl
// add an ACPI identity for built-in NVMe SSD at _SB.PCI0.PEG1.SSD0
DefinitionBlock("", "SSDT", 2, "hack", "nvme", 0)
{
    External(_SB.PCI0.PEG1, DeviceObj)
    Scope(_SB.PCI0.PEG1)
    {
        Device(SSD0)
        {
            Name(_ADR, Zero)
        }
    }
}
//EOF

Copy it to a new document in MaciASL, then save as SSDT-NVMe.aml (format ACPI Machine Language Binary).
Then copy to EFI/CloverACPI/patched (on your EFI partition).
If you're using config.plist/ACPI/SortedOrder, make sure it refers to this file (otherwise it won't load).
All I had to do for my desktop was add an ACPI identity that matches the location of the PCI device. Nothing else was needed.

As can be seen from ioreg (and DSDT), your SSD is connected at _SB.PCI0.PEG1:
- the PEG1@1,1 (in IOService) corresponds to Device (PEG1) and _ADR=0x00010001
- all PCI devices are usually under PCI0 (as confirmed in DSDT)
- PCI0 is usually in scope _SB (as confirmed in DSDT, and IOACPIPlane of ioreg)

This should be all you need:
Code:
//SSDT-NVMe.dsl
// add an ACPI identity for built-in NVMe SSD at _SB.PCI0.PEG1.SSD0
DefinitionBlock("", "SSDT", 2, "hack", "nvme", 0)
{
    External(_SB.PCI0.PEG1, DeviceObj)
    Scope(_SB.PCI0.PEG1)
    {
        Device(SSD0)
        {
            Name(_ADR, Zero)
        }
    }
}
//EOF

Copy it to a new document in MaciASL, then save as SSDT-NVMe.aml (format ACPI Machine Language Binary).
Then copy to EFI/CloverACPI/patched (on your EFI partition).
If you're using config.plist/ACPI/SortedOrder, make sure it refers to this file (otherwise it won't load).






Thanks for posting this, I've been searching all over for a code that works. How do you get this code to work for 2 nvme's?
 
Is there a tutorial anywhere for how to boot from NVME on High Sierra using the new drivers it comes with? thanks

edit couple weeks later: I found out that NVME works out of the box on Sierra using SSDs that support 4096 bytes block size (not Samsung those are fixed 512 bytes) so got a THNSN5512GPU7 a great MLC drive and used OZC SSD utility to format it to 4096 and all good on Sierra don't need to use High Sierra after all :)
 
Last edited:
I tried to install a 960 Evo today, used the NVME script, put the NVMeHackr kext into S/L/E and got a Kernel Panic while booting. Interestingly Clover boots El Capitan just fine without the M.2 SSD installed. I'm on 10.11.6.
 
would renaming the original IONVME or moving it out of S/L/E work?

Yes, but it will come back first update and cause panic.
Assuming you already have a USB with the Windows installer, on fast hardware, you can install Win10 in about 15 minutes.
 
Status
Not open for further replies.
Back
Top