Contribute
Register

UHD 630 NO HDMI Audio

Status
Not open for further replies.
Joined
Jul 11, 2014
Messages
435
Motherboard
Asus A555LAB
CPU
i3-4005U
Graphics
HD 4400
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hey @RehabMan,
So I finally got me a new CFL machine. After spending a day on it I have got almost every feature to work except the HDMI port.

I am attaching the debug files for your review. I have tried ig-platform-id values 0x3E9b0000 and currently using 0x3ea50009.

I have tried with and without WhateverGreen.kext but the HDMI device isn't recognized even once. I have verified that the HDMI device is connected to the UHD 630 from WINDOWS.

Laptop specs:
  • ASUS ROG GL503
  • i3-8500H UHD 630
  • 300 series motherboard

Steps I tried are:-
  • Boot without WhateverGreen.kext
  • Boot with WEG and all the Framebuffer patches to change connector type to 08
  • Boot with WEG with pipe as 12
Whenever I plug in the HDMI cable the laptop starts to stutter, that stutter is gone as soon as I remove the HDMI cable.

Can't seem to find the reason why it's not working as nothing is showing up in IOREG when plugging in/out the HDMI device.

One more thing, If I remove EmuVariable* driver, the clover boot screen gets stuck on "scanning entries". Any idea why?

P.S: The "ITE Device" in IOREG on XHC is the USB keyboard (internal). Never seen any such config in a laptop before. As a result unable to find the EC methods that are called upon pressing the media keys. Tried with ACPIDebug.kext but it yields no output.

Maybe you could guide me on this.

Regards
 

Attachments

  • debug_1494.zip
    3 MB · Views: 146
Hey @RehabMan,
So I finally got me a new CFL machine. After spending a day on it I have got almost every feature to work except the HDMI port.

I am attaching the debug files for your review. I have tried ig-platform-id values 0x3E9b0000 and currently using 0x3ea50009.

I have tried with and without WhateverGreen.kext but the HDMI device isn't recognized even once. I have verified that the HDMI device is connected to the UHD 630 from WINDOWS.

Laptop specs:
  • ASUS ROG GL503
  • i3-8500H UHD 630
  • 300 series motherboard

Steps I tried are:-
  • Boot without WhateverGreen.kext
  • Boot with WEG and all the Framebuffer patches to change connector type to 08
  • Boot with WEG with pipe as 12
Whenever I plug in the HDMI cable the laptop starts to stutter, that stutter is gone as soon as I remove the HDMI cable.

Can't seem to find the reason why it's not working as nothing is showing up in IOREG when plugging in/out the HDMI device.

One more thing, If I remove EmuVariable* driver, the clover boot screen gets stuck on "scanning entries". Any idea why?

P.S: The "ITE Device" in IOREG on XHC is the USB keyboard (internal). Never seen any such config in a laptop before. As a result unable to find the EC methods that are called upon pressing the media keys. Tried with ACPIDebug.kext but it yields no output.

Maybe you could guide me on this.

Regards

Your profile is inaccurate (it shows only Intel graphics, but preboot.log shows Intel+Nvidia).

Please fix as per FAQ:
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/

After that, you need to check in Windows to determine which graphics device the HDMI is connected to.
 
Already did.

The DGPU is disabled using an SSDT.

The ig-platform-id you're using (0x3ea50009) is missing the 0306 port, so it is possible your HDMI is connected to 0306.
You can patch to replace 0204 with 0306, or patch to replace 0105 with 0306 using WhateverGreen property/patch injection.
 
Okay so this is going to be a very long post. After spending almost whole day trying to debug and fix HDMI on UHD things there are many things that I noticed, sharing them there for reference.

All the experiments have been tried with 2 AAPL,ig-platform-ids:
  • 0x3E9B0000
  • 0x3EA50009
I can confirm that the port that my HDMI device is connecting to is port1 (0105). Easy way to confirm this is, open terminal and type:
Code:
log stream | grep -I "appleintelcfl"
Now plug in your HDMI device, you will see notifications like:
Code:
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] FB1: Hot plug on port1
Where:
  • Port 0 = LVDS (AppleIntelFramebuffer@0)
  • Port 1 = Port 0105 (AppleIntelFramebuffer@1)
  • Port 2 = Port 0205 (AppleIntelFramebuffer@2)
  • Port 3 = Port 0306 (AppleIntelFramebuffer@3)
I (from whatever little knowledge I have) have found that none of the frame buffers for CFL have all 3 ports. So, if HDMI device is on port 3, we need to replace port 1 or 2 with it.

Also, I saw that structure has changed for the CFL binary. When looking at CFL Framebuffer in hex fiend upon expanding it to 32 cols, we can no longer see all the ig-platform-ids in alternate rows. Any info on this will help my knowledge.

Anyways. To be more sure, I replaced port 0105 with port 0306 and it resulted in a system crash (despite the display-pipe being 18 (0x12 in hex) hence confirming that the port to be patched is 0105.

Then, I removed all the ports except 0205 just to see if CFL Framebuffer responded to it. Repeated the same process but kept 0306 this time. Finally, tried with 0105 and the logs appeared.

I get lags for about 5-10 seconds and then the system starts acting back to normal. However, the logs are interesting and it seems we are very close to finally enabling HDMI on this device. Here are the logs:
Code:
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] FB1: Hot plug on port1
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002e2
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] FB1: Display unplugged from port1
Just a normal note: You won't see unplug log with AppleIntelAzulGraphicsFramebuffer (on Haswell hardware)

@RehabMan I have attached my debugging files. Please have a look and tell your views on it. Also, any helpful info on optimizing stuffs will be more welcome (Been coding a lot from past 2 days for VoodooI2C CFL GPIO, might have missed a thing or two).

Thanks for reading this post.
Regards
 

Attachments

  • debug_13088.zip
    3.6 MB · Views: 137
Okay so this is going to be a very long post. After spending almost whole day trying to debug and fix HDMI on UHD things there are many things that I noticed, sharing them there for reference.

All the experiments have been tried with 2 AAPL,ig-platform-ids:
  • 0x3E9B0000
  • 0x3EA50009
Those two have only 0105 and 0204, not 0306.

I can cofirm that the port that my HDMI device is connecting to is port1 (0105).
...
Anyways. To be more sure, I replaced port 0105 with port 0306 and it resulted in a system crash (despite the display-pipe being 18 (0x12 in hex) hence confirming that the port to be patched is 0105.

The latter seems to confirm it is on 0306, not 0105.
(the crash indicates it is detecting a display, no crash/no detection would indicate port mismatch).

To change the 0105 (@1) to 0306 (HDMI), use:
framebuffer-con1-enable=1
framebuffer-con1-alldata=<03060a00 00080000 87010000>

Note:
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/
 
no detection would indicate port mismatch
But it shows as being detected in kernel log:
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO ] FB1: Hot plug on port1 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002e2 kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO ] FB1: Display unplugged from port1
To change the 0105 (@1) to 0306 (HDMI), use:
framebuffer-con1-enable=1
framebuffer-con1-alldata=<03060a00 00080000 87010000>
Tried doing this but system crashes instantly. Attaching the debug files of the above scenario.
All kexts you need must be installed to the system volume.
All the kexts in CLOVER/kexts/other are LILU plugins and hence I am injecting them. (Saves hassles of using LiluFriend.kext)

If I re-add the port 0105 kernel_log starts showing up signs of device hot plug.

Regards
 

Attachments

  • debug_12677.zip
    2.8 MB · Views: 119
Update:
As I was getting constant crashes, I went ahead and tried keeping 0105 port (as removing this causes KP) and replace port2 (0204) with port 0306.

Upon rebooting my system I reconnected the HDMI cable and the system didn't crash this time. Also, system logs showed up:
Code:
kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] FB1: Hot plug on port1

kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6

kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][WARNING] fb1 : DP-EDID set offset failed: 0xe00002d6

kernel: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] FB1: Display unplugged from port1

Attaching files of this scenario to this post.

Doesn't it hint that port 0105 is the intended port for HDMI. Maybe system is crashing because it couldn't find the port to attach to?

Anyways, to sum it all:
  • If I replace 0105 with 0306 with pipe set as 12, system crash.
  • If I replace 0204 with 0306 with pipe set as 12, above logs pop up.
Regards
 

Attachments

  • debug_8581.zip
    2.8 MB · Views: 114
All the kexts in CLOVER/kexts/other are LILU plugins and hence I am injecting them. (Saves hassles of using LiluFriend.kext)

Please install all "kexts you need" to /L/E.
Reply with PR files when you have done that.
 
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:
Screen Shot 2018-11-23 at 1.46.30 AM.png


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
 

Attachments

  • debug_30827.zip
    2.8 MB · Views: 173
  • log_sleep_cycle.txt
    18.3 KB · Views: 358
Status
Not open for further replies.
Back
Top