Contribute
Register

How to disable specific NVMe M.2 slot via DSDT (hide unsupported 970 Evo Plus)

Joined
Jun 16, 2010
Messages
18
Motherboard
Dell Optiplex 760
CPU
Core 2 Duo
Graphics
onboard
Mac
Classic Mac
Mobile Phone
As you might know the Samsung 970 EVO Plus variant causes major issues on hackintosh installs. I want to keep it plugged into my motherboard for use in Windows. However, if it's plugged in, macOS is going to try to index this disk eventually and it will crash macOS even though it's not the main install disk.

Because I don't need this disk under macOS I thought it would be a good solution to somehow disable/hide the unsupported disk for macOS. I looked into doing this via Clover but couldn't find anything useful. I'm hoping I can disable the slot via a DSDT patch. I only want to disable one specific M.2 slot, the others should remain functional (I have another working M.2 disk). So disabling the driver is not an option.

I have very little experience with DSDTs and I have no idea how to do this. I recently created a USB injection patch using RehabMan's excellent guide, so I have some experience with the process, but no idea how to formulate the DSDT patch.

I have a Gigabyte Aurus Pro z390 motherboard. Below is a screenshot of IORegistryExplorer showing the other working drive (not the one I want to disable, that one is not plugged in yet).

399591



I would be very grateful if anyone can point me in the right direction. If anyone knowns of a non-DSDT solution to disable a specific slot (but not all slots) then that's also fine of course.

Thank you for your time
 
Joined
Jun 16, 2010
Messages
18
Motherboard
Dell Optiplex 760
CPU
Core 2 Duo
Graphics
onboard
Mac
Classic Mac
Mobile Phone
I have tried something like this, but to be honest I'm not 100% sure what I'm doing (the slot is _SB.PCI0.RP09):

Code:
DefinitionBlock ("", "SSDT", 2, "hack", "NoEvoPlu", 0x00000000)
{
    External (_SB_.PCI0.RP09, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.RP09.PXSX, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.RP09)
    {
        Scope (PXSX)
        {
            Name (_STA, Zero)  // _STA: Status
        }
    }
}
This doesn't do anything. I have many questions. Am I looking to disable _SB.PCI0.RP09 or _SB.PCI0.RP09.PXSX ? Do I need a DSDT or SSDT patch? Do I need to prefix the paths with a "\" or not, I see some examples with slash, some without.
 
Joined
Mar 20, 2019
Messages
3
Motherboard
Gigabyte Z390 DESIGNARE
CPU
i9 9900k
Graphics
XFX Vega 64 8G
I just fix it. this ****ing device, i have two of them(2 x 1T 970 EVO plus). This is I'm first time to write a ACPI patched file, so I didn't known all it means. but whatever it just works.

Code:
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0x00000000)
{
    Method (_SB.PCI0.RP09.PXSX._DSM, 4, NotSerialized)
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                0x03
            })
        }

        Return (Package (0x0A)
        {
            "name",
            Buffer (0x0A)
            {
                "#evo plus"
            },

            "IOName",
            "#evo plus",
            "class-code",
            Buffer (0x04)
            {
                0xFF, 0xFF, 0xFF, 0xFF
            },

            "vendor-id",
            Buffer (0x04)
            {
                0xFF, 0xFF, 0x00, 0x00
            },

            "device-id",
            Buffer (0x04)
            {
                0xFF, 0xFF, 0x00, 0x00
            }
        })
    }
}
 

Attachments

Joined
May 7, 2019
Messages
7
Motherboard
nuc8
CPU
i7
Graphics
integrated
Hi, do you mean that you got 970 EVO plus to work? I'm stuck with three 500GB, if you can shed some light that would be super awesome. :)
 
Joined
Mar 20, 2019
Messages
3
Motherboard
Gigabyte Z390 DESIGNARE
CPU
i9 9900k
Graphics
XFX Vega 64 8G
Hi, do you mean that you got 970 EVO plus to work? I'm stuck with three 500GB, if you can shed some light that would be super awesome. :)
sorry man. EVO plus can not worked in macOS. some one want to using it in windows but when boot into macOS it will cause the system to reboot, so we can just disabled it. In using this SSDT patch file you need to use IORegistryExplorer to find out which m.2 slot it is plugged into then change "_SB.PCI0.RP09.PXSX._DSM" to the right path.

Plan B
If you are not familiar with ACPI. you can using command line tool "sudo vifs" to block it volumes to auto mounted in macOS. by the way, do this as quickly as your can before the system reboot.

1. check out the volume's uuid
Bash:
diskutil info "your Windows Volume Label"
2. edit fstab
Bash:
sudo vifs
3. wirte down:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none ntfs noauto

4.press "esc" then press "shift + z" twice to exit vifs
 
Joined
Mar 20, 2019
Messages
3
Motherboard
Gigabyte Z390 DESIGNARE
CPU
i9 9900k
Graphics
XFX Vega 64 8G

Friends, great news after updating the firmware drive system is installed and running:clap::headbang:. Quick instructions on how to upgrade your firmware:
1-Download the new firmware on samsung site
2-Write it on the USB drive (I burned through Rufus on Windows 7)
3-Boot the system from the flash drive, you will fall into the installer for updating the firmware
4-Follow the instructions, after a successful upgrade, restart the computer
5-You can install the system on 970 evo plus
 
Joined
Nov 1, 2015
Messages
48
Motherboard
GA-Z170X-UD5
CPU
i7-6700K
Graphics
HD530
Mac
Mac Pro
Classic Mac
iMac, Power Mac
Mobile Phone
Android
Delete
 
Last edited:
Top