Patching support for NVMe SSDs on macOS Sierra
Welcome to Part V of building a macOS Sierra Hackintosh on an Asus X99 Deluxe II.
Table of Contents For This Series
- macOS Sierra on Asus X99 Deluxe II
- Creating a bootable macOS Sierra Installer
- Installing Clover on the macOS Sierra Installer
- EFI drivers & kexts for an Asus X99 Deluxe II Hackintosh
- Patching support for NVMe SSDs on macOS Sierra
- Configuring the clover config.plist for an Asus X99 Deluxe II
- Installing macOS Sierra via the Clover bootloader*
- Installing Nvidia Web Drivers on a Hackintosh*
- Generating a SSDT for CPU Power Management on a Hackintosh*
- Post Installation steps for macOS Sierra on an Asus X99 Deluxe II*
*: Not yet published
For this next part you will need a copy of Windows 10. Don’t worry as you wont need to actually buy a license. You can install Windows 10 without a product key by clicking “I don’t have a product key” during the installation process. You’ll only need Windows 10 for a couple of minutes and can get yourself a copy of Windows 10 from here.
Install Windows 10 onto the Non-NVMe SSD and open up the Device Manager. Go to the storage controllers section and find your two NVM Express Controllers. Open up the device properties, click the details tab and find the BIOS device name property.
You’ll want to write down the value for the BIOS device name for BOTH of your NVMe drives. We will use these BIOS device names to generate the SSDT-NVMe-Pcc.asl to inject some bogus class code. Open MaciASL and open a new file. Paste the following code.
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
External(${BIOS_NAME_FOR_NVMe_DRIVE_1}, DeviceObj)
Method(${BIOS_NAME_FOR_NVMe_DRIVE_1}, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return(Package()
{
"class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
"built-in", Buffer() { 0 },
"compatible", Buffer() { "pci144d,a801" },
"IOName", "pci144d,a801",
"name", Buffer() { "pci144d,a801" },
})
}
External(${BIOS_NAME_FOR_NVMe_DRIVE_2}, DeviceObj)
Method(${BIOS_NAME_FOR_NVMe_DRIVE_2}._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return(Package()
{
"class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
"built-in", Buffer() { 0 },
"compatible", Buffer() { "pci144d,a801" },
"IOName", "pci144d,a801",
"name", Buffer() { "pci144d,a801" },
})
}
}
Replace the sections for the bios name appropriately. Next save this as SSDT-NVMe-Pcc.asl into CLOVER/ACPI/patched on the mounted EFI volume.
The EFI volume should now look like the following.