Jump to content

OpenCore and AiO PC with Built-in display eDP connector Intel HD graphics 4600


McSonite
 Share

21 posts in this topic

Recommended Posts

Hi All,

 

This is my first OpenCore project. I'm running OC 0.6.3 and Catalina 10.15.7 in HP EliteOne 800 G1 All-in-One PC. 

 

This is an All-in-One PC (you might have decoded this from the PCs name :) ) and thus has an LVDS display. There is also one DP connector at the back of the machine. 

 

The problem is that I cannot get the iGPU running with 3D acceleration on the LVDS display.

 

I have tried every gimmick in the Patching Whatevergreen guide. Best results I get when running with ig-platform-id 0300220D, framebuffer-stolenmem 00003000 and framebuffer-fbmem 00009001. 

 

But there is a catch here:

 

Booting with above properties the LVDS goes black after the DSMOS has arrived. I had a feeling that graphics are actually displayed through the DP connecter. So, I went and grabbed an external display and connected it to the DP connector - and voila I have 3D acceleration. 'About This Mac' also shows that there is 1536MB of memory for the Intel HD Graphics 4600.

 

I have spent vast amount of hours (60+) to get the 3D acceleration working on LVDS with no luck.

 

Notes:

I have gone through all the Haswell specific ig-platform-ids for both desktop and laptop. Most of these work but only without 3D acceleration and 7MB of memory for the graphics.

If DP is connected during the boot process the machine hangs with error: Adding AGDP mode validate property. If I let the machine boot without DP connected so that the LVDS gets black and connect the DP after that I get the picture on the DP connected screen.

When I started the project I had AppleALC kext installed and with most of the ig-platform-ids the machine kernel paniced during the boot process. I replaced the AppleALC with VoodooHDA and after that the kernel panics were gone - and I also got sounds working.

 

I would appreciate a lot if someone could give me advice on how to get the 3D accelerated picture on the LVDS display.

 

Regards

McSonite

  

Link to comment
Share on other sites

Thank you for your quick reply. 

 

I actually am not concerned about the SN shown. I just read this from the New Users' lounge that you should take them away. :)

 

Typo in fbmem was my bad. I just tried to replicate the config.plist that I had during the time of the IOReg capture.

 

I'm not 100% sure about the display type but I suspect that it is LVDS because there is a BIOS setting for this i.e. setting the LVDS type: auto - Samsung - LG

Processor is: Intel Core i5-4570S

 

I have also tried this laptop buffer ID 0A260006 but machine posts with it only if I add -igfxvesa to the boot args.

 

I have also tried changing the connector type with following parameters (running the mentioned recommended desktop buffer)

framebuffer-con1-enable | data | 01000000

framebuffer-con1-type | data | 02000000

 

I will go on testing the SMBIOS 11,1 and also agdp=pikera

 

ioreg_snap.zip

Link to comment
Share on other sites

I have now tested with SMBIOS MacBookPro11,1 and with and without agdp=pikera - no luck.

 

The only way to get the machine post is with the fb 0x0D220003 and it starts with black screen on the LVDS display. 

 

I changed the SMBIOS back to iMac14,4

 

I think I just have to give up 'cause I don't grasp the patching system and or how it correlates with the SMBIOS.

Link to comment
Share on other sites

Ok. So, I installed Windows (yeah, I know, sorry about Win. None of the Linux distros I tried weren't running the Intel HD correctly i.e. screen res only 800x600 and they started w/ nomodeset or graphics safe mode only) in order to get more info on the Built-in-display. Intel HD Graphics Control Panel tells me that the connector type is actually Embedded DisplayPort.

 

Now the question goes:

 

What connector type should I choose for con2 if I'm using framebuffer 0D220003?

 

Currently the deafult is DP and with that the screen is black.

Link to comment
Share on other sites

Found out something while tweaking the MacOS via remote connection. VNC works while the screen is black.

 

When running IORegExplorer it seems that FB2 connector type changes to 00080000 (HDMI). I suspect that the VoodooHDA or audio mapping to HDMI is the culprit in someway.

 

I added -igfxnohdmi and then the connector type was 00040000.

 

Edited by McSonite
Corrected the connector types
Link to comment
Share on other sites

11 minutes ago, McSonite said:

I'm following Dortania's guide to patch BusIDs but whatever I do I get HDMI defined for each FB as a connector type. BusID for indices 1 and 2 is set to 00 because I want to disable these. 

 

Can someone shed some light and tell me why?

 

 

 

 

ioreg_allhdmi.zip

config.plist

Let me do it myself. I was missing framebuffer-patch-enable.

 

I'm losing my mind trying to understand this patching.

 

Index, BusID, Pipe, conX, port, FB how it is in SMBIOS. Just cannot find a guide that matches these terms. 

 

I understand that this sounds like rantings of a blubbering idiot but...

 

port #0 is actually on con2

con0 is port #5

con1 is port #7

 

How to for example decipher that? 

 

It needs not to be explained here but I would like someone to refer to a link where I can read this.

 

 

 

 

Link to comment
Share on other sites

Simple question: 

 

When the connector is eDP and I'm patching a framebuffer: Which connector type am I supposed to use LVDS 02000000 or Display Port 00040000?

 

I have followed https://dortania.github.io/OpenCore-Post-Install/gpu-patching/intel-patching/busid.html#mapping-the-video-ports, used FB 0x0D220003 and gone though all the possible iterations with the BusIDs always disabling two of them and I have been using connector type 02000000 i.e.

 

01010900 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

01020900 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

01030900 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

etc.

 

and 

 

01000900 00040000 87000000
02010A00 02000000 87000000
03000800 00040000 11000000

 

01000900 00040000 87000000
02020A00 02000000 87000000
03000800 00040000 11000000

 

01000900 00040000 87000000
02030A00 02000000 87000000
03000800 00040000 11000000

 

etc.

 

and 

 

same for the index 3.

 

And also I have tested all iterations with flags being 0x8 (https://github.com/acidanthera/WhateverGreen/blob/master/Manual/IntelFramebuffer.bt

   /* Normally set for LVDS displays (i.e. built-in displays) */

       uint8_t CNConnectorAlwaysConnected :1; /* 0x8 */

 

i.e.

 

01010800 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

01020800 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

01030800 02000000 87000000
02000A00 00040000 87000000
03000800 00040000 11000000

 

etc.

 

and same for indices 2 and 3

 

I still always get black screen on the built-in-display

 

(SMBIOS is currently set to iMac14,1)

Link to comment
Share on other sites

No, no, no on no...

 

20+ hours used. No luck.

 

I have now tried to inject EDID of the built-in display.

 

How to tell which one of the following to use?

 

AAPL00,override-no-connect

AAPL01,override-no-connect

AAPL02,override-no-connect

 

 

 

 

 

Edited by McSonite
Forget about the config.plist. It is full of errors.
Link to comment
Share on other sites

  • 3 months later...
On 12/3/2020 at 2:42 PM, McSonite said:

Found out something while tweaking the MacOS via remote connection. VNC works while the screen is black.

 

When running IORegExplorer it seems that FB2 connector type changes to 00080000 (HDMI). I suspect that the VoodooHDA or audio mapping to HDMI is the culprit in someway.

 

I added -igfxnohdmi and then the connector type was 00040000.

 

Hi, 

 

Were you able to fix this? I'm experiencing exact same issue on icelake. 

Link to comment
Share on other sites

  • 4 months later...
On 12/7/2020 at 2:40 AM, McSonite said:

No, no, no on no...

 

20+ hours used. No luck.

 

I have now tried to inject EDID of the built-in display.

 

How to tell which one of the following to use?

 

AAPL00,override-no-connect

AAPL01,override-no-connect

AAPL02,override-no-connect

 

 

 

 

 

Hi McSonite,

 

I have a HP AIO also but different model.

I'd experienced the same problem before; internal display black screen, only external DP has proper output with hardware acceleration.

Finally, I was able to fix it. Here's the steps:

 

1. Boot up using Windows (I've used some guide for installing windows on external usb hdd)

2. Find some freeware for Windows to get EDID (I've also tested many softwares under Linux, seems all couldn't read the HP AIO display EDID properly)

    ** as far as I remembered, the freeware under Windows can't export the EDID in correct format **

3. Manually edit the EDID to 2 characters, space, 2 cahracters, space, etc... 

    eg. 00 FF FF FF FF FF FF 00 22 0E 40 19 00 ...

4. Use AAPL00,override-no-connect to inject the EDID, which can solve the internal display black screen problem.

  (it took me 2 weeks to solve this issue -_-)

 

** There's still some issue after using this fix. When you power on computer with external DP connected, only external DP has display.

     If you really want to have dual display, you need to boot up with no external DP connected first. After boot up and logged in, connect the external DP and go to System Preferences > Displays.

     By holding Option (or Alt) button, it will show "Detect Display". That will trick the external DP to show up. **

 

Since I don't need to use dual display, I haven't go deeper to investigate if there's any other better fix on the external DP dual display.

Please note that the HP AIO internal display uses eDP (embedded display port), not LVDS.

I think that this information is useful if you need to investigate further.

 

I've attached my EDID here, but I think that your display may not be the same of mine.

I would suggest you use the above method to get your correct EDID.

 

 

Hope this can help

EDID HP AIO.txt

Link to comment
Share on other sites

  • 4 weeks later...
  • 11 months later...

I have a DELL aio with a similar eDP display that does not work, but i have no other display outputs. Only way i can get in is by remoting into it with my real macbook, where the acceleration does seem to work. It has HD4000, but would this still work? How do i change my EDID? Could you provide your config if you're using opencore?

 

Thanks

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...