Contribute
Register

[GUIDE] Getting R9 290/390 (non-X) to work on Sierra (10.12) AND High Sierra (10.13)

Status
Not open for further replies.
Joined
Dec 21, 2016
Messages
5
Motherboard
MSI Z97S Krait Edition
CPU
Core i5 4570
Graphics
AMD R9 390 (8GB)
EDIT: (OCTOBER 2017) A NEW GUIDE IS BEING WRITTEN FOR USERS OF HIGH SIERRA (10.13).
IT WILL BE COMING SOON!!!!
CHECK THIS POST IN ABOUT A WEEK.
Below is the Sierra (10.12) guide:


Right, hello everyone! I've spent the last few days looking up some information regarding the status of using an R9 390 GPU on macOS Sierra 10.12. Now I have been successful, I am going to tell you all how I did it, as the web seems to lack any proper documentation or support for the R9 390 GPU on Sierra. (bear with me, I'm new here, apologies if this is in the wrong place.)

There are various methods out there for the 390X/290X cards, but for users with the NON-X cards, things have been hard. Please note, this has not been tested to work on the 290 cards, but judging from the drivers from Yosemite and El Capitan, I assume this guide works for 290 users too. (not yet confirmed, though.)

Special thanks to 'Loco Massa' for his helpful guide! http://www.insanelymac.com/forum/topic/315027-amd-r9-390-framebuffer-issue-on-1012-sierra/
Some of my guide consists of the method he wrote, so please check his guide out too!

**READ CAREFULLY- This guide is as simple as it can possibly be, but don't miss anything out!**

Before explaining my method, you might want to know these things:
  • As of now, this fix only allows you to use ONE MONITOR via HDMI or DVI.
  • DisplayPort support is broken, from what I've tested.
  • Other GPU's from other manufacturers may have different results.
  • This was tested on the PowerColor PCS+ R9 390 (8GB)
In order for this to work, your BIOS MUST BE SET to use the iGPU (Intel Integrated Graphics) upon boot with 128m shared memory, so macOS can initialise the main 390 GPU while loading. For some users, this might result in having a totally *blank* boot sequence, and the display will only begin to work when at the Login Screen. To be able to see the boot sequence from the BIOS up until Clover UEFI, I would recommend taking advantage of your monitors 2nd input (if available) and connecting your monitor to BOTH your 390 and your onboard iGPU (2 cables, one monitor) which will enable you to switch to the 390 GPU when macOS has finally booted, when the iGPU has auto-disabled itself. Or, simply unplug your monitor from the iGPU and into the 390 GPU when you think macOS has loaded. Either way, your 390 MUST NOT be initialised at all by the BIOS, or else this fix does not work.

Now, here's the method:
  1. Open the Clover 'config.plist' with TextEdit or Clover Configurator.
  2. ENABLE 'InjectATI'.
  3. Set the FBName to Baladi.
  4. Save the config, then exit.
  5. Perform this command to gain access to AMD8000Controller.kext. (remember to replace <username> with your actual username, without brackets)
    Code:
    sudo chown <Username> /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller
  6. Open AMD8000Controller.kext/Contents/MacOs/AMD8000Controller with a Hex Editor like Hex Fiend.
    Code:
    sudo open -a "Hex Fiend" /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller
  7. Find these hex values using the Find tool, aka, Command+F:
    Code:
    00040000 04030000 00010300 00000000 12040303 00000000 00040000 04030000 00010100 00000000 11020101 00000000 00040000 04030000 00010200 00000000 21030202 00000000 00040000 04030000 00010400 00000000 22050404 00000000 00040000 04030000 00010500 00000000 10000505 00000000 00040000 04030000 00010600 00000000 20010606 00000000
  8. Replace that hex chunk with these values:
    Code:
    00080000 04020000 00010101 00000000 22050403 00000000 00040000 04030000 00010200 00000000 12040101 00000000 00040000 04030000 00010300 00000000 10000205 00000000 00040000 04030000 00010400 00000000 20010306 00000000 04000000 14020000 00010500 00000000 11020504 00000000 00040000 04030000 00010600 00000000 20010606 00000000
  9. Save the file.
  10. Fix the file's permissions so Root can access it
    Code:
    sudo chown 0:0 /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOs/AMD8000Controller
  11. Open AMDRadeonX4000.kext
    Code:
    sudo nano /System/Library/Extensions/AMDRadeonX4000.kext/Contents/Info.plist
  12. Find the following text:
    Code:
    <key>IOPCIMatch</key>
    <string>0x67B01002</string>
  13. Add in the ID: 0x67B11002 so it looks like this:
    Code:
    <key>IOPCIMatch</key>
    <string>0x67B01002 0x67B11002</string>
  14. Save the file by pressing Control+O and then press Enter.
  15. Exit by pressing Control+X
  16. Perform a similar process for AMD8000Controller.kext- open it.
    Code:
    sudo nano /System/Library/Extensions/AMD8000Controller.kext/Contents/Info.plist
  17. Find this text:
    Code:
    <string>AMD8000Controller</string>
    <key>IOPCIMatch</key>
    <string>0x45001002 0x46001002 0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 0x67B01002</string>
  18. Add 0x67B11002 so it looks like this:
    Code:
    <string>AMD8000Controller</string>
    <key>IOPCIMatch</key>
    <string>0x45001002 0x46001002 0x66401002 0x66411002 0x66461002 0x66471002 0x66501002 0x66511002 0x665C1002 0x665D1002 0x67B01002 0x67B11002</string>
  19. Save the file by pressing Control+O and then press Enter.
  20. Exit by pressing Control+X
  21. Delete the prelinked-kernel cache:
    Code:
    sudo rm /System/Library/PrelinkedKernels/prelinkedkernel
  22. Delete the Kernel Cache:
    Code:
    sudo rm /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
  23. Rebuild the prelinked-kernel cache:
    Code:
    sudo kextcache -system-prelinked-kernel
  24. Rebuild the kernel cache:
    Code:
    sudo kextcache -system-caches
  25. Reboot, and hope that it's all working!
Just to remind you, in order for this to work, your BIOS MUST BE SET to use the iGPU (Intel Integrated Graphics) upon boot with 128m shared memory, so macOS can initialise the main 390 GPU while loading. For some users, this might result in having a totally *blank* boot sequence, and the display will only begin to work when at the Login Screen.

Enjoy! I hope this guide helped someone!
 
Last edited:
Hi, I want share my experience with this card. In 10.12.2, no need to change there kexts.

Just put FB= Radeon, and Fake ID 0x67B01002, just like in El Capitan.

My system fully working with those methods. My LuxMark shows 16000 and full 1050MHZ which is not working with your methods in 10.12.1

I know it was pain to find out the right edit in kexts. But no need to edit in 10.12.2

I hope this helped others.

GL!
 
Hi, I want share my experience with this card. In 10.12.2, no need to change there kexts.

Just put FB= Radeon, and Fake ID 0x67B01002, just like in El Capitan.

My system fully working with those methods. My LuxMark shows 16000 and full 1050MHZ which is not working with your methods in 10.12.1

I know it was pain to find out the right edit in kexts. But no need to edit in 10.12.2

I hope this helped others.

GL!
I tried this method and it didn't work for me. It worked for me back in El Capitan but not in macOS Sierra. I'm running a Sapphire Nitro R9 390. I'm also running 10.12.2, are there any other configurations you're running that made it work for you?
 
I tried this method and it didn't work for me. It worked for me back in El Capitan but not in macOS Sierra. I'm running a Sapphire Nitro R9 390. I'm also running 10.12.2, are there any other configurations you're running that made it work for you?
I did clean install 10.12.2 and then worked.
 
I did clean install 10.12.2 and then worked.
Sorry, just to clarify. A clean install of 10.12.2, clover install, setting the FBName=Radeon and FakeID=0x67B01002 worked for you? Do you have InjectATI=True?
 
Sorry, just to clarify. A clean install of 10.12.2, clover install, setting the FBName=Radeon and FakeID=0x67B01002 worked for you? Do you have InjectATI=True?
Yes!! InjectATI=True and I did not even touch any kexts.
 
Screen Shot 2017-01-13 at 9.48.54 PM.png
Screen Shot 2017-01-13 at 9.47.27 PM.png
Yes!! InjectATI=True and I did not even touch any kexts.
Oh, bios setting >>select 'IGFX' or 'iGPU' I am using two monitors, so everything is fine like charm.
Screen Shot 2017-01-13 at 9.47.27 PM.png
View attachment 230279
 
Thanks for sharing the guide. Does this also work for xfx 390?
 
Thanks for sharing the guide. Does this also work for xfx 390?
Yes, this works with any R9 390 card.
Has it worked for you? Please share your results! :)
 
Status
Not open for further replies.
Back
Top