Contribute
Register

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

Status
Not open for further replies.
Joined
Jun 15, 2010
Messages
17
Motherboard
Dell Optiplex 760
CPU
Core 2 Duo
Graphics
onboard
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
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
 
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.
 
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

  • SSDT-DiscreteSpoof-EVO-Plus.aml
    173 bytes · Views: 494
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. :)
 
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
 

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
 
A simple way is to reformat the disk to NTFs format so that disk will not conflict with the Mac OS.
 
Status
Not open for further replies.
Back
Top