• Become a Premium Member for $25/year with no ads to improve your community experience.

Intel Core I3 8109U - Iris 655 : Need advanced GPU patching (LSPCON, IGFX0 etc)

Frankynov

New member
Joined
May 29, 2023
Messages
4
Motherboard
Trigkey Speed S1
CPU
Intel Core I3 8109U
Graphics
Intel Iris Plus Graphics 655
OS X/macOS
14.x
Bootloader
  1. OpenCore (UEFI)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Hi everyone,

I'm puzzled for months on this build, and I need an expert look on it :)
The setup is a Mini PC, Trigkey Speed S1 Mini PC.
The config :

- Intel® Core™ i3-8109U CPU @ 3.00GHz (Coffee Lake) --> Link to Intel website the connector is 3EA5.
- 8Gb RAM single channel (1600MHz)
- Intel Iris Plus Graphics 655 (Coffee Lake-U GT3e 28W)
- RealTek Semiconductor RTL8168/8111 PCI-E Gigabit Ethernet NIC
Full config can be browsed here.

The config is similar to an Intel NUC, and I'm using the SMBIOS of Macmini8,1.

The Mini PC itself :

trigkey.jpeg

As you can see, there are 2 HDMI ports, I'm connected directly to a 1080p screen via HDMI cable.
Using your guide, via linux live CD, I was able to confirm that the HDMI ports are correctly seen as HDMI (I plugged to screen on 1 port at a time) :

IMG-2561.jpg


On macos, most of the things work, except for graphics. Let me explain in detail what I have tried.

1) Setting up a AAPL,ig-platform-id with 0000A53E
By doing this, the boot process freezes at the end and I have some artifacts (image at the end of the post), and can't see login screen. Trying to RDP to the machine, it won't work (bad desktop size 0).
I have tried all values here (of course in "reversed" order, so 0900A53E for the 1st one) :

0x3EA50009
0x3E920009
0x3E9B0009
0x3EA50000
0x3E920000
0x3E000000
0x3E9B0000
0x3EA50004
0x3EA50005
0x3EA60005
0x3E9B0006
0x3E9B0008

2) Using -igfxvesa, or setting up device-id 3EA50000
With igfxvesa I can login in macOS but obviusly without acceleration. If I remove that flag and setup a device-id 3EA50000 (or any of the supported ones from This reference page), I also can boot but without acceleration.

Moreover, in IOReg explorer, there is no reference about AppleIntelFrame, but only .Display_boot :

ioreg.png

3) Enabling LSPCON
This didn't seem to have an effect. I'm suspecting that I really need this to work (see more details below).

4) Patching connectors

From the reference above, I have extracted the following :

ID: 3EA50000, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00030B0B
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
Model name: Intel HD Graphics CFL CRB
Camellia: CamelliaDisabled (0), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
00000800 02000000 98000000
01050900 00040000 87010000
02040A00 00040000 87010000

With a nice table format :

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
00000800 02000000 98000000
BitNameValue
1Port00
2Bus ID00
3-4Pipe Number0800
5-8Connector Type02000000
9-12Flags98000000


[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
01050900 00040000 87010000

BitNameValue
1Port01
2Bus ID05
3-4Pipe Number0900
5-8Connector Type00040000
9-12Flags87010000


[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
02040A00 00040000 87010000
BitNameValue
1Port02
2Bus ID04
3-4Pipe Number0A00
5-8Connector Type00040000
9-12Flags87010000


I have guessed that my 2 physical ports are on BUS iD's 4&5 (two last values in table). I am forcing them to HDMI and not touching the first port (huge assumption here so let me know if it's not correct)

Proposed patch :

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
00000800 02000000 98000000 (no change)
BitNameValue
1Port00
2Bus ID00
3-4Pipe Number0800
5-8Connector Type02000000
9-12Flags98000000


[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
01050900 00080000 87010000

BitNameValue
1Port01
2Bus ID05
3-4Pipe Number0900
5-8Connector Type00080000
9-12Flags87010000


[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
02040A00 00080000 87010000
BitNameValue
1Port02
2Bus ID04
3-4Pipe Number0A00
5-8Connector Type00080000
9-12Flags87010000


Which gives me this in the config.plist of OpenCore :

patching1.png

Sadly... No luck ! Still stuck after the verbose screen :(

I have also tried with LSPCON patching :

patchin2lspcon.png

Note that I have also added
framebuffer-patch-enable > Data > 01000000
framebuffer-stolenmem
> Data > 00003001

Same issue.
I have tried similar approach with framebuffer value 3EA50004 & 3EA50009.

The machine is very similar (if not to say, a clone) to the Beelink SEi8 machine.
I have found this github repository, the difference here is that it's an I5 CPU instead of my I3 : https://github.com/daliansky/Beelink-SEi8-Hackintosh

What's curious, they use the AAPL,ig-platform-id with 0900A53E which has this values :

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000001C7 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000001C7 - ConnectorDP
00000800 02000000 98000000
01050900 00040000 C7010000
02040A00 00040000 C7010000

But instead, they use these values :

framebuffer-con0-alldata00000800 00000000 98000000
framebuffer-con1-alldata01010900 00080000 C7030000
framebuffer-con2-alldata02020A00 00080000 C7030000


I understand that in con0, Pipe number set to 00 is disabling the port ?
But what I don't understand is that they seem to change the BUS ID from 05 & 04 to 01 & 02 for con1/con2, and the middle of flag from C701 to C703. Why ?
Obviously I have tried to copy/paste these values but no luck.

These are my BIOS settings :

biosTrigkeyIGPU.jpg


Often when I try advanced patching as suggested all in this post, I'm getting stuck after verbose boot with glitches on the screen (see on top of image) :

glitches.jpeg

Any idea ?
I think I have almost done everything I could, but I would gladly try other methods !

Thanks a lot for reading :)
 
I'm puzzled for months on this build, and I need an expert look on it :)
The setup is a Mini PC, Trigkey Speed S1 Mini PC.
The config :

- Intel® Core™ i3-8109U CPU @ 3.00GHz (Coffee Lake) --> Link to Intel website the connector is 3EA5.
- 8Gb RAM single channel (1600MHz)
- Intel Iris Plus Graphics 655 (Coffee Lake-U GT3e 28W)
- RealTek Semiconductor RTL8168/8111 PCI-E Gigabit Ethernet NIC
Full config can be browsed here.

The config is similar to an Intel NUC, and I'm using the SMBIOS of Macmini8,1.

The Mini PC itself :

trigkey.jpeg

As you can see, there are 2 HDMI ports, I'm connected directly to a 1080p screen via HDMI cable.
Using your guide, via linux live CD, I was able to confirm that the HDMI ports are correctly seen as HDMI (I plugged to screen on 1 port at a time) :

IMG-2561.jpg
Indeed, this is similar to NUC. Did you check the Type-C port whether it is capable of display or not?

1) Setting up a AAPL,ig-platform-id with 0000A53E
By doing this, the boot process freezes at the end and I have some artifacts (image at the end of the post), and can't see login screen. Trying to RDP to the machine, it won't work (bad desktop size 0).
I have tried all values here (of course in "reversed" order, so 0900A53E for the 1st one) :

0x3EA50009
0x3E920009
0x3E9B0009
0x3EA50000
0x3E920000
0x3E000000
0x3E9B0000
0x3EA50004
0x3EA50005
0x3EA60005
0x3E9B0006
0x3E9B0008
Glitches and artifacts are normal when there is no acceleration.

2) Using -igfxvesa, or setting up device-id 3EA50000
With igfxvesa I can login in macOS but obviusly without acceleration. If I remove that flag and setup a device-id 3EA50000 (or any of the supported ones from This reference page), I also can boot but without acceleration.
-igfxvesa disables the acceleration and runs in VESA mode. 8109U has 3EA5 as a Device ID which is natively supported and you don't need to spoof the device ID or even put it again to match.

Moreover, in IOReg explorer, there is no reference about AppleIntelFrame, but only .Display_boot :

ioreg.png
This is expected. Framebuffer details are available when you have acceleration otherwise on systems with IGPU where acceleration isn't working, it will show as .Display_boot.

3) Enabling LSPCON
This didn't seem to have an effect. I'm suspecting that I really need this to work (see more details below).
LSPCON is mainly used if you have 2.0 HDMI output otherwise not required.

From the reference above, I have extracted the following :


With a nice table format :

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
00000800 02000000 98000000
BitNameValue
1Port00
2Bus ID00
3-4Pipe Number0800
5-8Connector Type02000000
9-12Flags98000000


[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
01050900 00040000 87010000

BitNameValue
1Port01
2Bus ID05
3-4Pipe Number0900
5-8Connector Type00040000
9-12Flags87010000


[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
02040A00 00040000 87010000
BitNameValue
1Port02
2Bus ID04
3-4Pipe Number0A00
5-8Connector Type00040000
9-12Flags87010000


I have guessed that my 2 physical ports are on BUS iD's 4&5 (two last values in table). I am forcing them to HDMI and not touching the first port (huge assumption here so let me know if it's not correct)

Proposed patch :

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
00000800 02000000 98000000 (no change)
BitNameValue
1Port00
2Bus ID00
3-4Pipe Number0800
5-8Connector Type02000000
9-12Flags98000000


[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
01050900 00080000 87010000

BitNameValue
1Port01
2Bus ID05
3-4Pipe Number0900
5-8Connector Type00080000
9-12Flags87010000


[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
02040A00 00080000 87010000
BitNameValue
1Port02
2Bus ID04
3-4Pipe Number0A00
5-8Connector Type00080000
9-12Flags87010000


Which gives me this in the config.plist of OpenCore :

patching1.png


Sadly... No luck ! Still stuck after the verbose screen :(

I have also tried with LSPCON patching :

patchin2lspcon.png


Note that I have also added
framebuffer-patch-enable > Data > 01000000
framebuffer-stolenmem
> Data > 00003001

Same issue.
I have tried similar approach with framebuffer value 3EA50004 & 3EA50009.
Wrong Platform ID selection, hence the wrong data.

The machine is very similar (if not to say, a clone) to the Beelink SEi8 machine.
I have found this github repository, the difference here is that it's an I5 CPU instead of my I3 : https://github.com/daliansky/Beelink-SEi8-Hackintosh

What's curious, they use the AAPL,ig-platform-id with 0900A53E which has this values :


But instead, they use these values :

framebuffer-con0-alldata00000800 00000000 98000000
framebuffer-con1-alldata01010900 00080000 C7030000
framebuffer-con2-alldata02020A00 00080000 C7030000


I understand that in con0, Pipe number set to 00 is disabling the port ?
But what I don't understand is that they seem to change the BUS ID from 05 & 04 to 01 & 02 for con1/con2, and the middle of flag from C701 to C703. Why ?
Obviously I have tried to copy/paste these values but no luck.
The C703 is a connector flag and it depends on the platform id you choose. It is useful in all data method.

As explained in the installation guide, one should not use the EFI of others.

Provide your EFI folder to check further.
 
Indeed, this is similar to NUC. Did you check the Type-C port whether it is capable of display or not?
Hi ! First, thanks for your reply !
Here you can download my current EFI.
Yes, I did try to attach a Type C to HDMI adapter (which works on my Macbook Pro), but there is no output at all (tried the Type C on both directions).

-igfxvesa disables the acceleration and runs in VESA mode. 8109U has 3EA5 as a Device ID which is natively supported and you don't need to spoof the device ID or even put it again to match.

Indeed, and that's exactly how I understood it.
I'm suspecting that the machine is not built properly as 3EA5 value is not working.
If I put in device properties AAPL,ig-platform-id with 0900A53E or 0000A53E, I don't get an output (or glitchy one which won't pass the verbose boot).
That's why I try to "spoof it" with device-id 3EA50000 but as I understand, doing that disables all the patches of whatevergreen including the acceleration.

LSPCON is mainly used if you have 2.0 HDMI output otherwise not required.
Ok, since I am using a 1080p HDMI screen I don't think it is crucial at this moment then.
 
Yes, I did try to attach a Type C to HDMI adapter (which works on my Macbook Pro), but there is no output at all (tried the Type C on both directions).
Not all Type-C is capable of display output.

I'm suspecting that the machine is not built properly as 3EA5 value is not working.
No, that's not the case for sure.

If I put in device properties AAPL,ig-platform-id with 0900A53E or 0000A53E, I don't get an output (or glitchy one which won't pass the verbose boot).
That's why I try to "spoof it" with device-id 3EA50000 but as I understand, doing that disables all the patches of whatevergreen including the acceleration.
Patching is not proper and such results are expected.

Ok, since I am using a 1080p HDMI screen I don't think it is crucial at this moment then.
I guess so.
 

Trending Threads

Latest posts

Forum statistics

Threads
1,713
Messages
16,062
Members
24,900
Latest member
jersobh