Jump to content

[SOLVED] Intel ME corruption causes HD 4600 to get no QE/CI in Mojave


shrieken213
 Share

10 posts in this topic

Recommended Posts

Hello,

 

I'm trying to get this bugger working again as I'm ditching Nvidia and don't have a usable Mojave-compatible dGPU while I get an AMD one.

 

It's absolutely frustrating. No matter what I do with this it won't work. It used to work perfectly fine in Yosemite and Sierra.

 

It kept getting the busy timeout error at boot in High Sierra, so I tried updating to Mojave. No luck.

 

I've switched from Clover auto-injection to Lilu/WEG as I heard Clover injection doesn't work with Mojave. It so far injects the IDs fine. Since it's a 4790K with native device-id 0x0412 I should theoretically only need to inject the framebuffer ID using WEG.

 

Nope. Doesn't work at all if I use a valid framebuffer specified in the list, e.g. 0x0300220d. HDMI monitor is not detected if I use it and I can only access it via VNC. Ironically, if I use a dummy ig-platform-id (i.e. -igfxvesa) it at least spits out the unaccelerated screen on the monitor. What?

 

IOReg and kextstat shows that the framebuffer kext is loading, and Hackintool shows that the WEG injection is working.

 

BIOS DVMT memory is set to 64 MB, multi-monitor and VT-d off. I do have FakePCIID in /L/E for Wi-Fi, Bluetooth and Handoff (these work perfectly fine), but nothing for graphics. DSDT is vanilla except for SSDTs regarding SpeedStep, USB port injection and Wi-Fi.

 

What the heck am I doing wrong here?

1.jpg

2.jpg

Balthasar.iojones

config.plist

Edited by shrieken213
Link to comment
Share on other sites

9 hours ago, millusions said:

just finished building a haswell box yesterday. first with GT 650 which works OOB but only one DVI screen would wake up on wake. so ditched it for HD 4600.

i use mine through DP. HDMI Intel tends to look 5hit in my experience.

 

mojave 10.14.3

 

all it needs is 'inject intel'

set BIOS memory to 64 or 96mb everyone says, i left mine on auto.

have lilu and whatever as well - that's all it needs.

 

my guess, since you're having so many issues is that your clover needs updating and the right clover drivers, not kexts, drivers

 

I'm on the latest Clover release (r4895) with the latest drivers.

Are you sure about Inject Intel? WEG specifically says to disable it in the readme.

Link to comment
Share on other sites

2 hours ago, millusions said:

1. if you want help here you need to post your settings etc. not write a dairy of your adventures like most do and leave it up to the reader to guess as to what youre actually fking up :)

2. you're doing the same mistakes i was doing 12 months ago, reading and studying every read me to tame the hack beast. just keep it simple and start with default settings and then tweak them. not study every boot flag etc. ive never read the whatever green read me or used any of the flags - normal use shouldnt have to.

3. according to whatever green read me -igfxvesa to boot Intel graphics without hardware acceleration (VESA mode). so why the suprise?

1. I have my config.plist and IOReg in the OP. The "diary" you refer to is there to rule out solutions that don't work.

2. Take a read. WEG automatically injects all the properties that Inject Intel would do. If anything, you shouldn't need Inject Intel if WEG does what it's supposed to do.

3. The surprise is that disabling hardware acceleration works better than enabling?

 

Just tried double injection. No change, doesn't work.

Edited by shrieken213
Link to comment
Share on other sites

Further fidgeting with the config.plist:

 

Inject Intel does absolutely nothing in Mojave. Confirmed by removing Lilu/WEG and attempting to inject via the old Clover method. Framebuffer injection via the Properties section works as intended, but the device model appears as Intel Iris Pro, which should show "Intel HD Graphics 4600" should Inject Intel be functioning.

 

That however does show that the properties are being read and framebuffer being recognized. This seems to be a kextd stall problem.

 

This issue has also occurred in other versions as well, apparently...

Edited by shrieken213
Link to comment
Share on other sites

14 hours ago, millusions said:

i should probably add that my config was reviewed and fixed by MaLdOn when he did DSDT so it should be safe to be used a guide

 

Your config.plist is a giant mess...

 

1. You shouldn't need any DSDT fixes except where it is required by your mobo. In my case, I need none.

2. HECI to IMEI patch is handled by WEG. You do not need it.

3. GFX0 to IGPU patch is handled by WEG. It is redundant and you should delete it.

4. You should not need dart=0 if you disabled VT-d in the BIOS.

5. -disablegfxfirmware is only required for Kaby Lake and above IIRC. It should also not be necessary if you're using WEG.

6. Audio inject 9 isn't a thing AFAIK. It's either 1, 2 or 3. Read this. Unless you're using some other injection that I am not aware of.

7. The entire USB section does not function correctly on Z97. You do not need to enable any of them unless you're still on Z87. I cannot comment on other chipset generations.

8. Inject Intel does nothing in Mojave and may instead cause conflict with WEG. You should disable it.
 

I have memory module information injected in the SMBIOS because the system won't read the frequency correctly (says 2000 Mhz even with XMP). This is purely cosmetic.

 

Are you sure you know what you're doing? I could care less at who looked at your configs. If you're giving the advice, you need to understand what you're doing.

Edited by shrieken213
Link to comment
Share on other sites

Booting from a vanilla USB installation with the same injections give the same error again, except the timeout interval is 240 seconds instead of 60.

Tried adding DSDT patches for IRQ. No change.

Tried deleting the DSDT and starting fresh. No change.

Same goes for a fresh Clover installation with a new config. Does not change a thing.

Same goes for Clover version rollbacks. Previous versions also have the same error.

Also tried optimized default BIOS settings with minimal changes for booting. Same thing.

Will continue exploring options to nail this down. 

Edited by shrieken213
Link to comment
Share on other sites

The issue has been completely identified.

 

The latest BIOS for the ASUS Maximus VII Gene has a broken implementation of Intel MEI. It does not function in Windows, much less macOS. The device is there and present as evident in the DSDT (HECI device is there), but does not function. As IMEI is required to load the IGPU drivers in macOS, this causes the driver failure.

 

The immediate solution would be to mod the BIOS and patch the ME region. Unfortunately the latest version presumably has Spectre/Meltdown fixes, and I haven't modded BIOSes before, only VBIOS when overclocking GPUs. I'll give this a go when I get the chance.

 

In the meantime I'll have to revert the BIOS to an older version. I'll post the results of this later today.

Link to comment
Share on other sites

The issue has been fixed.

 

The board's ME firmware was corrupt. Modding the BIOS to fix ME in conjunction with directly flashing the non-corrupt firmware to the ME region using FTK did the trick. Note that Windows was used for the fix.

 

What was the issue? macOS currently expects a functioning ME device (HECI/IMEI) for Intel graphics to fully load. Because the firmware was corrupt, the kexts only loaded halfway and kextd stalled. On Windows, the ME device was "disconnected" in Device Manager.

 

This is why even with IMEI in the IOReg, correct Clover settings and FramebufferAzul and HD5000Graphics kexts loaded in kextstat I could not get QE/CI, or even a proper graphics output.

 

Once the firmware was restored, the ME coprocessor booted completely and the hack gets full acceleration now.

 

For future note: should this method fail, the only option is to buy a new preflashed BIOS chip. Proceed with care.

after.BMP

before.BMP

Screen Shot 2019-03-25 at 10.49.12 PM.png

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...