Your kextcache output proves kexts are not installed correctly.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:
I am attaching the log files for the above (best case) scenario. Please have a look and provide your insights.
- 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 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.
HDMI audio: Try with FakePCIID_Intel_HDMI_Audio.kext (and FakePCIID.kext, of course).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:
I am attaching a image for the same:
- 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.
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.
EDIT: Edited the title as HDMI video is now working (with above mentioned issues.)
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.For your graphics, you might have blank screen as described here:
Try with FakePCIID_Intel_HDMI_Audio.kext, but inject other device-id that it supports (look at the Info.plist).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.