Contribute
Register

Mountain Lion: HD3000/HD4000 with AMD or Nvidia, Working Together

Status
Not open for further replies.
I got it running on a GA-Z77X-UP5 TH board with GTX 650 card, using a funky device-properties string in the plist. Unfortunately I don't fully understand what it's doing (which irks me) but while I learn about it, in case it helps anyone else I've documented what I did in an update to my build post.
 
Yes. GE=N

toleda, please explain me:

1) the DSDT GFX0 injection (from post 43)
a - corrects the device-id of HD4000 to make it native for OS X?
b - adds a layout for the video outputs (like 2xHDMI, 1x DP)?

2) DSDT HDEF injection
a - corrects the device-id of Realtek HDA?
b - adds a layout for the audio outputs ?

3) Where resides the HDMI audio injection?

Thank you in advance!
 
I got it running on a GA-Z77X-UP5 TH board with GTX 650 card, using a funky device-properties string in the plist. Unfortunately I don't fully understand what it's doing (which irks me) but while I learn about it, in case it helps anyone else I've documented what I did in an update to my build post.
dsdt injection has significant advantages over device properties injection; the biggest issue being all other org.chameleon.Boot.plist injections are disabled by device properties. Not clear why dsdt injection did not work for you, however, device property injection is not a recommended solution.
 
1) the DSDT GFX0 injection (from post 43)

2) DSDT HDEF injection

3) Where resides the HDMI audio injection?
1. GFX0
a. injects a native HD4000 device-id
b. injects the correct HD4000 framebuffer

2. HDEF/Requires MultiBeast/Realtek ALC8xx Audio
a. correct device-id must be present in AppleHDA binary
b. injects the correct layout/pathmap.

3. HDMI audio injection
3a. hda-gfx
3a1. for discrete graphics; GFX0 and HDAU
3a2. for integrated graphics: IGPU and HDEF
 
It seems to be working.
Editing:
AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri binary

Native 0A:
0A 00 66 01 00 02 03 02 00 00 00 02
00 00 00 01 00 00 00 20 10 07 00 00
10 07 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
02 05 00 00 00 04 00 00 07 01 00 00
03 04 00 00 00 04 00 00 07 01 00 00
04 06 00 00 00 08 00 00 06 00 00 00
00 00 00 00 01 00 00 00 40 00 00 00

HexEdit

port 0x6 DP>HDMI
Find:
03 04 00 00 00 04 00 00 07 01 00 00
Replace:
03 04 00 00 00 08 00 00 06 00 00 00

port 0x7 HDMI>DP
Find:
04 06 00 00 00 08 00 00 06 00 00 00
Replace:
04 06 00 00 00 04 00 00 07 01 00 00

port 0x5 DP>HDMI
Find:
02 05 00 00 00 04 00 00 07 01 00 00
Replace
02 05 00 00 00 08 00 00 06 00 00 00

Edited 0A:

0A 00 66 01 00 02 03 02 00 00 00 02
00 00 00 01 00 00 00 20 10 07 00 00
10 07 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
02 05 00 00 00 08 00 00 06 00 00 00
03 04 00 00 00 08 00 00 06 00 00 00
04 06 00 00 00 04 00 00 07 01 00 00
00 00 00 00 01 00 00 00 40 00 00 00

would you check if physical connectors are mapped to the right framebuffer connectors?
- av-signal-type = 8 + connector-type = 8 for both port 0x5 and 0x6 (hdmi 1 and 2)
- av-signal-type = 8 + connector-type = 4 for port 0x7 (mini DisplayPort)

Installed nVidia Quadro NVS 295, plugged Apple Cinema Display in NVS, BIOS primary display IGFX, GraphicsEnabler=No and everything's working (attached ioreg acd in NVS).

USB audio and iSight camera working (Apple Cinema Display).

Still my initial problem remains: Apple Cinema Display doesn't work with integrated graphics via Mini DisplayPort. I assume it's not related to hdmi, simply I guess it's not supported by Zotac Itx Wifi board (it doesn't work in bios nor in Windows 7 and Windows 8).

Beside this, do I need anything else to do?

Toleda, I really thank you very much.

G.

Toleda, for Ivy Bridge power management with sysdef macmini 6, should I edit AppleIntelFramebufferCapri.kext in the same way to make physical connectors mapped to the right framebuffer connectors?

EDIT: Ok, no problem, physical connectors mapped right!
 
Toleda, for Ivy Bridge power management with sysdef macmini 6, should I edit AppleIntelFramebufferCapri.kext in the same way to make physical connectors mapped to the right framebuffer connectors?

EDIT: Ok, no problem, physical connectors mapped right!

toleda, thank you for clearing me up about the dsdt relations. last thing unclear for me, why you have to modify the frame buffer kext for right port mapping like giacomoleopardo does, when you say in previous post that you do it in GFX0 in DSDT?
 
toleda, thank you for clearing me up about the dsdt relations. last thing unclear for me, why you have to modify the frame buffer kext for right port mapping like giacomoleopardo does, when you say in previous post that you do it in GFX0 in DSDT?

My board has three port: two hdmi (port 0x05 AppleIntelFramebuffer@0, and port 0x06 AppleIntelFramebuffer@1) and a Mini DisplayPort (port 0x07 AppleIntelFramebuffer@2).
Now you have to check in Ioreg/IGPU@2/AppleIntelFramebuffer@#(0 or 1 or 2 where the display0 is connected), you can find this two voices:
av-signal-type
connector-type
as you can see in the attached screenshot

For HDMI ports correct values are
av-signal-type ----->08 00 00 00
connector-type ---->00 08 00 00

For MiniDisplayPort correct values are
av-signal-type ----->08 00 00 00
connector-type ---->00 04 00 00

My board showed wrong codes
Editing hex codes of AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri make them right.:thumbup:
 

Attachments

  • Schermata 2013-02-09 alle 13.49.47.jpg
    Schermata 2013-02-09 alle 13.49.47.jpg
    190.9 KB · Views: 277
My board has three port: two hdmi (port 0x05 AppleIntelFramebuffer@0, and port 0x06 AppleIntelFramebuffer@1) and a Mini DisplayPort (port 0x07 AppleIntelFramebuffer@2).
Now you have to check in Ioreg/IGPU@2/AppleIntelFramebuffer@#(0 or 1 or 2 where the display0 is connected), you can find this two voices:
av-signal-type
connector-type
as you can see in the attached screenshot

For HDMI ports correct values are
av-signal-type ----->08 00 00 00
connector-type ---->00 08 00 00

For MiniDisplayPort correct values are
av-signal-type ----->08 00 00 00
connector-type ---->00 04 00 00

My board showed wrong codes
Editing hex codes of AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri make them right.:thumbup:

ok, i understand. But can't you pass the right codes to the framebuffer kext via DSDT injection? The right mapping would resist an eventual update of AppleIntelFramebufferCapri.kext...?!?
 
Status
Not open for further replies.
Back
Top