Jump to content

Optiplex 3011 AIO: need help getting graphics acceleration on HD4000


audiosurplus

Recommended Posts

Hi everyone, I'm trying to get catalina going on an older Dell Optiplex 3011 AIO with an i7-3770K and Intel HD 4000 graphics. I have the installer USB going and it seems to boot all the way through - but at the point where normally the verbose text goes away and the apple logo appears, the display just shuts off, backlight and everything. I was able to eventually get everything installed to the SSD using the -igfxvesa flag, that does bring the screen up at full res but very laggy and only 5mb of VRAM detected. No acceleration obviously. I've tried googling around and cant find too much on the issue, but I've been trying different AAPL,ig-platform-id's and added igfxonln=1 to my boot-args. So far nothing has changed my issue. Does anyone have any ideas of what else i should try?

Thanks!!!

Link to comment
Share on other sites

  • Administrators

Ok, we'll probably have to make adjustments on the graphics properties injection side. AIO computers usually have an LVDS type built-in screen, just like laptops. This will need to be taken into consideration. Capri mobile framebuffer 0x0166004 is probably a good one to start with, without any of those connector patches you currently have in your config. Also remove the stolenmem patch, it's not applicable to HD4000 graphics.

 

On the CPU power management side, you've correctly applied the CpuPm quirk (patch) but you're missing the generated CPU PM SSDT for your Ivy Bridge CPU. You'll need that as it'll define the correct settings for your particular CPU. Use the good old generator script from Pike R Alpha to that effect.

Link to comment
Share on other sites

I did previously try the 0x0166004 framebuffer, but it makes no difference. I was able to find that my display is actually connected with eDP or embedded displayport, not LVDS through the intel drivers on the windows side. I'll try to get CPU PM SSDT going in the morning, do you think that could help my situation with the graphics?

Also, i should mention that i am actually able to remote into the machine from my real mac pro and without the igfxvesa flag, it seems to have full acceleration and everything, just there's no internal display. I tried a USB displaylink dock and that worked too. I've tried messing with the connector settings as well but to no avail.

Link to comment
Share on other sites

  • Administrators

LVDS or eDP, it's the same thing for a Capri framebuffer. Makes no difference.

 

There's a chance you'll need to inject your screen's EDID because the actual display is not natively supported/recognized. You can look this up, plenty of ways to get this through Windows or Linux. You then inject this in your bootloder's iGPU device properties set through DATA property AAPL00,override-no-connect for which you specify the hexadecimal value of your EDID (without any space or comma characters, just the Hex value).

Link to comment
Share on other sites

Alright, so I think i have my EDID successfully injected now, and I've removed the connector and stolenmem patches. I've been playing around with the platform IDs to see if anything's changed:

 

Using 0A006601 and 0B006601 (from doritania guide) doesnt make any changes on the internal display, however connecting over screen sharing from my real mac does show that the machine detects the "OptiPlex 3011" display at its full resolution and now lists the HD Graphics 4000 in the "about this mac" window.

 

Tried 04006601 next, and it freezes at the point where the display would normally shut off and the remote desktop would reconnect. I left it here for a while to see what would happen and i came back later to find the CPU fan at 100% speed.

 

Lastly using 09006601 corrupts the verbose boot graphics (but only the last screen before the gpu initializes, there are no log updates underneath the corrpution) and the remote desktop does work. Besides the internal display staying on with corrupted graphics, it was exactly the same as the first to IDs.

 

I'm going to try more from the whatevergreen patching guide as well as getting CPU PM working, and will report back here. Should i also remove framebuffer-fbmem and framebuffer-patch-enable from my config? My machine has no option for 64MB DVMT, so afaik i do need these.

Thanks!!

04006601.jpg

09006601.jpg

Link to comment
Share on other sites

  • Administrators

If you use a desktop Capri framebuffer, you most probably need to patch 1st connector con0 to LVDS/eDP type.

 

Example:

ID: 0166000A, STOLEN: 32 MB, FBMEM: 16 MB, VRAM: 1536 MB, Flags: 0x00000000
TOTAL STOLEN: 16 MB, TOTAL CURSOR: 1 MB, MAX STOLEN: 32 MB, MAX OVERALL: 33 MB (34615296 bytes)
Camellia: CamelliaUnsupported (255), Freq: 1808 Hz, FreqMax: 1808 Hz
Mobile: 0, PipeCount: 2, PortCount: 3, FBMemoryCount: 2
[2] busId: 0x05, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
[3] busId: 0x04, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
[4] busId: 0x06, pipe: 0, type: 0x00000800, flags: 0x00000006 - ConnectorHDMI
02050000 00040000 07010000
03040000 00040000 07010000
04060000 00080000 06000000
ID: 0166000B, STOLEN: 32 MB, FBMEM: 16 MB, VRAM: 1536 MB, Flags: 0x00000000
TOTAL STOLEN: 16 MB, TOTAL CURSOR: 1 MB, MAX STOLEN: 32 MB, MAX OVERALL: 33 MB (34615296 bytes)
Camellia: CamelliaUnsupported (255), Freq: 1808 Hz, FreqMax: 1808 Hz
Mobile: 0, PipeCount: 2, PortCount: 3, FBMemoryCount: 2
[2] busId: 0x05, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
[3] busId: 0x04, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
[4] busId: 0x06, pipe: 0, type: 0x00000800, flags: 0x00000006 - ConnectorHDMI
02050000 00040000 07010000
03040000 00040000 07010000
04060000 00080000 06000000

 

Capri FB 0x01660004 or 0x01660009 do offer such LVDS/eDP output out by default because they're mobile layouts:

ID: 01660004, STOLEN: 32 MB, FBMEM: 16 MB, VRAM: 1536 MB, Flags: 0x00000000
TOTAL STOLEN: 16 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 16 MB, MAX OVERALL: 17 MB (18354176 bytes)
Camellia: CamelliaUnsupported (255), Freq: 1808 Hz, FreqMax: 1808 Hz
Mobile: 1, PipeCount: 3, PortCount: 1, FBMemoryCount: 1
[5] busId: 0x03, pipe: 0, type: 0x00000002, flags: 0x00000230 - ConnectorLVDS
05030000 02000000 30020000

 

ID: 01660009, STOLEN: 64 MB, FBMEM: 16 MB, VRAM: 1536 MB, Flags: 0x00000000
TOTAL STOLEN: 16 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 48 MB, MAX OVERALL: 49 MB (51916800 bytes)
Camellia: CamelliaUnsupported (255), Freq: 1808 Hz, FreqMax: 1808 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[1] busId: 0x00, pipe: 0, type: 0x00000002, flags: 0x00000030 - ConnectorLVDS
[2] busId: 0x05, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
[3] busId: 0x04, pipe: 0, type: 0x00000400, flags: 0x00000107 - ConnectorDP
01000000 02000000 30000000
02050000 00040000 07010000
03040000 00040000 07010000

 

Try and patch Capri FB 0x0166000A or 0x0166000B connector con0 with:

framebuffer-con0-enable     1                           NUMBER
framebuffer-con0-alldata    010000000200000030000000    DATA

or things like that, i.e. the LVDS/eDP connector of a Capri mobile framebuffer. Refer to the Whatevergreen User Manual for the list of Capri FB and their settings.

 

Ideally, you'd need the IOReg of a 2013 HD4000 Education iMac13,1 to look at, 2012 iMac13,1 models with nVidia Kepler graphics using headless Capri FB 0x01620006.

Link to comment
Share on other sites

Where could i find the IOReg of the 2013 iMac? I did notice that mactracker didnt list the 2012 as having HD4000, only the Nvidia card but everymac.com did list the education model. I was trying a couple different framebuffer patches from the whatevergreen manual and so far haven't found any that make a difference. Do i need the computer to identify as the 2013 education model for the iGPU to be enabled? Or maybe do i need to try a different connector? Hackintool now lists "Index 1" as external. Not sure if that's what the internal display is connected to, or if it means anything at all.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...