Contribute
Register

UHD 630 NO HDMI Audio

Status
Not open for further replies.
Hey @RehabMan, after a full day of trying many things, I finally got my HDMI to work (only the video part).

This is achieved by injecting AAPLxx,override-no-connect on Port 1 (0105). I guess HDMI working partially on 0105 proves that this is the intended port or this could also be a mismatch?

Wrapping original edid check by a custom WEG patch doesn't seem to do the work. It injects the data but external display never seems to work. Also, internal display is messed up too when you connect an external display. Maybe because we are wrapping only the EDID injection part for that fb index and ignoring all the other stuff that the original EDIDcheck function might be doing in CFL Framebuffer?

I tried changing display pipe to 0x12 and flags to 0x187 but they only seem to worsen the problems. Removing or using them has no effect.

I also tried to fix internal display by injecting it's default EDID by setting config>devices>edid>inject>true but this turns things into the worst possible way. No display on internal or external while booting. After a sleep cycle, internal display works fine external doesn't. If we remove and re-plug the HDMI cable, the machine freezes. Using display pipe 0x12 has no effect in this case.

So, right now I am only injecting EDID data for port 01 and patching connector type to 0x800 for HDMI and this seems to be working but has several pitfalls, like:

  • Internal display boots up fine till Apple logo loading stage 1, after that (when EDIDOverrideCheck is called in CFL Framebuffer) I lose my internal display, backlight remains on but no display.
  • To fix the above issue, I have to put my laptop to sleep. After a sleep cycle internal display works fine and so does the external display.
  • HDMI display surprisingly doesn't work in clamshell mode (when I close the lid). It also loses single along with the internal display.
I am attaching the log files for the above (best case) scenario. Please have a look and provide your insights.

I am not able to understand why the audio is not working. Connector type is 08 and property hda-gfx=onboard-1 is present on IGPU, still it does not work.

DPCIManager, however does recognize a NULL CODEC on HDMI device. Picture of that is attached:
View attachment 367259

I tried using FakePCIID with Intel_HDMI_Audio extension (with and without no-connector-patch property) but this seems to totally break the on-board audio for me.

A note regarding only 3-4 kexts in /L/E: I have to inject all the other kexts as if I install them to LE (like you asked) I get a 40:60 success rate, latter being the failure rate (Of course I am also installing LILU to LE as it is a required dependency).

Some kexts like, SMCBatteryManager never work from LE despite Lilu and VSMC being present in LE.

So, please don't think like I didn't try to do what you asked. Sorry but CLOVER injection is required to be able to get my system to working state.

VoodooI2CHID never seems to hook to TPD device despite the AppleI2C kext Info.plist patches. Hence they too are being injected.

Thanks again for reading this long post.
Regards
Your kextcache output proves kexts are not installed correctly.
All kexts you need must be installed to the system volume.
Read post #2 of the Clover guide for details:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 
Hey @RehabMan,

Finally set up everything like you asked. Had to remove VirtualSMC and use FakeSMC instead. Same applies for ACPIBatteryManager instead of SMCBatteryManager.

I got one more issue fixed, the HDMI display now works in clamshell mode.

The issues still remaining are:
  • No HDMI audio. Codec is being detected as NULL on HDEF@1F,3/AppleHDAController@1F,3/IOHDACodecDevice@1F,3,2
  • When using AAPLxx,override-no-connect, internal display boots up fine till stage 1 loading at Apple logo, after that it goes blank. Have to close the LID and re-open in order to get internal display back. (Technically, disconnect and re-connect). Only happens for the first time it boots up. After that it is working fine. Injecting framebuffer-con1-flags property leads to no display on either device. Not injecting framebuffer-con1-pipe 0x12 leads to no codec being detected at @1F,3,2.
I am attaching a image for the same:
Screen Shot 2018-11-23 at 10.26.51 PM.png


The debug files are attached. I suspect that maybe my controller (8086, a348) is unsupported and I might have to patch it in some way to get it to work?

Thanks for all the help.
Regards

EDIT: Edited the title as HDMI video is now working (with above mentioned issues.)
 

Attachments

  • debug_21178.zip
    1.7 MB · Views: 148
Last edited:
Hey @RehabMan,

Finally set up everything like you asked. Had to remove VirtualSMC and use FakeSMC instead. Same applies for ACPIBatteryManager instead of SMCBatteryManager.

I got one more issue fixed, the HDMI display now works in clamshell mode.

The issues still remaining are:
  • No HDMI audio. Codec is being detected as NULL on HDEF@1F,3/AppleHDAController@1F,3/IOHDACodecDevice@1F,3,2
  • When using AAPLxx,override-no-connect, internal display boots up fine till stage 1 loading at Apple logo, after that it goes blank. Have to close the LID and re-open in order to get internal display back. (Technically, disconnect and re-connect). Only happens for the first time it boots up. After that it is working fine. Injecting framebuffer-con1-flags property leads to no display on either device. Not injecting framebuffer-con1-pipe 0x12 leads to no codec being detected at @1F,3,2.
I am attaching a image for the same:
View attachment 367395

The debug files are attached. I suspect that maybe my controller (8086, a348) is unsupported and I might have to patch it in some way to get it to work?

Thanks for all the help.
Regards

EDIT: Edited the title as HDMI video is now working (with above mentioned issues.)

HDMI audio: Try with FakePCIID_Intel_HDMI_Audio.kext (and FakePCIID.kext, of course).

For your graphics, you might have blank screen as described here:
https://www.tonymacx86.com/threads/...utes-after-booting-coffeelake-uhd-630.261131/
 
Hey @RehabMan,

Tried with FakePCIID with and without no-controller-patch. Doesn't seem to work at all. Breaks the audio totally.

When booting with no-connector-patch set to 1, system refuses to boot at all. I get no display at all.

Next, I remove FakePCIID and did what it was expected of it manually, injecting the device-id on HDEF. (0xa170)

I get the device-id recognized but HDMI Port @1F,3,2 still loads up as null codec.

Attached are the PR files for both scenarios.
 

Attachments

  • FakePCI_No_Audio.zip
    1.7 MB · Views: 79
  • FakeID_No_Audio.zip
    1.7 MB · Views: 89
For your graphics, you might have blank screen as described here:
I have this issue too but in this issue we get the display (if we shine a torch we can see the contents). Backlight comes back after 3 minutes or after a sleep cycle.

The issue I get when injecting override-no-connect is I get the backlight but no contents on the display. Have to disconnect and reconnect internal display (technically, closing lid and re-opening after 5 secs seems to do this) to get things working again.
 
Also was wondering, can we circumvent this whole issue if we just fake KBL stead of CFL?
 
Hey @RehabMan,

Tried with FakePCIID with and without no-controller-patch. Doesn't seem to work at all. Breaks the audio totally.

When booting with no-connector-patch set to 1, system refuses to boot at all. I get no display at all.

Next, I remove FakePCIID and did what it was expected of it manually, injecting the device-id on HDEF. (0xa170)

I get the device-id recognized but HDMI Port @1F,3,2 still loads up as null codec.

Attached are the PR files for both scenarios.

Try with FakePCIID_Intel_HDMI_Audio.kext, but inject other device-id that it supports (look at the Info.plist).
 
Also was wondering, can we circumvent this whole issue if we just fake KBL stead of CFL?

You could always try it, but it probably won't work due to differences in IGPU backlight register layout.
 
inject other device-id that it supports
8086,a348 is my default PCI ID. It is present in info.plist of FakePCIID_Intel_HDMI. Do I still need to inject a different ID? If not, PR files would be same as FakePCI_No_Audio.zip attached in post #15

Regards
 
Status
Not open for further replies.
Back
Top