Jump to content
Vlada.

[HOW TO] Modification of AMD FB + Clover injection

392 posts in this topic

Recommended Posts

Advertisement

Thank you for this! Is there a chance of solving the 290x multi-screeen issues by following this?

 

Yes. Per example I got a problem with second DVI connector on Radeon 6850 HD which I was been able to fix by using this method.

Share this post


Link to post
Share on other sites

Yes. Per example I got a problem with second DVI connector on Radeon 6850 HD which I was been able to fix by using this method.

 

Well, I tried but unfortunately it seems this method is not enough for the 290x. I followed your tutorial and made a few patches for the Baladi personality (the only one in AMD8000Controller) but none of them seem to make any difference - boots fine with one screen, as soon as you plug another one in -> black screen.

 

It was worth a shot I guess :) Thanks for the effort, hopefully someone will figure this out one day.

 

I'm attaching my "notepad" from this, maybe it will be of use to someone: http://pastebin.com/zMJbg8xP

Share this post


Link to post
Share on other sites

There are several guides out there already for connector patching, but last time i had to patch a framebuffer I had to get the information from like 3 different places. Now it's all in one place. Thank you for such a comprehensive guide. 

Share this post


Link to post
Share on other sites

Well, I tried but unfortunately it seems this method is not enough for the 290x. I followed your tutorial and made a few patches for the Baladi personality (the only one in AMD8000Controller) but none of them seem to make any difference - boots fine with one screen, as soon as you plug another one in -> black screen.

 

It was worth a shot I guess :) Thanks for the effort, hopefully someone will figure this out one day.

 

I'm attaching my "notepad" from this, maybe it will be of use to someone: http://pastebin.com/zMJbg8xP

 

My 290X (ASUS 290X DirectCU II OC) results are the same as yours (came up with the exact same patch using this guide), however every time I try either DVI-D port it never works - just black screens on boot. DVI-D is the only output my monitor displays, so I'm stuck with it. What Clover settings do you use?

Share this post


Link to post
Share on other sites

My 290X (ASUS 290X DirectCU II OC) results are the same as yours (came up with the exact same patch using this guide), however every time I try either DVI-D port it never works - just black screens on boot. DVI-D is the only output my monitor displays, so I'm stuck with it. What Clover settings do you use?

 

Just barebone defaults with imac14,2 preset and trimenabler patch, no graphic injections.

Share this post


Link to post
Share on other sites

Thanks. Unfortunately, no matter what I do I can't get stable DVI-D output. Either the patch(es) cause black screens upon boot indicating the patch is a failure, or it boots normally with the glitchy DVI-D output causing me to put OS X to sleep then immediately wake it to workaround the DVI glitches.

Share this post


Link to post
Share on other sites

i dont understan in step 3,, 
where you get this code ? --- = First I’ll put the list of all types of connectors:

 

Connector Type LVDS 0 × 00000002 = 02 00 00 00 Note: Laptop Monitor

Connector Type DVIDL 0 × 00000004 = 04 00 00 00 Note: Dual Link DVI

Connector Type VGA 0 × 00000010 = 10 00 00 00

Connector Type SV 0 × 00000080 = 08 00 00 00

Connector Type DP = 0 × 00000400 00 04 00 00

Connector Type HDMI 0 × 00000800 = 00 08 00 00

Connector Type DVISL 0 × 00000200 = 00 02 00 00 Note: Single Link DVI

Share this post


Link to post
Share on other sites

Well, it seems like I am the first one to be successful and  praise your outstanding post:  (I did this for cosmetic fix in System Profiler )

 

I got an Asus R9 280x (R9280X-DC2T-3GD5), with vBIOS version: 6798HB.15.39.0.0.AS04 (113-AD47800-100) , I extracted the BIOS with GPU-Z v0.8.0. 

 

Like you calculated, i got similar results: 

Typ 1: DP:  	21 03 01 04
Typ 2: HDMI:	11 02 02 03
Typ 3: DVI-I:	12 04 03 02
Typ 4: DVI-I:	00 10 04 02
Typ 5: DVI-D:	10 00 05 06

My Graphics Card was using Futomaki before (atleast 1 Screen worked, i have a DSDT injection for the Framebuffer), so I decided to use it as well.  (But this shouldn't bother us in any way, since we are going to modify it completely anyways, right?).  Since i have two DVI- Dual-Link Screens connected, I wanted to have two DVI Lines, so my final Code was:

00040000  04030000  00010401  21030104  <- DP    (init. as last) 
04000000  14020000  00010101  12040302  <- DVI-I (init. as first)
04000000  14020000  00010200  10000506  <- DVI-D (init. as second)
00080000  04020000  00010300  11020203  <- HDMI  (init. as third) 

I used the Clover Method with Patch AMD7000Controller, and it is working like a charm. 

 

:thumbsup_anim: Thank you, thank you, thank you  :thumbsup_anim:

  

 

Share this post


Link to post
Share on other sites

Thanks for the great info..

My graphics card is Mobility Radeon 4870 on an Alienware m17xR2 .. i got it working with 10.10 Exotic pack QE/CI works .. my only issue that i can't get the HDMI connector to work thats the contents of the info.plisit file in the AMDFramebuffer.kext in S/L/E :

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>14A378</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>AMDFramebuffer</string>
<key>CFBundleGetInfoString</key>
<string>AMDFramebuffer 1.28.29 14796</string>
<key>CFBundleIdentifier</key>
<string>com.apple.kext.AMDFramebuffer</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>AMD Framebuffer</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.28.29</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.2.8</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>6A280m</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>14A359</string>
<key>DTSDKName</key>
<string>macosx10.10internal</string>
<key>DTXcode</key>
<string>0600</string>
<key>DTXcodeBuild</key>
<string>6A280m</string>
<key>IOKitPersonalities</key>
<dict>
<key>Framebuffer_Personality</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.kext.AMDFramebuffer</string>
<key>IOClass</key>
<string>AMDFramebuffer</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatch</key>
<string>display</string>
<key>IOProbeScore</key>
<integer>65050</integer>
<key>IOProviderClass</key>
<string>AtiFbStub</string>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOACPIFamily</key>
<string>1.2</string>
<key>com.apple.iokit.IOGraphicsFamily</key>
<string>1.3</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>1.2</string>
<key>com.apple.kext.AMDSupport</key>
<string>1.2.8</string>
<key>com.apple.kpi.bsd</key>
<string>8.0.0</string>
<key>com.apple.kpi.iokit</key>
<string>8.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>8.0.0</string>
<key>com.apple.kpi.mach</key>
<string>8.0.0</string>
<key>com.apple.kpi.unsupported</key>
<string>8.0.0</string>
</dict>
<key>OSBundleRequired</key>
<string>Safe Boot</string>
</dict>
</plist>
 
 
where should i add my FB Personalities to get the HDMI to work ... Thanks in advance :)

Share this post


Link to post
Share on other sites

Thanks for the tutorial! I always wanted to know how you made your driver packs. I'm happy I can do it myself now if needed.

However, I have an Asus 270 (non-X) and have some questions about some things that were not entirely clear from your guide:

 

- I understand the device id for the 270X is already in AMD7000Controller but the one for the 270 is not. I guess I can add it manually, but I was wondering if there was an update-proof way? What if I use clover's fakeid feature to set it to the 270X id (the hardware is very similar, no?). Will this work or will things go wrong.

 

- Do I still need to enable the "Inject ATI" feature in Clover? What does it do anyway... 

 

- Do I still need something like ATYinjector.kext from your original pack? What was its purpose, is it the same as the Clover Inject ATI? I always assumed if your id was in the kext the driver would be loaded and if the framebuffer is correct it would work. But apparently you needed this for the 270X so I'm curious what it does.

 

I was hoping you could help me figure out these details so I can get my 270 working with your method.

Thanks again!

Share this post


Link to post
Share on other sites

i dont understan in step 3,, 

where you get this code ? --- = First I’ll put the list of all types of connectors:

 

Connector Type LVDS 0 × 00000002 = 02 00 00 00 Note: Laptop Monitor

Connector Type DVIDL 0 × 00000004 = 04 00 00 00 Note: Dual Link DVI

Connector Type VGA 0 × 00000010 = 10 00 00 00

Connector Type SV 0 × 00000080 = 08 00 00 00

Connector Type DP = 0 × 00000400 00 04 00 00

Connector Type HDMI 0 × 00000800 = 00 08 00 00

Connector Type DVISL 0 × 00000200 = 00 02 00 00 Note: Single Link DVI

Those lines represents definitions of all connectors inside the code. This is just example or explanation so that you know what is what! 

 

Thanks for the tutorial! I always wanted to know how you made your driver packs. I'm happy I can do it myself now if needed.

However, I have an Asus 270 (non-X) and have some questions about some things that were not entirely clear from your guide:

 

- I understand the device id for the 270X is already in AMD7000Controller but the one for the 270 is not. I guess I can add it manually, but I was wondering if there was an update-proof way? What if I use clover's fakeid feature to set it to the 270X id (the hardware is very similar, no?). Will this work or will things go wrong.

 

- Do I still need to enable the "Inject ATI" feature in Clover? What does it do anyway... 

 

- Do I still need something like ATYinjector.kext from your original pack? What was its purpose, is it the same as the Clover Inject ATI? I always assumed if your id was in the kext the driver would be loaded and if the framebuffer is correct it would work. But apparently you needed this for the 270X so I'm curious what it does.

 

I was hoping you could help me figure out these details so I can get my 270 working with your method.

Thanks again!

 

1. Clover should do the trick with fake serial number, but you'll need to patch kexts too (AMD7000Controller.kext and AMDRadeonX4000.kext). Check the Step - 4 in this tutorial.

 

2. Yes. This option injects proper FB + in your case fake serial number

 

3. No. You don't need ATYInjector.kext from the pack. Inject ATI option via Clover do the same thing, so you don't need it.

Share this post


Link to post
Share on other sites

Thanks for this topic!

 

I have a XFX DD 270X on 10.9.5. I was using the default radeon FB, but was unable to get 2560x1440 DVI DL display+ 1920x1080 DVI/HDMI display working with it.

 

Loading FB via DSDT and can confirm it is loading.

 

Why can I not get my Dual-Link DVI working at full resolution? See below. Thanks!

Is it possible to get my mini-DPs working? Any ideas?

 

 

 

I have edited Futomaki to the following:

 

00 04 00 00 04 03 00 00 00 01 03 01 12 04 01 01 :: Not working mini-DP (tested with single-link active mini-DP to DVI cable)

00 08 00 00 04 02 00 00 00 01 02 00 11 02 03 03 :: Fully working HDMI

04 00 00 00 14 02 00 00 00 01 01 01 10 00 04 06 :: Dual Link DVI-I (only working as single-link; if I plug in my dual-link DVI then screen stays black, but IOreg shows attached display here)

00 02 00 00 14 00 00 00 00 01 05 00 21 03 06 05 :: Fully Working Single Link DVI-D

 

 

Not using:

00 04 00 00 04 03 00 00 00 01 04 01 22 05 02 02 :: Another DP (did not work when tried it earlier)

04 00 00 00 14 02 00 00 00 01 01 01 00 10 05 06 :: Dual Link DVI-I Internal KLDSCP_DAC1

 

 

EDIT:

Switched Futomaki to:

04 00 00 00 14 02 00 00 00 01 01 01 00 10 05 06 :: Dual Link DVI-I Internal KLDSCP_DAC1

00 08 00 00 04 02 00 00 00 01 02 00 11 02 03 03 :: HDMI no longer hotplugs, but will work as second monitor with the Dual-Link DVI plugged in!

04 00 00 00 14 02 00 00 00 01 01 01 10 00 04 06 :: Dual Link DVI-I (Now works as Dual-Link DVI-I if replugged after loading OS X) 

00 02 00 00 14 00 00 00 00 01 05 00 21 03 06 05 :: Single Link DVI-D no longer hotplugs, does not work at all with Dual-Link DVI plugged in and prevents Dual-Link DVI from showing anything.

 

 

 

 

radeon BIOS

PCI ID: 1002:6810
Connector at index 0
Type [@offset 43056]: DisplayPort (10)
Encoder [@offset 43060]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 43184]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 43066]: DisplayPort (10)
Encoder [@offset 43070]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 43211]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 43076]: HDMI-A (11)
Encoder [@offset 43080]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 43238]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 43086]: DVI-I (2)
Encoder [@offset 43090]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 43275]: 0x95, OSX senseid: 0x6
Connector at index 4
Type [@offset 43096]: DVI-I (2)
Encoder [@offset 43100]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 43275]: 0x95, OSX senseid: 0x6
Connector at index 5
Type [@offset 43106]: DVI-D (3)
Encoder [@offset 43110]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 43302]: 0x94, OSX senseid: 0x5
bash-3.2# ./redsock_bios_decoder < /Users/MacPro/Dropbox/XFX\ 270X\ Editing/XFX270X.rom 
270CDF22.W8 :

Redsock

Connector Object Id [19] which is [DISPLAY_PORT]
encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
Connector Object Id [19] which is [DISPLAY_PORT]
encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [2] which is [DVI_I]
encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [2] which is [DVI_I]
encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Connector Object Id [3] which is [DVI_D]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true

Share this post


Link to post
Share on other sites

Well, that was bittersweet.

 

I went back to a vanilla AMD7000Controller.kext out of curiosity and the DVI Dual Link + HDMI (or SL DVI) works OOB. Turns out my version of 223x chameleon was too old to make the default radeonFB work properly (I guess) =/

 

Installed 2510 and the defaultFB just works.

Share this post


Link to post
Share on other sites

I can't get the Radeon_bios_decode or redsock_bios_decode to work in terminal. I don't know what I'm doing wrong. But, I did look at the info.plist in the AMD7000Controller.kext package. it shows the following frame buffers and what appears to be 4 ports.

 

Z77N-WIFI, Sapphire r9 270x Vapor-X, 10.10.1, latest Chameleon w/DSDT

 

Hamachi

Ikura

IkuraS

Kani

KaniS

Maguro

MaguroS

Namako

 

It shows the same thing on my real iMac 12.1 Radeon 5750,  Hackintosh 10.9.5 backup, Hackintosh 10.10.1 current installation, also iMac 12,1 definition. I'm trying to patch my DSDT to fix the speed.

With 10.9.5 I get 2850 FPS in NovaBench and 1590 Lux. With 10.10.1 I get 701 FPS in NovaBench.

 

 

Share this post


Link to post
Share on other sites

I can't get the bios decoding files to work either, terminal gives me "Permission denied".

 

OSX will only boot if I have InjectATI enabled in Clover, and even then it finds the card properly, but reports it as 7MB in "About this Mac". If InjectATI is false, OSX starts the boot sequence, but then just reboots and repeats.

 

Any help for an XFX R9 270x Double D would be appreciated. System details in signature

Share this post


Link to post
Share on other sites

Vlada- Thank you for the post.

 

But Im a little slow on this stuff. If you have a bit of time and feel like checking my calculation I thank you more. Or anyone else that knows and is quicker.

 

Last login: Wed Jan 28 17:30:45 on console

Bee11islands-iMac:~ bee11island$ /Users/bee11island/Downloads/Decoders/radeon_bios_decode < /Users/bee11island/Desktop/Tahiti.rom 

ATOM BIOS Rom: 

SubsystemVendorID: 0x174b SubsystemID: 0x3001

IOBaseAddress: 0x0000

Filename: 249L0C00.U46

BIOS Bootup Message: 

Tahiti B0 XTL C38650 GDDR5 3GB 500e/150m                                    

 

PCI ID: 1002:6798

Connector at index 0

Type [@offset 43578]: DisplayPort (10)

Encoder [@offset 43582]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 43696]: 0x90, OSX senseid: 0x1

Connector at index 1

Type [@offset 43588]: HDMI-A (11)

Encoder [@offset 43592]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 43723]: 0x91, OSX senseid: 0x2

Connector at index 2

Type [@offset 43598]: DVI-D (3)

Encoder [@offset 43602]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 43750]: 0x92, OSX senseid: 0x3

Connector at index 3

Type [@offset 43608]: DVI-I (2)

Encoder [@offset 43612]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 43787]: 0x95, OSX senseid: 0x6

Connector at index 4

Type [@offset 43618]: DVI-I (2)

Encoder [@offset 43622]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 43787]: 0x95, OSX senseid: 0x6

Bee11islands-iMac:~ bee11island$ /Users/bee11island/Downloads/Decoders/redsock_bios_decoder < /Users/bee11island/Desktop/Tahiti.rom 

249L0C00.U46:

 

Tahiti B0 XTL C38650 GDDR5 3GB 500e/150m                                    

 

Subsystem Vendor ID: 174b

       Subsystem ID: 3001

Object Header Structure Size: 384

Connector Object Table Offset: 48

Router Object Table Offset: 0

Encoder Object Table Offset: 118

Display Path Table Offset: 12

Connector Object Id [19] which is [DISPLAY_PORT]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false

Connector Object Id [12] which is [HDMI_TYPE_A]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true

Connector Object Id [4] which is [DVI_D]

encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false

Connector Object Id [2] which is [DVI_I]

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

Connector Object Id [2] which is [DVI_I]

encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Bee11islands-iMac:~ bee11island$ 

 

 

Futomaki 

 

00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01 - DP

00 04 00 00 04 03 00 00 00 01 02 01 22 05 05 02 - DP

04 00 00 00 14 02 00 00 00 01 03 00 00 00 06 06 - DVI-DL

00 08 00 00 04 02 00 00 00 01 04 00 11 02 01 03 - HDMI

 

patched

 

00 04 00 00 04 03 00 00 00 01 01 01 12 04 01 01 - DP

00 02 00 00 04 02 00 00 00 01 01 01 10 00 04 06 - DVI-I

04 00 00 00 14 02 00 00 00 01 03 00 11 02 03 03 - DVI-D

00 08 00 00 04 02 00 00 00 01 04 00 22 05 02 02 - HDMI

 

 

 

Share this post


Link to post
Share on other sites

Well almost correct, but the order is wrong. You mast have 1,2,3,4 or you can switch all to zero. So change these parameters by picking one of two solutions...

 

00 04 00 00 04 03 00 00 00 01 01 01 12 04 01 01 - DP

00 02 00 00 04 02 00 00 00 01 01 01 10 00 04 06 - DVI-I

04 00 00 00 14 02 00 00 00 01 03 00 11 02 03 03 - DVI-D

00 08 00 00 04 02 00 00 00 01 04 00 22 05 02 02 - HDMI

 

1st solution

 

00 04 00 00 04 03 00 00 00 01 04 01 12 04 01 01 - DP

00 02 00 00 04 02 00 00 00 01 01 01 10 00 04 06 - DVI-I

04 00 00 00 14 02 00 00 00 01 02 00 11 02 03 03 - DVI-D

00 08 00 00 04 02 00 00 00 01 03 00 22 05 02 02 - HDMI

 

2nd solution 

 

00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 01 - DP

00 02 00 00 04 02 00 00 00 01 00 00 10 00 04 06 - DVI-I

04 00 00 00 14 02 00 00 00 01 00 00 11 02 03 03 - DVI-D

00 08 00 00 04 02 00 00 00 01 00 00 22 05 02 02 - HDMI

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By twikoffin
      Hello. My hardware is:
      AMD Athlon X2 7750 dual-core
      Gigabyte NVIDIA 8400GS 512MB ( [VGA] ,HDMI,DVI)
      Motherboard Gigabyte based on NFORCE without AHCI support (only IDE)
      I have successfully installed Mac OS Yosemite, Mavericks and El Capitan with AppleNFORCEATA.kext
      But I can't use it with Mac OS 10.8, don't know why, it just gives error and my internal HDD's are not appearing in Disk Utility.

       
         
    • By kamyar1979
      I have bought a 2nd hand AMD Radeon 7750 to fix my Mojave installation problems. Although the Vendor/Device Id is in AMD7000Controller.Kext, I get a black screen and with some changes a yellow screen. I can not find any useful information to fix that. All information are for High Sierra and older macOS versions. Is there any fix to resolve that? What if I buy an RX 650 for example?
    • By macinsane
      This is bothering me for a long time now: Why does Apple deliberately disables the the RX4xx, RX5xx capabilities to hardware encode HEVC and is using Intel Quicksync instead? Is it to make the iMacPro look better than it is? I stumbled over a thread at tony-mac where people are going a totally different road for Radeon graphics. Instead of hassling around with getting Quicksync to work, they proposed to activate the AMD hardware renderer for Polaris GPU's. I tried it out and it works...somewhat
       
      I used a dummy kext from that tomato thread and edited it, so that it enables the AMDU7V4 IOGVACodec like on Vega cards, switched to iMacPro1,1 SMBIOS from iMac18,3, disabled the IGPU and the results were astonishing:
      My 3:34min 4k50p film was rendered by FCP with HEVC in 2:34 minutes. Nearly half the time than with Quicksync! With the iMac18 SMBIOS and the "help" of Intel Quicksync it took FCP 4:41 minutes to get it done!
       
      The problem is: As soon as the "wrong" IOGVACodec is enabled H.264 encoding leads to Mojave crashing at once (be it FCP, QuickTime or Videoproc). Watching H264 material is fine, though. 
       
      If anyone has any idea how to handle this, I would be very grateful. I would even accept Mojave using software encoding for H264 if I could keep this amazing speeds on HEVC!
       
      BTW: Without IGPU on iMacPro1,1 SMBIOS no problem with DRM or iTunes, no need for Whatevergreen or Shiki. That is a bonus
      Ellesmere.kext.zip
    • By Ardit
      Possiedo questo Acer è vorrei sapere se secondo voi è possibile installare Mac OS high sierra partizionando un hdd e mantere anche Windows. Premetto che ne capisco poco. 
      Processore A9 9420 Scheda video condivisa Radeon R5. Se volete altri dettagli chiedetemi perché non so cosa altro aggiungere. 
    • By macinsane
      Mojave (and maybe High Sierra 10.13.6) on Asrock H370M-ITX/ac and getting RX560 or RX580 to work with Intel graphics for full hardware acceleration
       
      Components used:
       
      Core i7 8700, UHD 630
      Gigabyte Radeon RX560
      Wifi/BT BCM943602BAED (DW1830) M.2
      Sapphire Nitro RX 580
      Samsung PM961 NVMe SSD
       
      *This guide requires you to know the basics, meaning how to create a macOS install drive, installing and using Clover. There are great beginners guides out there! As always you need at least FakeSMC to boot, every other kext I’ve used is mentioned in the guide. For Mojave beta you need to be enlisted with your Apple-ID in Apple’s beta programme. What is described here may work for High Sierra 10.13.6, but I doubt it to be reliable. Even in early beta status (PB3) Mojave runs much more stable and smoother than High Sierra ever did for me.* 
       
      *UPDATE Mojave final*
      For the final release of Mojave you can use my attached Clover folder as a reference. If you don't have a Radeon RX 580 installed or you prefer WhatEverGreen just use the DSDT_no_graphics.aml and rename it to DSDT.aml. You need to have updated to BIOS V3.00 to use it.  
       
      *UPDATE*
      I've updated to BIOS Revision 3.00 which seems to work fine in contrast to 1.50. Already compiled a new DSDT and uploaded it alongside a new config.plist. You can use both if you like. If you don't use a RX 580 you need to edit the PEG0-PEGP section in the DSDT to adjust it to your graphics hardware. With this DSDT and config in place you'll only need FakeSMC, IntelMausiEthernet, USBinjectall plus XHCI-300-Injector, Lilu plus AppleALC for Sound. You can add Shiki for iTunes DRM playback if you like, I've uploaded the latest version as well. Avoid Whatevergreen at this time.
       
      UEFI-BIOS settings:
       
      The board comes with BIOS version 1.20, there is an update 1.50 on the Asrock website. Usually it is good to stay updated but in this case I’ll recommend to stay on 1.20, because the 1.50 version seems to be unstable and I had restarts upon wake and things like that I couldn’t get fixed even with dsdt patches. So I just downgraded to 1.20 which runs fine.
      Settings needed: Just the usual. Disable fast boot and security boot (everything Windows-related), disable vt-d and enable XHCI hand-off. Activate multi monitor support and set VRAM to 64MB to activate the Intel IGPU. From what I’ve read most people recommend 128MB but I find the 64MB setting to be more reliable, getting artifacts with settings below or above 64MB. 128MB may be needed for 4k support, though. *Update* BIOS V 3.00 with Mojave final release works fine with 128MB. As for nVidia users: You may have to disable the Intel graphics. I’m using an AMD card and that is the brand to go these days since Apple decided to work with AMD
       
      Clover and power management:
       
      I recommend upgrading to 4586. It seems that Aptiomemoryfix is now working with H370 chipsets. I stayed on OsxAptiomemoryfix2 together with Emuvariable and it works. Feel free to experiment. *Update* Now using OsxAptioV3.  
      For power management with your CoffeeLake cpu you can just tick plugin type within Clover or compile a ssdt with Pikeralphas script. Mojave reports my cpu correctly as Core i7 since PB3, before that it is just “Unknown” but that is just cosmetic. 
       
      Graphics:
       
      *UPDATE*
      Whatevergreen 1.2.3 now supports Displayport on Nitro RX580. Still recommend DSDT or SSDT port activation instead as it runs more reliable and faster than WhatEverGreen.
       
      *UPDATE*
      I updated to PB4/DP5 and switched to a Sapphire Nitro RX 580. You don't need to spoof Kabylake anymore, SMBIOS 18,x now works and can use my attached DSDT_RX580 for your convenience! You'll need it for displayport to work as primary display or else you get black screen on boot and can use only HDMI. Problems are the same as written below in the graphics section. If you need iTunes you absolutely need to keep a copy of the latest Shiki that is available, because it is discontinued. The newest WhatEverGreen-Fix (1.2.0/1.2.1) does not work! If you want to use Final Cut and don't need iTunes just stay away from Shiki or Whatevergreen. 
       
       
      This is the worst part. Getting the Radeon to run correctly alongside the Intel graphics took me weeks to figure out. 
       
      While RX570 and 580 run out of the box in most cases, the RX560 models often do not or at least not correctly. Apple even banned them from eGPU use. For my approach you cannot use “Whatevergreen.kext”, it simply didn’t work for me the way I needed it. Instead I added some fixes to my DSDT to set the correct number of ports used (DP, HDMI, DVI) and tell macOS to use the correct frambuffer. For those who are not into dsdt editing I added my DSDT, look at the “PEGP” section how it is done. This works for the RX560 using the “Acre” framebuffer, you can replace it with “Radeon”, that works too. Other cards need a different framebuffer and a different number of ports. You can do it!   BTW: Do not buy this Gigabytecard!!! It has some weird VBIOS on it, which caused me nightmares before I got the card to work! Buy a Sapphire card instead, they are used by Apple too.   
       
      To get full hardware acceleration for encoding videos you have to have the Intel graphics enabled alongside your AMD card. Problem is, you cannot have it running simply as a second graphics card but you’ll need to “hide” it, means telling macOS that it doesn’t have any display connectors. Otherwise you’ll have screen artifacts or in the worst case just constant crashes. This can be done by adding a certain ig-platform-id in Clover. If you use 59120003 the Intel graphics will not show up in system profiler but it is there. You can check it with iStats or HWMonitor or look if the Kaby Lake graphics kexts are loaded.  This ID makes the CoffeeLake UHD 630 to be recognized as a Kaby Lake gpu that has no display ports, is just used as a helper card.
       
      You’ll need it as a helper card for video encoding. That is what Intel graphics are used for in Macs, to support video encoding on the hardware side. You can check if hardware encoding is supposedly enabled by using MacX Video Converter Pro and VDADecoderChecker. If both say “yes” and “fully supported” this is a good start. But despite the widespread belief this doesn’t mean everything is set correctly! You now have to find out, how to get both cards working together. This is the moment where you have to choose between work and fun: Are you using FinalCut Pro for video editing or are you planning to use iTunes for entertainment? Up until this day (Mojave PB3 PB4/DP5, High Sierra 10.13.6) you cannot have both working correctly! I’ll show you how it is done both ways. 
       
      The best settings for Final Cut:
       
      Use the DSDT I’ve added with the respective AMD settings for the RX560 or modify them for your graphics card.
       
      Use SMBIOS for iMac17,1 (14,2 does work but picture over DP port is ugly, iMac 18,1/2/3 do not work *Since Mojave PB4 they do work at least for RX580*) in Clover.
       
      Have AppleIntelKBLGraphicsFramebufferInjector_3e9x.kextin your Clover/kexts/Other folder.
       
      Until Mojave PB2 (may work on High Sierra 10.13.6):
       
      Fake-ID 3E928086 plus ig-platform-id 59120003
       
      These are the correct setting when installing Mojave (usually you will start with PB1 as the full installer).
       
      For Mojave PB3 and higher:
       
      Fake-ID 59128086 plus ig-platform-id 59120003
       
      After upgrading to PB3 you will get a black screen with 3E92 fake id because PB3 introduces Coffee Lake kexts and macOS will use these kexts instead but that doesn’t work with our ig-platform-id. So you can download the update to PB3 but before installing it you’ll need to change the fake-id to a usual Kaby Lake id. While this didn’t work in High Sierra and the first two Mojave betas (meaning you didn’t get full hardware encoding) it is now magically working with PB3. It is safe to remove AppleIntelKBLGraphicsFramebufferInjector_3e9x.kext after upgrading to PB3.
       
      For Mojave PB4 and higher (including final release):
      Only add ig-platform-id 3E920003 and inject Intel = Yes in Clover, no need for spoofing a fake id anymore. Now iMac18,3 works best with AMD. Intel only users should use iMac18,1 instead.
       
      The best setting for iTunes and why it is the worst for Final Cut:
      Just do the same thing as for FinalCut, put Shiki.kext into your Clover/kexts/other folder and add -shikigva boot argument. You can use -shikigva=1 or 2 or 12 it will work either way. Now you can watch movies with iTunes, yay! But it has some sideeffects. You cannot use this setting when seriously editing with Final Cut.
       
      While this works by tricking macOS to use the IntelGraphics to play protected video content, it doesn’t seem to be the way real Macs are doing this. As soon as you open FinalCut you will notice (check this with iStats or HWMonitor) that the Intel graphics is not or only barely utilized under certain circumstances depending on your material. Instead cpu usage skyrockets, indicating that slow software rendering is used instead of hardware encoding through Intel graphics. To make it worse the Radeon still “thinks” there is an Intel graphics helping so it does not run at highest potential. 
       
      Wifi and Bluetooth
       
      *UPDATE*
      With Mojave PB4/DP5 Bluetooth stopped working with Rehabman's kext, my MagicMouse simply isn't connecting anymore. I decided to finally remove the card because handoff isn't working anyway these days with M.2 or NGFF bluetooth on High Sierra or Mojave (tried several ones "the internet" claims they would work oob but they do not ;)). That is what I wanted Bluetooth for. If you need Wifi I recommend you go with a cheap Wifi-only card, you don't need to pay 30 or 40 $ for dual cards that won't work the way they were intended to work. If you are on a micro ATX board and can have a graphics card plus PCIe Wifi/BT-card that actually connects to a physical USB port on you're board then you may be lucky enough to have handoff working as expected. I'm having a wifi repeater laying around with an ethernet port in case I may need wifi someday on my hack. 
       
      I swapped the Intel Wifi card that was coming with the mainboard plugged into the onboard M.2 port with a compatible Dell card. The DW1830 or BCM943602BAED. The wifi part runs half way out of the box, but if you want the card to appear as Apple AirportExtreme and set the country code according to your country you need to put FakePCIID_Broadcom_WiFi.kext into Clover/kexts/other and add some Clover kext-to-patches by PMHeart. 
       
      Name: com.apple.driver.AirPort.BrcmNIC
      Find: 75166644 3BA3581A 0000750C 4183FE04 7406
      Replace: 66906644 3BA3581A 00006690 4183FE04 6690
      Comment: AirPortBrcmNIC - PCIe in 10.13.x
       
      Name: com.apple.driver.AirPort.BrcmNIC
      Find: 4183FCFF 7435488D 55D0
      Replace: 66C70644 45EB348D 55D0    (*this is for DE country code, change for your need)
      Comment: BCM4352-Country Code 
       
      Bluetooth will work thanks to Rehabman’s kexts. You’ll need BrcmPatchRAM2.kext and BrcmFirmwareData.kext OR BrcmFirmwareRepo.kext. The Data.kext can be injected through Clover, just throw it into the kexts/other folder, the Repo.kext has to be installed in /Library/Extensions on your mac drive, it won’t work with Clover. I had issues with the Data.kext, Bluetooth was gone on every second or third reboot. The Repo.kext is more reliable, haven’t had any issues yet. I really don’t like the kexts to be installed in my system but I guess I have to live with it for the time being.
       
      Oh, handoff and continuity don’t work, doesn’t matter that system profiler shows them as enabled. At least it works in one way: the mac can handoff Safari pages to my iPhone, but not the other way around. Documents opened on my phone show up in the dock, but they are not loaded. 
      This issue is around since at least High Sierra and from what I’ve read Rehabman is not going to fix this, because he founds this features not worth it. I have to disagree, these are very convenient and valuable features if you work with desktop, laptop and tablet in different situations, I miss this capability very much!    
       
      Audio
       
      Audio works with Lilu.kext plus AppleALC.kext and you need to inject Layout ID=1 in Clover if you don't use a patched DSDT. For Mojave use the boot setting -lilubetaall to force the kexts to load. If you like to have DP or HDMI audio add a HDAU device to your dsdt (see mine for reference). There's an audio patch already added in my DSDT, so you don't need to use the Clover patch.
       
      Credits:
      Credits go to this great community! I hope I mentioned everyone in this guide whose insights made this hack possible. If I have forgotten someone please let me know!
       
       
       
       
      CLOVER_Mojave_Final.zip
×