Jump to content

[Guide] Mac OSX 10.12 and 10.13 with X99 Broadwell-E family and Haswell-E family


nmano
 Share

1,954 posts in this topic

Recommended Posts

put here your actual efi without boot folder

or if you want leave in acpi patched only ssdt.aml (cpu related) and delete all other if you have

in config.plist disable also oem_dsm flagging it

here my EFI without boot folder

EFI.zip

Link to comment
Share on other sites

try this

delete your clover folder and put this in place

from your kernel panic it seems you have nullcpupowermanagemn loaded maybe hidden in S/L/E?

 

If hang again delete dsdt.aml ( I have not modify it and your system is capable to boot without dsdt)

 

 

Have you installed Nvidia web driver? and have you patched apple device graphics policy?

My SSDT is injecting his GFX card, so he shouldn't need AGDP fix. However, if he doesn't have nvidia web driver installed, then that may explain the crashes.

 

@fedemax -- You also have nvda_drv=1 and nv_disable=1... that conflicts. 

 

You shouldn't be using the nvidia driver (nvda_drv=1) AND disabling the GPU (nv_disable=1) AND be using NvidiaWeb flag...

Link to comment
Share on other sites

Hello all,

 

Nvidia Webdrivers are indeed installed, though those kext are failing to load.

 

My apple device graphics patch come from here, downloaded last week.

 

Im installing sierra from scratch, hope i get rid of Nullcpupm

Link to comment
Share on other sites

Hello all,

 

Nvidia Webdrivers are indeed installed, though those kext are failing to load.

 

My apple device graphics patch come from here, downloaded last week.

 

Im installing sierra from scratch, hope i get rid of Nullcpupm

Here, use this CLOVER folder, it's a barebones set up (no power management, no USB setup, no bluetooth, etc)... want to eliminate as many variables as possible.

 

If this doesn't work, then you may need to install a legacy (instead of UEFI) version of Clover.

CLOVER.zip

Link to comment
Share on other sites

Ok, thanks mfc88 for the clover folder, it worked and im in!

 

Tho, after installing the latest, when I enable the nvda_drv=1 argument in cloverboot the screen (im on HDMI) turns black - no connection but the mac does the login.

(No USB3)

 

I will try now some basic dsdt config with the DSDT.aml the good nmano sent back.

post-1730521-0-91871800-1489516018_thumb.png

  • Like 1
Link to comment
Share on other sites

After the nightmare (which I could not resolve) with 10.12.4 beta 5, I reverted back to 12.3 and today I did the direct update for 12.4 beta 6
And to my amazement, everything is working perfectly stable, sleep, wake, sound after sleep... bla, bla... without any problems, just with only two XCPM patches and no VoodooTSCSynk, which apparently does not currently do anything in my EFI. For sound, I came to use the suggestion of PMHeart, with AppleHDA vanilla without ALC scripts and without codeccommander.kext that can be seen here:

http://www.insanelymac.com/forum/topic/313296-guide-mac-osx-1012-with-x99-broadwell-e-family-and-haswell-e-family/page-59?do=findComment&comment=2371527

Only problem, even without new Web Driver NV ;) 

 

post-1313347-0-67630500-1489517268_thumb.png

post-1313347-0-45899700-1489517280_thumb.png

post-1313347-0-72663200-1489517288_thumb.png

post-1313347-0-39230400-1489517294_thumb.png

post-1313347-0-32856700-1489517299_thumb.png

  • Like 1
Link to comment
Share on other sites

SUCCESS!

USB-3

Graphics & HDMI sound

PCI Devices

 

@Fabiosun

@mfc88

@nmano

Thank you bros

 

DSDT and ssdt placed in patched/config.plist and working!

What are you using for Graphics? My SSDT-BR3A.aml or AGDP fix?

Link to comment
Share on other sites

Neither, im using this patched DSDT.aml and ssdt.

 

I still can´t get my 5960x fully recognised, any suggestion?

For the processor, I do not know, maybe some specific ID (maybe the nmano can tell you), but to install the IPG you have to do it with the Pacifist App :yes: 
Link to comment
Share on other sites

Neither, im using this patched DSDT.aml and ssdt.

 

I still can´t get my 5960x fully recognised, any suggestion?

Install Pacifist for Mac, then open the Intel Power Gadget installer with Pacifist and click "Install Contents"

 

Note: you may need to drop DMAR in your config.plist->ACPI->DSDT drop tables, otherwise it might not show temps

  • Like 1
Link to comment
Share on other sites

Neither, im using this patched DSDT.aml and ssdt.

 

I still can´t get my 5960x fully recognised, any suggestion?

Just a warning, if and when you upgrade to 10.13, some of your DSDT injected devices (like USBs) may not work (due to broken config patches). I highly recommend looking into Rehabman's USBInjectAll+SSDT-UAIC.aml to eliminate the USB port limit patch (as Rehabman states, it should only be a temporary solution -- as of now, you're injecting all 30 ports and may only be using half or less). 

 

DSDT injection is great and all, but the less you rely on it to inject devices, the more flexible your system will be in terms of BIOS/OS upgrades.

 

This is why I prefer SSDTs as they patch ACPI tables without the need of a 50,000+ lines of code DSDT. 

Link to comment
Share on other sites

Just a warning, if and when you upgrade to 10.13, some of your DSDT injected devices (like USBs) may not work (due to broken config patches). I highly recommend looking into Rehabman's USBInjectAll+SSDT-UAIC.aml to eliminate the USB port limit patch (as Rehabman states, it should only be a temporary solution -- as of now, you're injecting all 30 ports and may only be using half or less). 

 

DSDT injection is great and all, but the less you rely on it to inject devices, the more flexible your system will be in terms of BIOS/OS upgrades.

 

This is why I prefer SSDTs as they patch ACPI tables without the need of a 50,000+ lines of code DSDT. 

Thanks mfc88, Ill keep it in mind.

 

Tomorrow i´ll give it a try, but first i wanna fix all the xpcm to get some speedstep

my 5960x is stuck @ 3ghz

 

Hope is feasible

Link to comment
Share on other sites

Thanks mfc88, Ill keep it in mind.

 

Tomorrow i´ll give it a try, but first i wanna fix all the xpcm to get some speedstep

my 5960x is stuck @ 3ghz

 

Hope is feasible

Generate a new SSDT.aml like so (if you get any errors/warnings from the sddtPRGen's console POST THEM)...

 

1. Configure system with appropriate MAC 6,1 SMBIOS(should already be set up).

 

2. Open Terminal and download Piker Alpha's ssdtPRGen.sh

curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh

3. That will download ssdtPRGen.sh to your user directory. The next step is make it executable with:

chmod +x ~/ssdtPRGen.sh

4. For default SSDT generation with xcpm enabled, type:

sudo ~/ssdtPRGen.sh -x 1

Once again, if you get any errors/warnings from the sddtPRGen's console, POST THEM!

((I have a pretty good hunch that you're going to be missing FrequencyVectors.))

 

Otherwise, you can find the file in: ~/Library/ssdtPRGen/ (you only want the SSDT.aml) and then copy/paste it in EFI->CLOVER->ACPI->patched.

  • Like 1
Link to comment
Share on other sites

On that note, no mo' DSDT.aml.

QmDzuQ6.png

 

Bad DSDT.aml, bad!

 

How to only use SSDTs (non-DTGP and without using a modified DSDT.aml):

 

-If you want to rename a device and inject properties (for example, changing ALZA to HDEF and injecting properties)...

 

In our vanilla DSDT.aml, it'll look something like this:

            Device (ALZA)
            {
                Name (_ADR, 0x001B0000)  // _ADR: Address
            }

Then we'll be swapping out ALZA for HDEF via a SSDT-ALZA.aml:

DefinitionBlock ("", "SSDT", 1, "mfc88", "HDEF", 0x00003000)
{
    Device (_SB.PCI0.HDEF) // device that will be injected (replacing _SB.PCI0.ALZA)
    {
        Name (_ADR, 0x001B0000)  // _ADR: Address !!IMPORTANT, MUST LOOK INSIDE DSDT (look above) TO FIND ADDRESS!!
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method // this is how we'll be injecting our device properties
        {
            If (LEqual (Arg2, Zero)) // if Arg2 equals Zero 
                Return (Buffer (One)
                {
                     0x03 // then return 0x03 (path not found)                
                })
            }

            Return (Package (0x0A) // else if Arg2 not equal to Zero, return device properties... // 0A bytes or { 2 bytes per property(x5) = 10 decimal or 0A hex) } 
            {
                "model", 
                Buffer (0x19)
                {
                    "Realtek Audio Controller"
                }, 

                "hda-gfx", 
                Buffer (0x0A)
                {
                    "onboard-1"
                }, 

                "layout-id", 
                Buffer (0x04)
                {
                     0x01, 0x00, 0x00, 0x00                         
                }, 

                "compatible", 
                Buffer (0x0D)
                {
                    "pci8086,8d20"
                }, 

                "PinConfigurations", 
                Buffer (One)
                {
                     0x00                                           
                }
            })
        }
    }

    Name (_SB.PCI0.ALZA._STA, Zero)  // _STA: Status is set to 0 and the device will be removed (replaced with HDEF)
}
 

- If you want to keep the device name, any devices/methods nested inside of it, and... well... keep the device as is, but still want to inject device properties into it (for example, injecting a _DSM into the device SAT1):

 

In our vanilla DSDT.aml, it'll look something like this:

            Device (SAT1)
            {
                Name (_ADR, 0x001F0002)  // _ADR: Address
                OperationRegion (IDER, PCI_Config, 0x40, 0x20)
                Field (IDER, AnyAcc, NoLock, Preserve)
                {
                    PFT0,   1, 
                    PIE0,   1, 
                    PPE0,   1, 
                    PDE0,   1, 
                    PFT1,   1, 
                    PIE1,   1, 
                    PPE1,   1, 
                    PDE1,   1, 
                    PRT0,   2, 
                        ,   2, 
                    PIP0,   2, 
                    PSIT,   1, 
                    PIDE,   1, 
                    SFT0,   1, 
                    SIE0,   1, 
                    SPE0,   1, 
                    SDE0,   1, 
                    SFT1,   1, 
                    SIE1,   1, 
                    SPE1,   1, 
                    SDE1,   1, 
                    SRT0,   2, 
                        ,   2, 
                    SIP0,   2, 
                    SSIT,   1, 
                    SIDE,   1, 
                    PRT1,   2, 
                    PIP1,   2, 
                    SRT1,   2, 
                    SIP1,   2, 
                    Offset (0x08), 
                    UDM0,   1, 
                    UDM1,   1, 
                    UDM2,   1, 
                    UDM3,   1, 
                    Offset (0x0A), 
                    PCT0,   2, 
                        ,   2, 
                    PCT1,   2, 
                    Offset (0x0B), 
                    SCT0,   2, 
                        ,   2, 
                    SCT1,   2, 
                    Offset (0x14), 
                    PCB0,   1, 
                    PCB1,   1, 
                    SCB0,   1, 
                    SCB1,   1, 
                    PCCR,   2, 
                    SCCR,   2, 
                        ,   4, 
                    PUM0,   1, 
                    PUM1,   1, 
                    SUM0,   1, 
                    SUM1,   1, 
                    PSIG,   2, 
                    SSIG,   2
                }

                Method (GPIO, 4, NotSerialized)
                {
                    If (LEqual (Or (Arg0, Arg1), 0x00))
                    {
                        Return (0xFFFFFFFF)
                    }
                    ElseIf (And (LEqual (Arg0, 0x00), LEqual (Arg1, 0x01)))
                    {
                        Return (0x0384)
                    }

                    Return (Multiply (0x1E, Subtract (0x09, Add (Arg2, Arg3))))
                }

                    ... and so on with more code AND nested devices... 

Then, instead of zeroing it out, we'll reference it as external, then inject a _DSM method at the device's ACPI path via a SSDT-SAT1.aml:

DefinitionBlock ("", "SSDT", 1, "toleda", "AHCIController", 0x00000000)
{
    External (_SB_.PCI0.SAT1, DeviceObj)    // referencing the device in our DSDT.aml

    Method (_SB.PCI0.SAT1._DSM, 4, NotSerialized)  // injecting a _DSM method at the device's ACPI path in our DSDT.aml
    {
        If (LNot (Arg2)) // if Arg2 is !true (not true === !true) -- LNot negates the argument's value (for example, if arg2 is true, then the result will be NOT true (!true), if arg2 is false, then NOT false(!false))
        {
            Return (Buffer (One)
            {
                 0x03 // then return 0x03 (path not found)                                          
            })
        }

        Return (Package (0x0E) // else if Arg2 is !false (not false === !false), return device properties... // 0E bytes or { 2 bytes per property(x7) = 14 decimal or 0E hex) }
        {
            "AAPL,slot-name", 
            Buffer (0x09)
            {
                "Built In"
            }, 

            "built-in", 
            Buffer (0x05)
            {
                "0x00"
            }, 

            "name", 
            Buffer (0x16)
            {
                "Intel AHCI Controller"
            }, 

            "model", 
            Buffer (0x2F)
            {
                "Intel 99 Series Chipset Family SATA Controller"
            }, 

            "compatible", 
            Buffer (0x0D)
            {
                "pci8086,8d02"
            }, 

            "device_type", 
            Buffer (0x10)
            {
                "AHCI Controller"
            }, 

            "device-id", 
            Buffer (0x04)
            {
                 0x02, 0x8D, 0x00, 0x00                         
            }
        })
    }
}
 
Generating a boot.log via Clover Configurator to check SSDT injection status:

5:772  0:000  === [ ACPIPatchedAML ] ====================================
5:772  0:000  Unsorted
5:772  0:000  Inserting SSDT-BR1B.aml from EFI\CLOVER\ACPI\patched ... Success
5:772  0:000  Inserting SSDT-XOSI.aml from EFI\CLOVER\ACPI\patched ... Success
5:772  0:000  Inserting SSDT.aml from EFI\CLOVER\ACPI\patched ... Success
5:772  0:000  Inserting SSDT-XHC.aml from EFI\CLOVER\ACPI\patched ... Success
5:772  0:000  Inserting SSDT-UIAC.aml from EFI\CLOVER\ACPI\patched ... Success
5:773  0:001  Inserting SSDT-SPSR.aml from EFI\CLOVER\ACPI\patched ... Success
5:773  0:000  Inserting SSDT-SMBS.aml from EFI\CLOVER\ACPI\patched ... Success
5:773  0:000  Inserting SSDT-SAT1.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-LPC0.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-HECI.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-GLAN.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-EVSS.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-BR3A.aml from EFI\CLOVER\ACPI\patched ... Success
5:774  0:000  Inserting SSDT-ALZA.aml from EFI\CLOVER\ACPI\patched ... Success
  • Like 4
Link to comment
Share on other sites

((I have a pretty good hunch that you're going to be missing FrequencyVectors.))

 

Otherwise, you can find the file in: ~/Library/ssdtPRGen/ (you only want the SSDT.aml) and then copy/paste it in EFI->CLOVER->ACPI->patched.

i do indeed, value is 0

Link to comment
Share on other sites

Usually when it stops there it's a CPU issue (not always). 

 

I suggest starting from scratch and not using someone else's EFI folder. Do me a favor and install the latest clover: https://sourceforge.net/projects/cloverefiboot/

In EFI->CLOVER->Drivers64 -- Replace OsxAptioFixDrv-64.efi with this 20000_OsxAptioFixDrv-64.efi.zip or with this: OsxAptioFix2Drv-free2000.efi

!!!Only use one, not both!!!

 

Create a new config.plist...

 

In config.plist, under Boot, boot arguments, check:

- verbose (-v)

- npci=0x3000

- nv_disable=1

 

In config.plist, under Graphics:

- Inject nvidia => checked

 

In config.plist, under KernelAndKextsToPatch:

KextsToPatch
Name: IOPCIFamily
Find: 4881FB00000040
Replace: 4881FB00000080
Comment: 5960X 10.12 Brumbaer

KernelToPatch (optional if causing random reboots on OS entry)
Find: 554889E5415741564155415453504189D64189F74889FB4585FF0F84
Replace: C34889E5415741564155415453504189D64189F74889FB4585FF0F84
Comment: reboot fix 10.12 © Pike R. Alpha

In config.plist, under RT variables:

Bootconfig => 0x28

CsrActivConfig => 0x67

 

In config.plist, under SMBIOS:

Use the magic wand and create a Mac Pro 6,1 SMBIOS

 

In config.plist, under System Paramenters:

Injects Kexts => Yes

System ID => checked

 

And you'll want to add Voodootsync, FakeSMC and IntelMausiEthernet to your EFI->CLOVER->kexts->10.12 folder...

 

Note: This removes a lot of functionality, but we'll work our way to a better hack in small steps!

 

If you're still having problems, when at the Clover boot screen (not loading up the OS), dump your ACPI tables (press F4 then wait 5 seconds). Then you're going to need to mount the drive and grab the entire EFI folder and paste it here.

Many thanks Mfc88 !!!

 

Unfortunately I can't try these recommendations, because I found that my motherboard is not working correctly, so very probably my supplier will replace it.

When it will be done I'll come back to you again.

 

Thanks a lot again for your help!

 

Good luck.

Link to comment
Share on other sites

DTGP is a Apple method, see Acpi tables Real Macs
iMac17,1
MaLd0n 2017-03-15 às 11.01.09.png
The good difference between SSDT and DSDT is that you use a SSDT ready and only change inject the device you want, Even without having any knowledge.
Dont need 15 SSDTs, need one DSDT, if u need 1 SSDT is Pike Work
There is no difference 
other than the ease of ctrl C + ctrl V and changed ;)
The Hackintosh dont need Vanilla DSDT, need Vanilla System with full DSDT or SSDT edit
The both work, no difference

On that note, no mo' DSDT.aml.

How to only use SSDTs (non-DTGP and without using a modified DSDT.aml):

  • Like 1
Link to comment
Share on other sites

Hi

Are you happy of your basic booting system? :-)

 

Hey Fabiosun, I do I do, thanks 4 your help..

 

Well I did everything you stated, ssdt generated with piker alpha ssdtprgen.sh and after with the Vectorsedit.sh..

 

But the count is still 0 and IPG stuck @3.30, tho xcpm patches working fine and the ssdts..

 

Any idea?

post-1730521-0-04168400-1489590072_thumb.png

post-1730521-0-65313800-1489590190_thumb.png

post-1730521-0-38826500-1489590191_thumb.png

Link to comment
Share on other sites

 

DTGP is a Apple method, see Acpi tables Real Macs
iMac17,1
The good difference between SSDT and DSDT is that you use a SSDT ready and only change inject the device you want, Even without having any knowledge.
Dont need 15 SSDTs, need one DSDT, if u need 1 SSDT is Pike Work
There is no difference 
other than the ease of ctrl C + ctrl V and changed ;)
The Hackintosh dont need Vanilla DSDT, need Vanilla System with full DSDT or SSDT edit
The both work, no difference

 

The difference is in the amount of code you have to work with...

 

57,143 lines(DSDT):

s9Zp0qa.png

 

30 lines if counting each new line as its own (SSDT):

QaEtYxP.png

Link to comment
Share on other sites

@Fabiosun, yes to all

 

Interestingly enaugh when I boot from the USB Drive Install macosx where I have accidentally put the dreaded nullpcipmmngKext

it seems working, but just that, PCIdevices and gpu are not to find anywhere

post-1730521-0-63304400-1489591738_thumb.png

Link to comment
Share on other sites

@Fabiosun, yes to all

 

Interestingly enaugh when I boot from the USB Drive Install macosx where I have accidentally put the dreaded nullpcipmmngKext

it seems working, but just that, PCIdevices and gpu are not to find anywhere

WHOA WHOA, why are you using my SSDTs in your ACPI patched folder!?

 

Those are for my particular set up (Asus x99 USB 3.1), not yours(Asrock). You'll want to remove them as your ACPI paths may be different (also, they're not needed if everything is injected into a modified DSDT.aml).

 

Also, you didn't post what warnings/errors you got from the ssdtPRGen, so I have no clue if you need something else to get it to work properly. That aside, I'd also recommend 14,2 vectors since you're using Haswell-E. 

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...