Contribute
Register

HP EliteDesk 800 G2 / HP ProDesk 600 G2 - SUCCESS

Status
Not open for further replies.
I too have only used an SSDT for USB port limit. I have found that using the Hackintool method to be easier for USB issues. I can upload my USBPorts kext if you like and you can try it on your 800 G2 as port layout will be the same. Some I have only as USB 2 and some have both USB 2 and 3 functionality. I enabled 1 port of the spare USB 2 header on the board as is running my bluetooth on my wifi card.

I was curious @sakoula as to the SSDT's functions as any improvements to a hack are always good. Like I said I have never needed them. I am currently working on some whatevergreen framebuffer edits for the HD 530 to get dual screen working. I have managed to get both displays to function but only audio over 1 DP at the moment. This isn't an issue for me but for others it may be. Once that's finished I shall upload my EFI for you to try if you like. Also, are you still interested in an adapter for your PSU?
 
Definitely I am interested! I have made some edits for the dual monitor as well. This worked for me without hotplug. I have not tested the audio. What edits have you done?

```
WhateverGreen: weg @ (DBG) agdpmod using config vit9696
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [2] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [3] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [-1] busId: 0x00, pipe: 0, type: 0x00000001, flags: 0x00000020

Patch

General > Devices/Properties
General > Connectors
General > Auto Detect Changes
Advanced > FB Port Limit 3
Device Id: 0x1912: Intel HD Graphics 530
```

Please share your EFI when ready.


I am definately interested on your PSU!
 
***I am not using AGDPfix at the moment. I am trying to keep macOS files untouched if possible and it might be worth noting that my HD 530 graphics is completely handled by Whatevergreen as described in post #1 of the link below. I don't use any other kexts or injection of any kind***

The code at the bottom I added to Devices\Properties. It essentially switches the connection index of connections 2 and 3 as shown in Hackintool:

This is for Skylake using PlatformID 0x19120000 with the framebuffer for macOS 10.14 selected in Hackintool.

[-1] busID: 0x00, Pipe: 0, Type: Dummy, Flags: 0x00000020
[1] busID: 0x05, Pipe: 9, Type: DP Flags: 0x00000187
[2] busID: 0x04, Pipe: 10, Type: DP Flags: 0x00000187
[3]. busID: 0x06, Pipe: 10, Type: DP Flags: 0x00000187



I realised from the below information that I read here, https://www.tonymacx86.com/threads/guide-intel-framebuffer-patching-using-whatevergreen.256490/ (Post #2, Skylake 1912000 Section), that the connection index shown in Hackintool under connections was incorrect. In IOReg AppleIntelFramebuffer@2 was showing a Port Number of 0x6 which was the busID of connectection 3 in Hackintool which is inaccessible as you can see below there are only 3 indexes (-1 being a dummy) not 4 like in Hackintool.


ID: 19120000, STOLEN: 34 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000110F
TOTAL STOLEN: 56 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 124 MB, MAX OVERALL: 125 MB (131608576 bytes)
GPU Name: Intel HD Graphics 530
Model Name(s): iMac17,1
Camelia: Disabled, Freq: 1388 Hz, FreqMax: 1388 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[-1] busId: 0x00, pipe: 0, type: 0x00000001, flags: 0x00000020 - Dummy
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - DP
FF000000 01000000 20000000
01050900 00040000 87010000
02040A00 00040000 87010000


So the below code essentially switches index 2 and index 3 around. This then gives you a port number of 0x7 under AppleIntelFramebuffer@2 in IOReg which in turn allows the second display to work. Only under hot plug after you are at the desktop at the moment but it seems promising.

I am unsure whether the port number needs to be changed to 0x6 to match the busID and if so, whether this will allow the audio to work over the second monitor. I have noticed that when the second monitor is connected that the audio-codec-info under AppleIntelFramebuffer@1 and AppleIntelFramebuffer@2 in IOReg are different. I am new to framebuffer patching so this may be the case anyhow.

I'm not 100% sure why this works and I may have left some information out as it was 3am when I was experimenting with this and I am now trying to remember what I did but it seems to work fine so far as long as you hot plug.

Oh and the framebuffer-unifiedmem patch ups the VRAM from 1536 Mb to 2048 Mb and you can remove that if you decide to try this.



<key>Properties</key>
<dict>
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>
AAASGQ==
</data>
<key>device-id</key>
<data>
EhkAAA==
</data>
<key>framebuffer-con2-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con2-index</key>
<data>
AwAAAA==
</data>
<key>framebuffer-con3-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con3-index</key>
<data>
AgAAAA==
</data>
<key>framebuffer-patch-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-unifiedmem</key>
<data>
AAAAgA==
</data>
 
Hi @PaintArm2 ,

So As I mentioned for the dual monitor I need to patch the framebuffer table as followes using the hacking tool:

Code:
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [2] busId: 0x06, pipe: 10, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [3] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187
WhateverGreen: igfx @ (DBG) patching framebufferId 0x19120000 connector [-1] busId: 0x00, pipe: 0, type: 0x00000001, flags: 0x00000020

General > Devices/Properties
General > Connectors
General > Auto Detect Changes
Advanced > FB Port Limit 3
Device Id: 0x1912: Intel HD Graphics 530

Booting with both monitors connected works most of the times by using the agdpmod=vit9696 as a boot flag. Sometimes (1 every 10) once I get to the point that it is about to launch the windows the computer stacks there.

My complete list of boot flags is -liludbg -wegdbg -igfxdump -igfxfbdump dart=0 -igfxnohdmi igfxrst=1 agdpmod=vit9696 -cdfon -v

Have you seen THIS post? It making a lot of things clear related to ports and buses.

Also read the WhateverGreenSource it will give you an insight of what to put there.

I will test your findings as well. Thanks!
 
Nice one @sakoula. I shall certainly read up more. I only started looking at the framebuffer edits yesterday so its all rather new to me.

I have attached my current EFI folder with the SMBIOS deleted so you will need to fill those in if you want to try it out.

*EDIT - Removed attachment as was incorrect*

There is only the FakeSMC kext in the Clover\Kext\Other folder. The other kext I use are in the other folder in the upload. Not telling you how to suck eggs but make sure you install those to L\E\ and remove any others you've added that aren't in my folder incase they cause conflicts. I doubt it but you never know.

This Config.plist has my current edits for the HD 530 framebuffer. These are all under Devices\Properties. Anything I've since hasn't worked so I've not included them. I found that I have to boot with my primary display in the top DP and then hotplug my second display into the bottom DP once you reach the log in screen.

Hopefully it will work for you straight away. As you'll see there is no need for injection of any kind for Intel graphics thanks to Whatevergreen.

In the additional folder of kexts is my USBPorts kext. Using this the two ports on the back under the 2 ports next to the LAN port are USB 2 only (use these for my mouse and keyboard), the other 4 are usb 2 and 3. On the front the 2 USB 3 ports are only USB 3 and the 2 USB 2 ports are only USB 2. As I said before, one side of the USB 2 header inside is also live to run my Bluetooth
 
Last edited:
Hi @PaintArm2 ,

Thanks for sharing your EFI partition. I tried your edits (Lilu/WhateverGreen) on my setup. What is not working is booting up with two monitors connected.

I have updated my github repository with my edits that work for my setup (two monitors without hotplug). I am not sure why is that.

Also I notice that you place your kexts in /LE as @RehabMan always states. So it seems that there is a chance that Lilu and Lilu Plugins will not load right when placed on /LE . So you need to use LiluFriend in order to do so. Rehabman at his hack_tools repo has scripts that automatically generate a LiluFriend.kext and a LiluFriendLite.kext. One of the two has to be placed in /LE along with the other kexts. I use the LiluFriendLite.kext since it is completely codeless.

Please find attached my config.plist with my edits. My complete EFI is available on my github repository.
 

Attachments

  • config.elitedesk800.plist
    8.6 KB · Views: 216
@sakoula thanks for trying my EFI. I realised my error with the WEG FB edits last night and corrected them. I noticed your latest update to GitHub about an hour ago and the edits are identical to yours now. Still doesn't work for me but further testing on my other rig shows I have a defective DP cable and I think that's the issue. I am grabbing a replacement shortly.

I shall look into LiluFriend right now and make amendments accordingly.

I have also adopted your method for audio injection and I can confirm that DP audio does indeed work. I noticed that was in your guide for Work in Progress.

Have you tried to boot after removing all your SSDT's that you have and checked for any drop in performance as if they are laptop related they may not have any bearing on your desktop build?

I'm glad to see that FixRTC is working for you now as I know how annoying that was!

thanks for your help
 
Last edited:
Hi @PaintArm2

- I have left it as WIP the DP audio since I do not have any DP monitor with audio capabilities to test.
- I have not tried without my SSDT edits. I do not think they do any harm but I will do at some point when I will have more time.
- Regarding the two monitor setup it is absolutely critical to add agdpmod=vit9696 in the boot args to handle the device policy right. I have tried also agdpmod=pikera which does not work for our SMBIOS/computer setup.

Thanks for your guide regarding the PSU!!!! Do you use another GPU? If so which one?

Please keep me updated with your progress!
 
I am booting with the agdpmod=vit9696 boot args. I manage to boot to the display connected to the bottom DP only, whichever display I have connected there.

Could you confirm for me which Hackintool indexes your displays are connected to? mine are 1 and 3. Any monitor connected to 1 boots to black screen, so I annoyingly, in the wrong configuration, will boot to the second screen and am not able to log in.
 
Status
Not open for further replies.
Back
Top