Contribute
Register

Mojave HD7870 3x Displays

Status
Not open for further replies.
Joined
Dec 10, 2012
Messages
30
Motherboard
Custom G5
CPU
Intel i7 2600
Graphics
Sapphire HD7870 GHz Edition
Mac
  1. MacBook Pro
Classic Mac
  1. Power Mac
Mobile Phone
  1. iOS
Hi everyone

I'm in need of some desparate help & advice.
My same hardware set has been operating perfectly for years, under every version of OSX since Mountain Lion.

I've recently been forced to upgrade to an HD7870 in order to move up to Mojave, due to the Metal Support requirements.
My 3x monitors need to be driven off this GPU, on Mojave.

At first, only 1 screen would work (HDMI or MiniDP), & the 2nd (DVI) would continuously blink on & off with a black screen. Plugging in a 3rd would just (sometimes) take this behaviour onto the new screen, & switch off the original 2nd screen..

Going off other posts, I put it to sleep & woke it up again, which turns on the 2nd screen (DVI) straight away.

I eventually got the 7870 to output to two screens from boot (DIV & HDMI, or DVI & 1 DP) by enabling internal graphics, set to Enable (not auto) & init display to PCIE (not auto).

Others have been saying Internal needs to be the init display- but I found no difference, other than not seeing anything until the desktop loads. So I switched init back to PCIE.

I've tried using every combination injectAti & DeInit, & tried combinations without using it.
I have whatevergreen & lilu in my Clover/Others folder, but I don't think they're making any difference, as nothing has seemed to have changed since before I had them there.
-wegbeta & -liluallbeta flags don't seem to make any difference.

I went through every single display profile / display personality, 1 by 1, & only 3 will give any output- Futomaki, Hamachi & Aji.

The card defaults as Futomaki & it seems most stable & responsive there- But I still can't get a 3rd display to trigger.
It shows as "AMD Radeon HD 7xxx Series 2048MB" & System Report detects 2 screens by name.
Clover reports it as a 6818.
:banghead:

I decided to stay here, then look at tweaking other areas. Then I switched OS to Windows 8 (H-something?) & disabled CSM, as others were recommending. And I had no BIOS display at all, & no responses until I hit the desktop.

I've since corrected this, & I'm booting with "MAC OS" again.

I'm not sure at what point this begun, but when booting with Internal GFX on, I seem to have a 3rd display showing up in Displays, which it is detecting as a Projector.
I can arrange it to be between or beside any of my other 2 screens, & my mouse & programs seem to be able to go onto & across it, but it physically doesn't display out onto on any screen. Unless I choose "mirror displays"- then my 2 working displays both show the low quality 1024x768 square of this desktop..



macOS
Mojave 10.14 (18A391)
(Clean install of High Sierra 10.13.5, upgrade to Mojave via AppStore method)



System
Gigabyte GA-B75M-D3H
Intel i7 2600 3.40GHz
Sapphire HD7870 GHz OC 2GB Edition
3x 4GB, 1x 8GB, showing as 16GB
240GB Kingston SSD - OS
2TB Seagate - Data
DVD / BD Samsung Drive



Clover, kexts & SMBIOS
iMac 14,2
Clover 4674, UEFI boot
Kexts ("other" folder) =
Screen Shot 2018-10-15 at 9.24.30 pm.png

FakeSMC 6.26-344-g1c53906,1787 05/10/18,
Lilu v1.2.7 11/09/18,
WhateverGreen v1.2.3 21/09/18


<?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>ACPI</key>
<dict>
<key>AutoMerge</key>
<true/>
<key>DSDT</key>
<dict>
<key>#DropOEM_DSM</key>
<dict>
<key>ATI</key>
<true/>
<key>Firewire</key>
<true/>
<key>HDA</key>
<true/>
<key>HDMI</key>
<true/>
<key>IDE</key>
<true/>
<key>IntelGFX</key>
<true/>
<key>LAN</key>
<true/>
<key>LPC</key>
<false/>
<key>NVidia</key>
<true/>
<key>SATA</key>
<true/>
<key>SmBUS</key>
<false/>
<key>USB</key>
<true/>
<key>WIFI</key>
<true/>
</dict>
<key>Debug</key>
<false/>
<key>DropOEM_DSM</key>
<false/>
<key>Fixes</key>
<dict>
<key>AddDTGP</key>
<false/>
<key>AddHDMI</key>
<false/>
<key>AddIMEI</key>
<false/>
<key>AddMCHC</key>
<false/>
<key>AddPNLF</key>
<false/>
<key>DeleteUnused</key>
<false/>
<key>FakeLPC</key>
<false/>
<key>FixACST</key>
<false/>
<key>FixADP1</key>
<false/>
<key>FixAirport</key>
<false/>
<key>FixDarwin</key>
<false/>
<key>FixDarwin7</key>
<false/>
<key>FixDisplay</key>
<false/>
<key>FixFirewire</key>
<false/>
<key>FixHDA</key>
<false/>
<key>FixHPET</key>
<false/>
<key>FixIDE</key>
<false/>
<key>FixIPIC</key>
<false/>
<key>FixIntelGfx</key>
<false/>
<key>FixLAN</key>
<false/>
<key>FixMutex</key>
<false/>
<key>FixRTC</key>
<false/>
<key>FixRegions</key>
<false/>
<key>FixS3D</key>
<false/>
<key>FixSATA</key>
<false/>
<key>FixSBUS</key>
<false/>
<key>FixShutdown</key>
<false/>
<key>FixTMR</key>
<false/>
<key>FixUSB</key>
<false/>
<key>FixWAK</key>
<false/>
</dict>
<key>Name</key>
<string>DSDT.aml</string>
<key>Patches</key>
<array>
<dict>
<key>Comment</key>
<string>change _OSI to XOSI</string>
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
X09TSQ==
</data>
<key>Replace</key>
<data>
WE9TSQ==
</data>
</dict>
<dict>
<key>Comment</key>
<string>change EHC1 to EH01</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
RUhDMQ==
</data>
<key>Replace</key>
<data>
RUgwMQ==
</data>
</dict>
<dict>
<key>Comment</key>
<string>change EHC2 to EH02</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
RUhDMg==
</data>
<key>Replace</key>
<data>
RUgwMg==
</data>
</dict>
<dict>
<key>Comment</key>
<string>change XHCI to XHC</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
WEhDSQ==
</data>
<key>Replace</key>
<data>
WEhDXw==
</data>
</dict>
<dict>
<key>Comment</key>
<string>change XHC1 to XHC</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
WEhDMQ==
</data>
<key>Replace</key>
<data>
WEhDXw==
</data>
</dict>
</array>
<key>ReuseFFFF</key>
<false/>
</dict>
<key>DropTables</key>
<array>
<dict>
<key>Signature</key>
<string>MATS</string>
</dict>
</array>
<key>FixHeaders</key>
<false/>
<key>HaltEnabler</key>
<false/>
<key>SSDT</key>
<dict>
<key>DropOem</key>
<false/>
<key>Generate</key>
<dict>
<key>CStates</key>
<false/>
<key>PStates</key>
<false/>
</dict>
</dict>
</dict>
<key>Boot</key>
<dict>
<key>Arguments</key>
<string>dart=0</string>
<key>Debug</key>
<false/>
<key>DefaultVolume</key>
<string>MAC</string>
<key>Legacy</key>
<string>PBR</string>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>1</integer>
<key>XMPDetection</key>
<false/>
</dict>
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>Inject</key>
<integer>1</integer>
</dict>
<key>FakeID</key>
<dict>
<key>ATI</key>
<string>0x0</string>
<key>IMEI</key>
<string>0x0</string>
<key>IntelGFX</key>
<string>0x0</string>
<key>LAN</key>
<string>0x0</string>
<key>NVidia</key>
<string>0x0</string>
<key>SATA</key>
<string>0x0</string>
<key>WIFI</key>
<string>0x0</string>
<key>XHCI</key>
<string>0x0</string>
</dict>
<key>USB</key>
<dict>
<key>FixOwnership</key>
<true/>
<key>HighCurrent</key>
<true/>
<key>Inject</key>
<true/>
</dict>
<key>UseIntelHDMI</key>
<false/>
</dict>
<key>DisableDrivers</key>
<array>
<string>Nothing</string>
</array>
<key>GUI</key>
<dict>
<key>Hide</key>
<array>
<string>Windows</string>
<string>BOOTX64.EFI</string>
</array>
<key>Language</key>
<string>en:0</string>
<key>Mouse</key>
<dict>
<key>Enabled</key>
<true/>
<key>Speed</key>
<integer>8</integer>
</dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Legacy</key>
<string>First</string>
<key>Tool</key>
<true/>
</dict>
<key>ScreenResolution</key>
<string>1680x1050</string>
<key>Theme</key>
<string>blacktype</string>
</dict>
<key>Graphics</key>
<dict>
<key>DualLink</key>
<integer>0</integer>
<key>FBName</key>
<string>Futomaki</string>
<key>Inject</key>
<dict>
<key>ATI</key>
<false/>
<key>Intel</key>
<false/>
<key>NVidia</key>
<false/>
</dict>
<key>LoadVBios</key>
<true/>
<key>NvidiaNoEFI</key>
<false/>
<key>RadeonDeInit</key>
<true/>
<key>VideoPorts</key>
<integer>4</integer>
</dict>
<key>KernelAndKextPatches</key>
<dict>
<key>#FakeCPUID</key>
<string>0x010676</string>
<key>AppleIntelCPUPM</key>
<true/>
<key>AppleRTC</key>
<true/>
<key>KernelCpu</key>
<false/>
<key>KernelLapic</key>
<false/>
<key>KernelPm</key>
<true/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Comment</key>
<string>External icons patch</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<key>InfoPlistPatch</key>
<false/>
<key>Name</key>
<string>AppleAHCIPort</string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
</dict>
<dict>
<key>Comment</key>
<string>10.12-AppleHDA/Realtek ALC...</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
ihnUEQ==
</data>
<key>InfoPlistPatch</key>
<false/>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
AAAAAA==
</data>
</dict>
<dict>
<key>Comment</key>
<string>10.9-10.12-AppleHDA/Realtek ALC887</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
ixnUEQ==
</data>
<key>InfoPlistPatch</key>
<false/>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
hwjsEA==
</data>
</dict>
<dict>
<key>Comment</key>
<string>AppleHDA/Resources/xml&gt;zml</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
eG1sLnps
</data>
<key>InfoPlistPatch</key>
<false/>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
em1sLnps
</data>
</dict>
</array>
</dict>
<key>RtVariables</key>
<dict>
<key>BooterConfig</key>
<string>0x28</string>
<key>CsrActiveConfig</key>
<string>0x67</string>
<key>ROM</key>
<string>UseMacAddr0</string>
</dict>
<key>SMBIOS</key>
<dict>
<key>BiosReleaseDate</key>
<string>02/02/2018</string>
<key>BiosVendor</key>
<string>Apple Inc.</string>
<key>BiosVersion</key>
<string>IM142.88Z.0128.B00.1802021101</string>
<key>Board-ID</key>
<string>Mac-27ADBB7B4CEE8E61</string>
<key>BoardManufacturer</key>
<string>Apple Inc.</string>
<key>BoardSerialNumber</key>
<string>XX</string>
<key>BoardType</key>
<integer>10</integer>
<key>BoardVersion</key>
<string>1.0</string>
<key>ChassisAssetTag</key>
<string>iMac-Aluminum</string>
<key>ChassisManufacturer</key>
<string>Apple Inc.</string>
<key>ChassisType</key>
<string>0x0D</string>
<key>Family</key>
<string>iMac</string>
<key>FirmwareFeatures</key>
<string>0xE00FE137</string>
<key>FirmwareFeaturesMask</key>
<string>0xFF1FFF3F</string>
<key>LocationInChassis</key>
<string>Part Component</string>
<key>Manufacturer</key>
<string>Apple Inc.</string>
<key>Mobile</key>
<false/>
<key>PlatformFeature</key>
<string>0x01</string>
<key>ProductName</key>
<string>iMac14,2</string>
<key>SerialNumber</key>
<string>XX</string>
<key>SmUUID</key>
<string>XX</string>
<key>Trust</key>
<true/>
<key>Version</key>
<string>1.0</string>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<string>Yes</string>
<key>InjectSystemID</key>
<true/>
</dict>
</dict>
</plist>

Screen Shot 2018-10-15 at 9.20.57 pm.png




Bios Settings
A)
Enable Internal GFX + set IGFX as Init = 2x Displays will be working on boot, but no sleep.

B) Disable Internal GFX + set PEG or PCI as Init = 1 Display works on boot (HDMI centre), 2nd display is black / blinking on & off.
Sleep working. Sleep then wake turns on the 2nd display (variable, below).
  • Boot with InjectATI = Left monitor (DVI) working
  • Boot with No inject = Right monitor (HDMI to DVI) working
(Every time I switch between the above 2 modes (internal GFX / or PEG PCI), I seem to then lose audio & get iCloud errors.
Need to reinstall AppleALC + sign back into iCloud / verify code from another device.)




Display Configuration

From left to right, when facing the card's outputs = Mini DisplayPort #1, Mini DisplayPort #2, HDMI, DVI

MDP#1 = MiniDP to HDMI adapter, HDMI to screen [HDMI centre, 32” LG Wide]
MDP#2 = MiniDP to HDMI adapter, HDMI to screen [has not yet output an image while others connected, 24” Acer]
HDMI = HDMI to DVI adapter, DVI to screen [right NEC screen]
DVI = DVI to screen [left NEC screen]

(I don’t expect to run all 4 displays, the MiniDP#2 & it’s connected screen are just being used to try work through this problem)
(This screen & MiniDP#2 have been removed & reinserted multiple times, including before & after boot + before & after wake)




Screen Shot 2018-10-15 at 8.04.57 pm.png


Screen Shot 2018-10-15 at 8.06.29 pm.png




Any help, direction or advice would be extremely appreciated.

Thank you in advance :thumbup:
 
Okay, so I followed the guide & patched several Framebuffers, which started to allow me to boot with 2 screens. But no other differences or advantages between the few that I tried..


I couldn’t get the 3rd to come on, no matter the port configs I tried in the patch, or physically moving monitors to other combinations of ports. Or the sleep trick, or what was ticked or unticked in Clover’s GPU page, or what Graphics was set in bios as Init, or if I booted with or without internal graphics....


Then I remembered that my previous HD5770 GPU had 2x DVIs, a HDMI & a full size DisplayPort, & this required me to use an active DisplayPort to DVI adapter, in order to drive all of my 3x screens via DVI. (As I could never get the HDMI to work, & none of my displays had DisplayPort).


But I recently got a new centre screen for my setup, which I’ve been running over HDMI.

And also the new HD7870, as Mojave requires it.

And because my ports now consisted of DVI, HDMI & 2x Mini DisplayPorts, I had basically packed away my old active DisplayPort adapter, as I couldn’t use or try it anyway.


From memory, the reason I used to use an active DisplayPort adapter, was because GPU’s couldn’t output the same “clock” more than twice. So 2x DVIs & then an active DisplayPort tricked into being another DVI was fine.

But I never even considered that this was STILL a modern problem with the new cards & new Hackintosh methods, & with so many different outputs to work from on the HD7870.


Long story short, I picked up a MiniDisplayPort to female DisplayPort adapter for $30 (annoying at the time, but it was my last shot at this), then plugged my Active DisplayPort to DVI into that, & my 3rd screen’s DVI into that.


I still boot with 2 screens, but now the Displays menu shows all 3 plugged in.

Then if I sleep & then wake, I get all 3 working.

Finally.


My question now is, where to from here?


I went back & tried a few more modifications to my current Framebuffer, but still can’t get the 3rd screen to appear on a regular boot.

I even tried shoving the latest WhateverGreen & Lilu kexts back in & turning Inject off- which everyone is suggesting is the standard AMD method.

But this only displays 1 very distorted & freezing screen for me..
 
Status
Not open for further replies.
Back
Top