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