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

So I have a question..... I posted my DSDT previously.

There is a device listed called D080...... so my plan was to rename  H000 to GFX0 in the DSDT.... 

BUT..... the Nvidia 980Ti is listed under the D080 device.....

Then I try to rename D080 to GFX0..... but then things do not work at all anymore...

 

What is this D080 device???

 

Thanks, Mike

Link to comment
Share on other sites

So I have a question..... I posted my DSDT previously.

There is a device listed called D080...... so my plan was to rename  H000 to GFX0 in the DSDT.... 

BUT..... the Nvidia 980Ti is listed under the D080 device.....

Then I try to rename D080 to GFX0..... but then things do not work at all anymore...

 

What is this D080 device???

 

Thanks, Mike

You'll want to remove it. Otherwise, your GPU will default to there since H000 is missing. Forgot to mention this in my other post. Also, you'll want to rename to GFX1, not GFX0. GFX0 is unloaded during boot (Mac Pro 6,1).

These are results with an USB Sandisk Cruzer Extreme Pen (32Gb) using USB2 slot and USB3 slot

 

IMHO read write are too high but write value is right (pen is almost full of data so performance is slower)

Attached my config and clover/kext/10.12 used for this test

 

Ps.

Some kernel patches are not useful but I am testing also other things in it

It's the device. You can see some CrystalDisk tests to support that this particular drive can do ~100mb/s writes and ~200mb/s reads:

https://www.amazon.com/SanDisk-Extreme-Flash-Drive-SDCZ80-032G-G46/dp/B00DZPUOU8

 

Thank you for finding my next pen drive.  :hysterical:

Link to comment
Share on other sites

That worked perfectly... :)  :yes:  :thumbsup_anim:

 

I wonder since you mentioned regarding GFX1.... Is there a recommended device naming for Mac Pro 6.1?

 

So I can start to properly name the other devices as well.

 

Cheers, Mike

There are different naming conventions that can vary from board to board for the devices (IMEI vs HECI or HDEF vs ALZA). You can, if you wanted to, name it anything, unless it's being specifically utilized by a kext -- for example, SSDT-UIAC.aml needs device XHC to be named XHC. If you name it something unique, you just need to make sure all internal references to that location inside the DSDT.aml match to the device name (for example, _GPE._L01 references BR3A.H000, which needs to be changed to BR3A.H00Y), as well as making sure the external reference inside the SSDT matches the DSDT device's name. For example, since I changed _SB.PCI0.BR3A.H000 to _SB.PCI0.BR3A.H00Y in my DSDT.aml, I have to then reference it in the SSDT-BR3A.aml like so:

 External (\_SB_.PCI0.BR3A.H00Y, DeviceObj)

You can check out my SSDT post for more information (just look at the DSDT against the SSDT). You'll probably start to notice that your devices may be mapped to different locations (BR3A for my GPU versus BR3C for nmano's GPU).

Link to comment
Share on other sites

These are results with an USB Sandisk Cruzer Extreme Pen (32Gb) using USB2 slot and USB3 slot

 

IMHO read write are too high but write value is right (pen is almost full of data so performance is slower)

Attached my config and clover/kext/10.12 used for this test

 

Ps.

Some kernel patches are not useful but I am testing also other things in it

Good evening

To have all the disks declared in C610 / X99

How on the photo

Capture_d%E2%80%99%C3%A9cran_2017-01-10_

post-1181448-0-81744400-1485208998_thumb.png

Link to comment
Share on other sites

Successfully updated my Test Bench to 10.12.3 (in case you guys missed it, Apple just released 10.12.3).

 

With the exception of the Nvidia Web Driver, everything appears to be working.

 

Tried to change NVDAStartupWeb.kext info.plist from 16C to 16D... no luck, still broken. 

 

Will wait until Nvidia releases a new driver before fully testing.

Link to comment
Share on other sites

The SSDT-BR2A.aml is working in conjunction with the modified DSDT.aml. For example, if your manufacturer already has a _DSM method at that particular location, it'll overwrite the SSDT (not the case here). However, in the case of Mac 6,1, it'll unload BR2A.H000(GFX0) (hence the black screen at boot up as your GPU will be unloaded). By renaming it to BR2A.GFX1, it'll unload H000 (which doesn't exist in the modified DSDT.aml), then load GFX1.

 

The part that is renaming your GPU in SSDT-BR2A.aml:

                        "model", 
                        Buffer (0x34)
                        {
                            "NVIDIA GeForce GTX 680"
                        }, 

 

In the DSDT.aml, we've renamed H000 and H001 to H00Y(GFX1) and HDA1(HDAU) (this allows us to set up a placeholder in the DSDT for an SSDT injection):

                Device (H00Y)
                {
                    Name (_ADR, Zero)
                    Method (_SUN, 0, NotSerialized)
                    {
                        Return (SNUM ())
                    }
                }

                Device (HDA1)
                {
                    Name (_ADR, One)
                    Method (_SUN, 0, NotSerialized)
                    {
                        Return (SNUM ())
                    }
                }

So yes, you'll want it.

I read shilooh's guide to rename GPU in ssdt and he doesn't use it in conjunction with a DSDT..his guide explain how to rename GPU using his patches and a simple SSDT as template I created the SSDT following his suggestions but without a DSDT my graphic card is not renamed. So i would like to know if it's possible to inject the GPU only with SSDT.

Link to comment
Share on other sites

I read shilooh's guide to rename GPU in ssdt and he doesn't use it in conjunction with a DSDT..his guide explain how to rename GPU using his patches and a simple SSDT as template I created the SSDT following his suggestions but without a DSDT my graphic card is not renamed. So i would like to know if it's possible to inject the GPU only with SSDT.

Yeah, you can, but your GPU may end up in the Dxxx device located at the bottom of the device's tree (Mike Ranger mentions this above).

 

For example, this DSDT below only worked via ADGP Fix 1.3, but no longer worked for me in 10.12.2. I later tried to rename GFX0 to GFX1, but it didn't quite work out as expected because my device was then thrown inside D07C -- this device needs to be removed in order for GPU injection to work (you can either remove the device from the DSDT.aml by decompiling it to .DSL, then simply deleting the code pasted in the codebox below (your device name will/may be different, check your GPU's ACPI location tree!!!), then recompiling it, and saving it as .AML OR bypassing it via SSDT injection: Option 1 (some DSDT edits)  or Option 2(no DSDT edits) ):

                Device (D07C)
                {
                    Name (_ADR, 0xFFFF)  // _ADR: Address
                }

gziEGL5.png

 

An example of an untouched DSDT.aml with a D07C device located at the bottom of BR3A's device tree (if you don't want to touch or remove anything from the DSDT.aml, then you can utilize a SSDT):

fp4EpZC.png

Link to comment
Share on other sites

Hello everyone.

Without doubt, all your research, testing and effort are to be commended. But still, I do not realize the need to use so many SSDT's. In my EFI I only have one DSDT with all the available X-99 paches that I have been applying and testing and an SSDT for the PM. And the truth is that my system all works perfect. I have already done three or four updates from 12.2 to 12.3 (including all betas, of course) and since I edited FakeSMC (for wifi) and DSDT (for my graphic card) I did not lose the wifi, graphics or other hardware after the updates. And no, it's no exaggeration when I say that my system behaves like a real MacPro after every update. Soon I will do another update from 12.3 Beta 4 to 12.3 Final and the only problem I will probably have will be the need for a new web drive, but I have not had a black screen for a long time :) 

Link to comment
Share on other sites

Hello everyone.

Without doubt, all your research, testing and effort are to be commended. But still, I do not realize the need to use so many SSDT's. In my EFI I only have one DSDT with all the available X-99 paches that I have been applying and testing and an SSDT for the PM. And the truth is that my system all works perfect. I have already done three or four updates from 12.2 to 12.3 (including all betas, of course) and since I edited FakeSMC (for wifi) and DSDT (for my graphic card) I did not lose the wifi, graphics or other hardware after the updates. And no, it's no exaggeration when I say that my system behaves like a real MacPro after every update. Soon I will do another update from 12.3 Beta 4 to 12.3 Final and the only problem I will probably have will be the need for a new web drive, but I have not had a black screen for a long time :)

I've mentioned this previously, but I'll explain:

 

The advantage of having SSDTs versus one big modified DSDT is that modifying the SSDT is simpler than having to search through 59,189 lines of code. If you have an issue with a device not working, you'll only have to look through the SSDT, which is about ~100-200 lines or less. Or, in some instances, you don't even need to edit the DSDT, instead the SSDT combined with a kext does the work for you (see Rehabman's USBInjectAll). Also, the SSDTs get loaded in the ACPI table during boot... So if something doesn't quite work, you can see if your SSDT was even loaded from the DumpLog.txt (if it was, then you know there's an issue with the SSDT, if it wasn't, there may be a loader issue or you may need to use drop tables/sort order). Whereas if the DSDT has an issue, where's the problem located? At the device ACPI location? Somewhere scoped to the device's ACPI location? A method returning a bad value? So many variables... and again 59,000 lines of code, doesn't narrow anything down.

 

A hypothetical situation: Your heavily modified DSDT is corrupted, deleted or lost. You just lost ALL functionality to your devices... unless you saved a backup, you just lost all your work.

 

Or, in my case, a real occurrence: I'm building an app. I forgot to pull some files to my git master branch before I deleted a separate git branch. Instead of losing ALL my work, I only lost about ~2 hours worth of work because I have many different files, instead of one big file.

 

Also, as mentioned previously, since updating to 10.12.2, I was having issues where Nvidia Web Driver couldn't identify my GPU despite it being defined in the DSDT. A SSDT seemed to clear up the issue. One thing I've noticed is that everyone's setup, regardless of hardware, will act differently. Just because something worked for you, doesn't necessarily mean it'll work 100% across the board for everyone else. A rather unfortunate fact.

Link to comment
Share on other sites

Thanks for your enlightening answer, but of course, I always backup everything, especially from DSDT, and I only apply the changes if there are no compilation errors and if they work as I expect! And probably soon, I will have some difficulties (or not), as I am thinking of changing my GTX 960 for an RX480 since there is and probably will not be, Nvidia support for Pascal. But I say again that I appreciate the effort and dedication that you and others have been developing in relation to SSDTs. Only then do we walk forward (or not). A hug, my friend :P 

Link to comment
Share on other sites

Nvidia Web Driver is out: https://images.nvidia.com/mac/pkg/367/WebDriver-367.15.10.35f01.pkg
 
Testing done in 10.12.3:
✓ Audio over HDMI/DP 
✓ Bluetooth 
✓ CPU Power Management/Stepping
✓ Ethernet
✓ GPU recognition/usage
✓ NVMe recognition and R/W/E permissions (updated SSDT NVMe to 10.12.3)
✓ Sleep
✓ USB 2.0, 3.0, 3.1 recognition/usage
✓ WIFI 2.4ghz/5ghz
 
Need more time to determine if it's 100% stable, but so far, so good!
 
Kv8JKFa.png

  • Like 4
Link to comment
Share on other sites

As simple as this! Again everything perfect!

Update from 12.3 Beta 4 to 12.3 Final. Even the Nvidia Web Drive 12.2 edited from 16C to 16D, that I used in the Betas, worked perfectly with full acceleration after the update to 12.3 Final. Once again, everything stable and perfect here, even with my "skinny EFI" as I like it... :thumbsup_anim:  :P 

 

post-1313347-0-27274800-1485382490_thumb.png

post-1313347-0-91454100-1485382494_thumb.png

post-1313347-0-87399900-1485382502_thumb.png

post-1313347-0-25361200-1485382511_thumb.png

post-1313347-0-06201000-1485382514_thumb.png

  • Like 2
Link to comment
Share on other sites

Hey guys!

 

I got one issue i cant figure out. I have connected UAD Apollo Twin to my USB-C port with an adapter (works great).

But it only works if i power up the device before i boot OSX. I cant turn it on in OSX. Anyone know where to look? I have some bios settings for Thunderbolt. But i dunno what to do.

 

See specs in my signature.

Link to comment
Share on other sites

MacOS Sierra 10.12.4 beta (16E144f) does not work SpeedStep and turboboost. ((((

Even though this is not a topic for Sierra 12.4 Beta, I will complement what ACIDSky said, although each case is a case and what does not work well for some, works well for others. Actually, I have not tested it on my system yet.

BreBo from another Forum, said:

 

“Note that with macOS 10.12.4 Public Beta 1 kext injection doesn't work in Clover.

Use the below patch to fix kext injection and custom kexts can remain in the Clover kext folder (10.12 or Other) rather than in L/E or S/L/E.

 

1.    Code (Text):

    <key>KernelAndKextPatches</key>

    <dict>

        <key>KernelToPatch</key>

        <array>

            <dict>

                <key>Comment</key>

                <string>Kext injection allowed</string>

                <key>MatchOS</key>

                <string>10.12.4</string>

                <key>Find</key>

                <data>6CUAAADrBeieBQAA</data>

                <key>Replace</key>

                <data>6CUAAACQkOieBQAA</data>

            </dict>

        </array>

 

Also note that macOS 10.12.4 Public Beta 1 breaks the Nvidia Web Drivers even with modified NVDAStartup.kext to force the older drivers to load.”

  • Like 1
Link to comment
Share on other sites

Hey guys!

 

I got one issue i cant figure out. I have connected UAD Apollo Twin to my USB-C port with an adapter (works great).

But it only works if i power up the device before i boot OSX. I cant turn it on in OSX. Anyone know where to look? I have some bios settings for Thunderbolt. But i dunno what to do.

 

See specs in my signature.

Welcome to thunderbolt club  :)

The only way a thunderbolt (thunderbolt3/USB-c) peripheral (hd, raid or audio card) can work in osx is that it's attached and switched on at system boot. If you switch on or connect your thunderbolt peripherals when osx is started (same for windows) it will not be recognized.

It's not your issue but it's a common thunderbolt users issue. In my case i must switch on my clarett 2pre and then my hackintosh. Same for my raid....

Link to comment
Share on other sites

MacOS Sierra 10.12.4 beta (16E144f) does not work SpeedStep and turboboost. ((((

Unless you're developing an app for 10.12.4 or have issues with 10.12.3, you should not be using beta versions. 

  • Like 1
Link to comment
Share on other sites

Just another follow up to my boring videos (same test file, different USB):

 

USB 3.0 -- SSDT-UIAC.aml (confirmed same speeds with X99 Injector USB 3)

https://youtu.be/nG1bpBVNzM4

 

gjEUb84.png

 

 

As a side note, getting random reboots (USB mouse freeze, then reboot). Might be 10.12.2, might be SSDT, might be incompatible software. Will be swapping things in/out to track down problem.

Link to comment
Share on other sites

Welcome to thunderbolt club  :)

The only way a thunderbolt (thunderbolt3/USB-c) peripheral (hd, raid or audio card) can work in osx is that it's attached and switched on at system boot. If you switch on or connect your thunderbolt peripherals when osx is started (same for windows) it will not be recognized.

It's not your issue but it's a common thunderbolt users issue. In my case i must switch on my clarett 2pre and then my hackintosh. Same for my raid....

 

Can you tell me in which PCIE slot your thunderbolt card is?

What were the most important bios settings you applied?

 

Thanks, Mike

Link to comment
Share on other sites

It's in the third slot starting from the first near cpu slot. It's the only where it can works (i refer to Deluxe II).

About settings i changed only to legacy mode to allow osx to see peropherals. Everything else is not different from default values. Consider i've "4g decode£ enabled in bios. In this way i've no more allocation memory errors.

  • Like 2
Link to comment
Share on other sites

It's in the third slot starting from the first near cpu slot. It's the only where it can works (i refer to Deluxe II).

About settings i changed only to legacy mode to allow osx to see peropherals. Everything else is not different from default values. Consider i've "4g decode£ enabled in bios. In this way i've no more allocation memory errors.

 

I will try that as you have advised.... thanks....

I had my card in the lowest slot and it did not work....

Link to comment
Share on other sites

More testing in 10.12.2/10.12.3
 
Display port is broken. Black screen, no video signal. However, HDMI works perfectly fine though, weird. This could be the same issue I was having since before moving from DSDT to SSDT. Will do some more testing.
 
✖ Renamed AGD.kext => AGDP.kext => info.plist --- Failed
✖ Added EmuVariableUefi + nvram.plist --- Failed
✖ Switched from Mac Pro 6,1 to Mac 14,2 --- Failed
 
May have tracked down random reboot issue to Adobe products (specifically, their Application Manager/AdobeIPCBroker/Core Sync/CCLibrary/CCXProcess). Preliminary testing after uninstallation resulted in faster restarts/shutdowns and less micro-stuttering. 
 
✖ Reboot seems to occur when browsing in Chrome (10.12.2+) --- Went 36+ hours before random restart...

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (Code Signature Invalid)
Exception Codes:       0x0000000000000032, 0x00007fff843b3e03
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace CODESIGNING, Code 0x2

kernel messages:

VM Regions Near 0x7fff843b3e03:
    unused shlib __TEXT    00007fff843a8000-00007fff843ae000 [   24K] r-x/r-x SM=COW  system shared lib __TEXT not used by this process
--> __TEXT                 00007fff843ae000-00007fff843d5000 [  156K] r-x/r-x SM=COW  /System/Library/PrivateFrameworks/FMF.framework/Versions/A/FMF
    unused shlib __TEXT    00007fff843d5000-00007fff84449000 [  464K] r-x/r-x SM=COW  system shared lib __TEXT not used by this process
 

✓ Stepping back down to 10.12. Too unstable for me to run 10.12.x as a dev environment.

Link to comment
Share on other sites

I will try that as you have advised.... thanks....

I had my card in the lowest slot and it did not work....

It's mandatory in Asus X99 deluxe II the third slot...otherwise it will not work. For ex. in X99 Deluxe 3.1 is the fourth...same for E-WS. 

Link to comment
Share on other sites

 Share

×
×
  • Create New...