Contribute
Register

HDMI isn't working on Mojave

Status
Not open for further replies.
I want to make framebuffer@2 <00 04 00 00>. How is it possible?

That is the default. Remove your patch for framebuffer-con2-type.
 

Attachments

  • Screen Shot 2018-10-14 at 15.52.50.png
    Screen Shot 2018-10-14 at 15.52.50.png
    196.7 KB · Views: 108
It looks the same with and without the patch.

Keep in mind that without framebuffer-patch-enable inject, WhateverGreen.kext, by default, converts all connectors to HDMI.
You can avoid that by injecting framebuffer-patch-enable=1 (with no other patches), or by using kernel flag -igfxnohdmi.
 
You should probably forget about it then...
Deleting kexts is not a solution.
Guess what. I fixed the QE problem just now! I had to use 0x16268086 as Fake GPU ID in config.plist/Devices/IntelGFX. I now have full acceleration (finally after 2+ years of struggling), and HDMI also works now after resolving the issue with QE/CI. However, this fix doesn't work on Sierra and no idea if it works on High Sierra until I try tomorrow. Perphaps Apple changed something in AppleIntelBDWGraphics.kext on Mojave? The mystery is, why does my IGPU require a Fake ID in order to get QE/CI acceleration working, when I see others with the same CPU having no issues with that...
 

Attachments

  • Screenshot 2018-10-17 at 02.23.37.png
    Screenshot 2018-10-17 at 02.23.37.png
    1 MB · Views: 137
Guess what. I fixed the QE problem just now! I had to use 0x16268086 as Fake GPU ID in config.plist/Devices/IntelGFX. I now have full acceleration (finally after 2+ years of struggling), and HDMI also works now after resolving the issue with QE/CI. However, this fix doesn't work on Sierra and no idea if it works on High Sierra until I try tomorrow. Perphaps Apple changed something in AppleIntelBDWGraphics.kext on Mojave? The mystery is, why does my IGPU require a Fake ID in order to get QE/CI acceleration working, when I see others with the same CPU having no issues with that...
congratulations :)
 
Guess what. I fixed the QE problem just now! I had to use 0x16268086 as Fake GPU ID in config.plist/Devices/IntelGFX. I now have full acceleration (finally after 2+ years of struggling), and HDMI also works now after resolving the issue with QE/CI. However, this fix doesn't work on Sierra and no idea if it works on High Sierra until I try tomorrow. Perphaps Apple changed something in AppleIntelBDWGraphics.kext on Mojave? The mystery is, why does my IGPU require a Fake ID in order to get QE/CI acceleration working, when I see others with the same CPU having no issues with that...

Please attach PR files so others can see exactly what you did.
 

Attachments

  • Archive.zip
    4 MB · Views: 110
  • Screenshot 2018-10-17 at 15.55.35.png
    Screenshot 2018-10-17 at 15.55.35.png
    123.2 KB · Views: 164
  • Screenshot 2018-10-17 at 15.56.59.png
    Screenshot 2018-10-17 at 15.56.59.png
    140 KB · Views: 168
Roger that.

The key points:
- inject device-id = 0x1626
- WhateverGreen.kext is then used to spoof your native 0x1616 as 0x1626 (it spoofs the PCI ids when device-id inject is different from native device-id)
 
The key points:
- inject device-id = 0x1626
- WhateverGreen.kext is then used to spoof your native 0x1616 as 0x1626 (it spoofs the PCI ids when device-id inject is different from native device-id)
So WhateverGreen.kext is automatically spoofing 0x16168086 as 0x16268086? I can't fully understand that because if I don't set config.plist/Devices/IntelGFX as 0x16268086, I can't boot. Hangs on the [IGPU] messages.
 
So WhateverGreen.kext is automatically spoofing 0x16168086 as 0x16268086?

Not automatically.
But since you're injecting a device-id that is NOT your native id, it attaches some code that spoofs the PCI ids when the graphics kexts query.
The same thing can be done with FakePCIID.

I can't fully understand that because if I don't set config.plist/Devices/IntelGFX as 0x16268086, I can't boot. Hangs on the [IGPU] messages.

As I mentioned, if you don't inject a different device-id than your native device-id, then WhateverGreen.kext does no spoofing unless it is one of the "known" devices that requires spoofing (such as HD4600 mobile, HD4400, others).

In theory, your device 0x1616 is natively supported:
Code:
NUC6i7KYK:~ rehabman$ grep 0x1616 -R /System/Library/Extensions/
/System/Library/Extensions//AppleIntelBDWGraphics.kext/Contents/Info.plist:           <string>0x0BD18086 0x0BD28086 0x0BD38086 0x16028086 0x16068086 0x160B8086 0x160A8086 0x160D8086 0x160E8086 0x16128086 0x16168086 0x161B8086 0x161A8086 0x161D8086 0x161E8086 0x16228086 0x16268086 0x162B8086 0x162A8086 0x162D8086 0x162E8086 0x16328086 0x16368086 0x163B8086 0x163A8086 0x163D8086 0x163E8086</string>
/System/Library/Extensions//AppleIntelBDWGraphicsFramebuffer.kext/Contents/Info.plist:           <string>0x0BD18086 0x0BD28086 0x0BD38086 0x16068086 0x160e8086 0x16168086 0x161e8086 0x16268086 0x16228086 0x16128086 0x162b8086</string>

So, WhateverGreen does not do any spoofing automatically... only when you inject a different device-id does it start to do something.
 
Status
Not open for further replies.
Back
Top