Contribute
Register

[Success] Bortoni's GA-Z270-HD3 | i7-7700k | Radeon RX560 | NVMe

Status
Not open for further replies.
Joined
Dec 22, 2010
Messages
102
Motherboard
GA-Z270-HD3
CPU
i7-7700k
Graphics
RX 560
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Bortoni's Build High Sierra 10.13.1:
i7-7700K - GA-Z270-HD3 - ASUS RX 560 - NVMe SSD

Components

Intel i7-7700K Processor
https://www.amazon.com/dp/B01MXSI216/?tag=tonymacx86com-20

Noctua NH-U12S CPU Cooler
https://www.amazon.com/dp/B00C9EYVGY/?tag=tonymacx86com-20

Gigabyte GA-Z270-HD3 Motherboard
https://www.amazon.com/dp/B01NAK6CG2/?tag=tonymacx86com-20

RAM: Ballistix Sport LT 16GB Kit (8GBx2) DDR4 2666 MT/s
https://www.amazon.com/dp/B06XJ663W7/?tag=tonymacx86com-20

ASUS Radeon RX 560 Overclocked 2GB Graphics Card
https://www.amazon.com/dp/B072JKC2ZZ/?tag=tonymacx86com-20

Samsung 960 Evo 500GB NVMe M.2 SSD
https://www.amazon.com/dp/B01M20VBU7/?tag=tonymacx86com-20

Fenvi FV-T919 WiFi/BT4 PCIe Card / WTXUP Model# tx-ac94360-4

EVGA 650 GQ Semi Modular 650W Power Supply

https://www.amazon.com/dp/B017HA3SQ8/?tag=tonymacx86com-20

Thermaltake Core V31 Computer Case
https://www.amazon.com/dp/B00SOYF6YY/?tag=tonymacx86com-20



Comments

My previous hack was running OK, but was now going on 5+ years. Time for an upgrade. I wanted system with AMD graphics that would be natively supported.

Installation

Make a UniBeast USB


Use this guide to make the Unibeast USB.

Add the following items to your USB. I needed them:

1. Lilu.kext
2. WhateverGreen
3. EFI Mounter V3
4. Kext Utility

BIOS Settings For Installation
1. Save & Exit → Load Optimized Defaults
2. M.I.T. → Advanced Memory Settings Extreme Memory Profile(X.M.P.) : Profile1
3. BIOS → Fast Boot : Disabled
4. BIOS → Windows 8/10 Features : Other OS
5. BIOS → LAN PXE Boot Option ROM : Disabled
6. BIOS → Storage Boot Option Control : UEFI
7. Peripherals → Initial Display Output : PCIe 1 Slot
8. Peripherals → Super IO Configuration → Serial Port : Disabled
9. Peripherals → Super IO Configuration → Parallel Port : Disabled
10. Peripherals → Network Stack Configuration → Network Stack : Disabled
11. Peripherals → USB Configuration → XHCI Hand-off : Enabled
12. Chipset → Integrated Graphics : Disabled
13. Chipset → IOAPIC 24-119 Entries : Disabled
14. Save & Exit

Install High Sierra
Until you have all the fixes for iMessage, I recommend booting without internet enabled.

Use F12 at the BIOS screen to be able to select the USB to start the installer.

Follow these steps.

Take special attention about APFS. I have chosen NOT to use it for now. At step 12: "At the Boot Screen, choose High Sierra"

In the clover options and Set De-Init from Clover graphics options to be able to boot High Sierra.

MultiBeast
Install MultiBeast options.

Drivers
Disk -> Intel Generic AHCI SATA
Misc -> FakeSMC
Network->IntelMausiEthernet v2.3.0
USB -> Increase Max Port Limit 200 Series

Bootloader
Clover UEFI BootMode + Emulated NVRAM

Customize
Graphics Configuration -> Intel HD 6xx, Intel Graphics Fixup, AMD Graphics Fixup
System Definition -> iMac 18,3

Graphics
Technically speaking the RX 560 should just work with AMD Graphics Fixup:

Code:
<key>Graphics</key>
<dict>
    <key>RadeonDeInit</key>
    <true/>
</dict>

However, I've been having problems with Black Screen at boot. So, on my boot drive EFI/CLOVER/kexts/Other I added:
1. Lilu.kext
2. WhateverGreen

I then removed /Library/Extensions/Lilu.kext since I don't want 2 copies (this one was added by MultiBeast)

Ran Kext Utility. Reboot.

Change BIOS to enable iGPU
1. Chipset → Integrated Graphics : Enabled
2. Chipset → DVMT Pre-Allocated : 96M (if this setting isn’t showing then: 1. Set Integrated Graphics: Enabled. 2. Save and Exit BIOS by pressing F10. 3. Reenter BIOS upon computer restart and it should be there.

Boot without USB.

Tweaks

I recommend following these tweaks in order making sure each works before moving on to the next.

1. Audio
Now that we can fully boot from our drive we can install Audio with MultiBeast. Install ONLY the following:
Audio -> Realtek > ALC887/888b
Audio -> Realtek > 100 / 200 Series Audio

Install these 2 kexts as detailed here:
Find them here.
  • FakePCIID.kext
  • FakePCIID_Intel_HDMI_Audio.kext
Run Kext Utility. Reboot and Verify Audio.

If any issues refer to this thread for debugging

2. Native Power Management
As per post #1:
https://www.tonymacx86.com/threads/macos-native-cpu-igpu-power-management.222982/

Add the following DSDT fixes in your config.plist
1) Rename GFX0 to IGPU

Code:
   <dict>
        <key>Comment</key>
        <string>Intel GPU PM. Rename GFX0 to IGPU</string>
        <key>Find</key>
        <data>R0ZYMA==</data>
        <key>Replace</key>
        <data>SUdQVQ==</data>
    </dict>
2) In my case my RX 560 was in PEGP. Need to rename to GFX0

Code:
<dict>
        <key>Comment</key>
        <string>Rename PEGP to GFX0 (Graphics Card)</string>
        <key>Find</key>
        <data>UEVHUA==</data>
        <key>Replace</key>
        <data>R0ZYMA==</data>
    </dict>

3) Add SSDT-XCPM.aml to Clover: EFI/Clover/ACPI/Patched/

Reboot and Verify with IOReg that X86PlatformPlugin loaded.


3. USB Port Limit
In Multibeast we added "Increase Max Port Limit 200 Series." In reality we do not want this on as it's a work around that can cause issues. A proper fix is required. I followed this guide.

On the GA-Z270-HD3 I found the following information:

Code:
The F_USB30_1 header on the mother board:
SS01 / HS01      USB3 (front right of my case)
SS02 / HS02      USB3 (front left of my case)

The F_USB30_2 header on the mother board:
SS05 / HS05
SS06 / HS06

HS10     USB2 port rear top next to PS2 port
HS09     USB2 port rear top next to HS10

SS07 / HS07     Rear USB3 right under HDMI
SS08 / HS08     Rear USB3 right NEXT to SS07

SS03 / HS03     Rear USB3 right under SS07
SS04 / HS04     Rear USB3 next to SS03

HS12: USB2 port Motherboard USB1 small header (F_USB1)
HS14: USB2 port Motherboard USB2 small header (F_USB2)
USR1: ?
USR2: ?

This is a total of 24 ports. We need to reduce this to 15. So for me, I'm not using F_USB30_2 so I removed them. That's only 4 so need to remove more. Remove USR1 and USR2 since I could not find them at all. I chose to remove HS14 and kept HS12 just in case I need it in the future.

Created a custom SSDT for this modification: SSDT-UIAC.aml. I added a couple of more fixes related to USB in this SSDT for USB charging (more on this below). The SSDT-UIAC.aml goes in EFI/Clover/ACPI/Patched/


With this added you can REMOVE the following from your config.plist:

Code:
<array>
        <dict>
            <key>Comment</key>
            <string>change 15 port limit to 26 in XHCI kext</string>
            <key>MatchOS</key>
            <string>10.13.x</string>
            <key>Name</key>
            <string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
            <key>Find</key>
            <data>g32MEA==</data>
            <key>Replace</key>
            <data>g32MGw==</data>
        </dict>
    </array>

4. USB Charging
Our board does not have an Embedded Controller which is needed to set up USB charging. Because we use iMac 18,3 this is not enough, we must also add a fix for USBX.... so added this to SSDT-UIAC.aml

Code:
Device(_SB.EC)
{
        Name(_HID, "EC000000")
}
// USB power properties via USBX device
DefinitionBlock("", "SSDT", 2, "hack", "USBX", 0)
{
    Device(_SB.USBX)
    {
        Name(_ADR, 0)
        Method (_DSM, 4)
        {
            If (!Arg2) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                // these values from iMac18,3
                "kUSBSleepPortCurrentLimit", 0x0834,
                "kUSBSleepPowerSupply", 0x13EC,
                "kUSBWakePortCurrentLimit", 0x0834,
                "kUSBWakePowerSupply", 0x13EC,
            })
        }
    }
}

5. More Renaming...
To make our hack more closely match a real Mac, I added the following renamings

Code:
    <dict>
        <key>Comment</key>
        <string>Rename HECI to IMEI</string>
        <key>Find</key>
        <data>SEVDSQ==</data>
        <key>Replace</key>
        <data>SU1FSQ==</data>
    </dict>
    <dict>
        <key>Comment</key>
        <string>Rename SAT0 to SATA</string>
        <key>Find</key>
        <data>U0FUMA==</data>
        <key>Replace</key>
        <data>U0FUQQ==</data>
    </dict>

The following renaming ALSO requires SSDT-XOSI.aml so make sure to add them together before rebooting:

Code:
    <dict>
        <key>Comment</key>
        <string>change _OSI to XOSI</string>
        <key>Find</key>
        <data>X09TSQ==</data>
        <key>Replace</key>
        <data>WE9TSQ==</data>
    </dict>

6. Sleep
Added the following as per other guides:

Code:
sudo pmset -a autopoweroff 0

7. iMessages
Fix as per iDiot's Guide to iMessage


Summary
This hack is running perfectly so far.

What Works
iMessage
Audio
Sleep. Note I've sometimes noticed that I need to turn my monitor off / on after some sleeps.
QuickSync
USB3 all ports with Charging.
Everything I've tried is working.
Continuity / Handoff
Apple Watch Mac unlock

What Doesn't Work
Still optimizing RX560 / HD630 HW video decoding... See update #5


full


full

full

full


Update #1: See post #2.
Used USB audio and added a webcam for FaceTime and Siri audio.
Corrected ig-platform-id: should be 0x59120003

Update #2: See post #3
Stopped Using WhateverGreen and started using USB Audio and WebCam

Update #3: See post #8
Updated OS to 10.13.2

Update #4: See post #9
Installed Airport + BT Card. Handoff working

Update #5: See post #10
Graphics Tweaks.

Update #6: Update BIOS for Security issues: See post #25

Update #7: See post #26
Updated OS to 10.13.4

Update #8: See post #54
Mojave Prep

Update #9: See post
Update to Mojave

Update #10: See post
Update to 10.14.4 from 10.14.2

Update # 11: See post
Update to 10.14.6 (with supplemental updates) from 10.14.5
 

Attachments

  • SSDT-XCPM.aml
    187 bytes · Views: 662
  • SSDT-XOSI.aml
    162 bytes · Views: 603
  • config_no_serial.plist
    5.6 KB · Views: 593
  • SSDT-UIAC.dsl
    7.5 KB · Views: 601
Last edited:
Update #1

Correct ig-platform-id in plist to for QuickSync config.plist

ig-platform-id should be 0x59120003

I am trying to make my system more vanilla so I bought the following:

1) Vantec USB Stereo Audio Adapter
https://www.amazon.com/dp/B00T70MM32/?tag=tonymacx86com-20

2) Logitech c920 Webcam
https://www.amazon.com/dp/B006JH8T3S/?tag=tonymacx86com-20

I removed the following from my plist:
Code:
            <dict>
                <key>Comment</key>
                <string>t1-10.12-AppleHDA/Realtek ALC...</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                ihnUEQ==
                </data>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                AAAAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>t1-10.9-10.12-AppleHDA/Realtek ALC887</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                ixnUEQ==
                </data>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                hwjsEA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>t1-AppleHDA/Resources/xml&gt;zml</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                eG1sLnps
                </data>
                <key>Name</key>
                <string>AppleHDA</string>
                <key>Replace</key>
                <data>
                em1sLnps
                </data>
            </dict>

I restored an unpatched AppleHDA.kext

I then removed the following kexts:
  • FakePCIID.kext
  • FakePCIID_Intel_HDMI_Audio.kext
  • RealtekALC.kext

Run Kext Utility after all the kext changes.
 
Last edited:
Update #2

A) Stopped using WhateverGreen


To do this I enabled the following:

1) My BIOS config:
BIOS → Windows 8/10 Features : Windows 8/10
BIOS → CSM Support : Disabled

2) Ensure I've set up

Code:
<key>Graphics</key>
<dict>
    <key>RadeonDeInit</key>
    <true/>
</dict>

3) For cosmetic reasons patch the name of my graphics card

Code:
            <dict>
                <key>Comment</key>
                <string>Rename AMD R9 xxx to AMD RX560</string>
                <key>Find</key>
                <data>QU1EIFI5IHh4eA==</data>
                <key>Name</key>
                <string>AMD9500Controller</string>
                <key>Replace</key>
                <data>QU1EIFJYIDU2MA==</data>
            </dict>

B) Sleep Tweaks

1. Disable hibernate and remove ram file (if present) and other items that could affect sleep.
Code:
        sudo pmset hibernatemode 0
        sudo rm /var/vm/sleepimage
        sudo pmset -a autopoweroff 0
        sudo pmset -a standby 0
2. Disable Power Nap in energy control panel
3. config.plist: add "darkwake=no" to Boot -> Arguments
 
Many thanks for your detailed build description. I am thinking about a new build and have arrived at a component list which closely matches the hardware in your build. Your experience will, I am sure, be very helpful once I have saved up for the parts.

I do have one question for which I have not found an answer elsewhere in the forums despite several descriptions of successful RX560 builds. Are you able to drive multiple monitors from the RX560? Ideally I would like to drive 3 monitors as I can with my existing HD6870 but I realise you may not have 2 extra monitors you might test.
 
Many thanks for your detailed build description. I am thinking about a new build and have arrived at a component list which closely matches the hardware in your build. Your experience will, I am sure, be very helpful once I have saved up for the parts.

I do have one question for which I have not found an answer elsewhere in the forums despite several descriptions of successful RX560 builds. Are you able to drive multiple monitors from the RX560? Ideally I would like to drive 3 monitors as I can with my existing HD6870 but I realise you may not have 2 extra monitors you might test.

The card has 3 outputs: DP, HDMI, and DVI. So I’d need 3 monitors with these inputs.

I’m actually getting a 27” 4K monitor on Monday so I WILL be able to test this then!
 
Many thanks for your detailed build description. I am thinking about a new build and have arrived at a component list which closely matches the hardware in your build. Your experience will, I am sure, be very helpful once I have saved up for the parts.

I do have one question for which I have not found an answer elsewhere in the forums despite several descriptions of successful RX560 builds. Are you able to drive multiple monitors from the RX560? Ideally I would like to drive 3 monitors as I can with my existing HD6870 but I realise you may not have 2 extra monitors you might test.


So I've just tested with the 3 monitors. Could only drive 2 of them. I'm using the default RadeonFramebuffer so once I get around to patching the Acre buffer correctly I will try again.
 
Update #3: Update to 10.13.2

Updated to 10.13.2 using the App Store. I already had the latest lilu and since I use USB Audio no audio to try and fix. Everything went super smoothly.

Info on updating can be found here.
 
Last edited:
Update 4: Airport and Bluetooth

My Fenvi card arrived from China.... it turned out to NOT be a Fenvi card but rather a WTXUP Model# tx-ac94360-4.

Nevertheless... it works! Continuity and handoff are working with no changes. I can even unlock my hack with my Apple Watch.

In the process I found a mistake in my USB port SSDT. I have updated the info in post 1.

At first handoff wasn't working but it was an iCloud thing... followed this debug thread to get its working:

https://www.howtoisolve.com/handoff-not-working-on-ios-macos-high-sierra-watchos4/
 
Last edited:
Update 5: Graphics tweaks

1) I added an injector kext to enable HEVC HW decoding with my RX560 card. It should be placed in EFI/CLOVER/kexts/Other
2) Stopped using RadeonDeInit in my config file. Instead I'm now using a SSDT to do the deInit work as well as select the Acre framebuffer and rename my card. I then patched my connectors to match my particular card. See this thread for instructions.

Code:
        <key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Asus RX560 2G OC connector Patch</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                AAQAAAQDAAAAAQEBAAAAABECAgEAAAAAAAgAAAQCAAAA
                AQIAAAAAACEDBQQAAAAABAAAAAQCAAAAAQMAAAAAAAAA
                AwUAAAAA
                </data>
                <key>Name</key>
                <string>AMD9500Controller</string>
                <key>Replace</key>
                <data>
                AAQAAAQDAAAAAQEAAAAAABECBQEAAAAAAAgAAAQCAAAA
                AQMAAAAAACEDAwQAAAAABAAAABQCAAAAAQIAAAAAABAA
                BAUAAAAA
                </data>

Code:
<key>Graphics</key>
    <dict>
        <key>Inject</key>
        <dict>
            <key>ATI</key>
            <true/>
            <key>Intel</key>
            <true/>
        </dict>
        <key>RadeonDeInit</key>
        <false/>
        <key>ig-platform-id</key>
        <string>0x59120003</string>
    </dict>

With these changes everything has been working well. FCP X runs great too.
 

Attachments

  • X4250.kext.zip
    2.5 KB · Views: 421
  • SSDT-AMD.dsl
    4.8 KB · Views: 448
Status
Not open for further replies.
Back
Top