Contribute
Register

[solved] Intel 4400 GPU compatibility on GB-BXi5H-4200

Status
Not open for further replies.
Joined
Apr 29, 2015
Messages
44
Motherboard
Z
CPU
Z
Graphics
Z
I've run into some trouble getting the Intel 4400 Graphics on the Gigabyte GB-BXi5H-4200 (the recommended nano Mac build) working with full resolution accelerated graphics. Is there anyone who actually has the "Customac Nano" hardware configuration working? Based on the forum posts I'm reading here and elsewhere, the 4400 on the Haswell platform may not really be supported on Yosemite.


  • I installed OS X successfully using the -x maxmem=8192 flag
  • I ran MultiBeast and installed the proper Realtek sound and network drivers
  • I followed the instructions for 4400 support here and installed the FakePCIID for the HD4400 with KextBeast. The kext doesn't show up in kextstat and the system report shows an Intel HD Graphics 4400 GPU with 3MB RAM and no kext loaded at 1024x768.
  • When that failed, I followed the suggestion of someone with the same machine and used IGPlatformID=0D220003. This also failed.
  • I was able to force the resolution to the proper 1920x1200, but it's without acceleration and essentially unusable.

My current org.chameleon.Boot.plist is below.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EthernetBuiltIn</key>
    <string>Yes</string>
      <key>GraphicsEnabler</key>
    <string>No</string>
    <key>IGPEnabler</key>
    <string>Yes</string>
        <key>IGPDeviceID</key>
        <string>0412</string>
    <key>Kernel Flags</key>
    <string>kext-dev-mode=1</string>
    <key>Legacy Logo</key>
    <string>Yes</string>
    <key>Timeout</key>
    <string>2</string>
        <key>HDEFLayoutID</key>
        <string>03000000</string>
        <key>GenerateCStates</key>
        <string>Yes</string>
        <key>GeneratePStates</key>
        <string>Yes</string>
        <key>UseKernelCache</key>
        <string>Yes</string>
        <key>HDAEnabler</key>
        <string>Yes</string>
</dict>
</plist>
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

After re-reading the post and footnotes about Chimera boot flags a bunch of times, I realized that it mentioned the 4400 explicitly, and it occurred to me to use IGPlatformID and IGPDeviceID simultaneously, setting IGPlatformID to 0D220003 and IGPDeviceID to the FakePCIID kext ID of 0412. Unfortunately, this didn't make any difference at all. In fact, after dozens of reboots in the course of playing configuration roulette (and not even causing a crash), I'm starting to wonder if I haven't done something very wrong such that the chameleon boot plist just has no effect at all.

EDIT:
It appears that the IGPlatformID setting is working, as bdmesg shows:
Code:
Intel HD Graphics 4400 [8086:0a16] (rev 09)
Subsystem: [1458:d000] :: PciRoot(0x0)/Pci(0x2,0x0)
Using 0x)D220003 for ig-platform-id

Since my IGPlatofrm ID is 0D220003 and my IGPDeviceID is 0a26, this suggests the latter isn't working. Looking back again at the boot flag post, I see that 0a16 is a 44/4600 model, but not the default of 0412 and not the 0a26 I set based on the chart in that post. That entry on the chart, however, would seem to conflict the with documentation for FakePCIID on Github where it's stated that "8086:0a16 is HD4400 mobile."

So either the bootloader is more clever than I am and picking the right 0a16 ID no matter what I put in the boot plist or the 0a26 in the chart is incorrect. Either way, it I'm unable to get anywhere attempting to change device ID's (if that's even a possibility).
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

After re-reading the post and footnotes about Chimera boot flags a bunch of times, I realized that it mentioned the 4400 explicitly, and it occurred to me to use IGPlatformID and IGPDeviceID simultaneously, setting IGPlatformID to 0D220003 and IGPDeviceID to the FakePCIID kext ID of 0412. Unfortunately, this didn't make any difference at all. In fact, after dozens of reboots in the course of playing configuration roulette (and not even causing a crash), I'm starting to wonder if I haven't done something very wrong such that the chameleon boot plist just has no effect at all.

EDIT:
It appears that the IGPlatformID setting is working, as bdmesg shows:
Code:
Intel HD Graphics 4400 [8086:0a16] (rev 09)
Subsystem: [1458:d000] :: PciRoot(0x0)/Pci(0x2,0x0)
Using 0x)D220003 for ig-platform-id

Since my IGPlatofrm ID is 0D220003 and my IGPDeviceID is 0a26, this suggests the latter isn't working. Looking back again at the boot flag post, I see that 0a16 is a 44/4600 model, but not the default of 0412 and not the 0a26 I set based on the chart in that post. That entry on the chart, however, would seem to conflict the with documentation for FakePCIID on Github where it's stated that "8086:0a16 is HD4400 mobile."

So either the bootloader is more clever than I am and picking the right 0a16 ID no matter what I put in the boot plist or the 0a26 in the chart is incorrect. Either way, it I'm unable to get anywhere attempting to change device ID's (if that's even a possibility).

You need to use a supported ID for IGPDeviceID (eg. IGPDeviceID=0412). It doesn't matter what your native ID is.

And, of course, you need to install the FakePCIID kexts. Also, make sure you set the values for flags as required. You don't use a 0x prefix with IGPDeviceID, IGPlatformID, etc. So, IGPDeviceID=0x412 is invalid, must be IGPDeviceID=0412. Same with IGPlatformID. IGPlatformID=0x0d220003 is invalid, must be IGPlatformID=0D220003.

See here for details: http://www.tonymacx86.com/graphics/...ics-fix-full-support-alternate-cpus-os-x.html
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

That all seems very reasonable and essentially goes along with your posts and the FakeKExt documentation (though I'm still unable to figure out the apparent ID consistencies I mentioned between the post on boot options and the FakeKExt documentation). But it doesn't seem to work. In my latest configuration, I have the file below and I've never incorrectly used the hex notation you describe.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EthernetBuiltIn</key>
    <string>Yes</string>
      <key>GraphicsEnabler</key>
    <string>No</string>
    <key>IGPEnabler</key>
    <string>Yes</string>
        <key>IGPlatformID</key>
        <string>0D220003</string>
        <key>IGPDeviceID</key>
        <string>0412</string>
    <key>Kernel Flags</key>
    <string>kext-dev-mode=1</string>
    <key>Legacy Logo</key>
    <string>Yes</string>
    <key>Timeout</key>
    <string>2</string>
        <key>HDEFLayoutID</key>
        <string>03000000</string>
        <key>GenerateCStates</key>
        <string>Yes</string>
        <key>GeneratePStates</key>
        <string>Yes</string>
        <key>UseKernelCache</key>
        <string>Yes</string>
        <key>HDAEnabler</key>
        <string>Yes</string>
</dict>
</plist>

EDIT: To be clear, the confusion I'm referring to is whether the 4400 is 0a26 (as in the chart on the boot options post) or 0a16 (as specified for the 4400 on the Github documentation). Though if I understand your last post correctly (and I'm not sure I do), that difference doesn't matter. I'll sadly admit to trying every ID mentioned in these posts, but I'm reasonably sure the KExt mechanism simply isn't functioning on my machine -- these ID's I'm inputting are irrelevant.
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

That all seems very reasonable and essentially goes along with your posts and the FakeKExt documentation (though I'm still unable to figure out the apparent ID consistencies I mentioned between the post on boot options and the FakeKExt documentation). But it doesn't seem to work. In my latest configuration, I have the file below and I've never incorrectly used the hex notation you describe.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EthernetBuiltIn</key>
    <string>Yes</string>
      <key>GraphicsEnabler</key>
    <string>No</string>
    <key>IGPEnabler</key>
    <string>Yes</string>
        <key>IGPlatformID</key>
        <string>0D220003</string>
        <key>IGPDeviceID</key>
        <string>0412</string>
    <key>Kernel Flags</key>
    <string>kext-dev-mode=1</string>
    <key>Legacy Logo</key>
    <string>Yes</string>
    <key>Timeout</key>
    <string>2</string>
        <key>HDEFLayoutID</key>
        <string>03000000</string>
        <key>GenerateCStates</key>
        <string>Yes</string>
        <key>GeneratePStates</key>
        <string>Yes</string>
        <key>UseKernelCache</key>
        <string>Yes</string>
        <key>HDAEnabler</key>
        <string>Yes</string>
</dict>
</plist>

EDIT: To be clear, the confusion I'm referring to is whether the 4400 is 0a26 (as in the chart on the boot options post) or 0a16 (as specified for the 4400 on the Github documentation). Though if I understand your last post correctly (and I'm not sure I do), that difference doesn't matter. I'll sadly admit to trying every ID mentioned in these posts, but I'm reasonably sure the KExt mechanism simply isn't functioning on my machine -- these ID's I'm inputting are irrelevant.

Post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

0xa16 is HD4400 mobile (my Lenovo u430 is 0xa16)
0x41e is HD4400 desktop.

Those are native IDs (eg. actual IDs of the device... those that you would see in an 'lspci -nn' listing in Linux). Has nothing to do with the IDs you might use as FakeIDs.

Please note that the BRiX has a mobile CPU and thus mobile integrated graphics.
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

I've attached the output of IOReg. But it may be appropriate at this point to reframe my question from "Is this recommended build's Intel 4400 compatible" to "Why isn't FakeKExt working on my computer."
 

Attachments

  • 4400.ioreg
    2.8 MB · Views: 215
Intel 4400 GPU compatibility on GB-BXi5H-4200

I've attached the output of IOReg. But it may be appropriate at this point to reframe my question from "Is this recommended build's Intel 4400 compatible" to "Why isn't FakeKExt working on my computer."

Are you certain you installed FakePCIID.kext and FakePCIID_HD4600_HD4400.kext? Your ioreg doesn't show them loaded. Boot -f (ignore caches) and repost ioreg if you think you have them installed.

Also, IGPDeviceID is either not specified or not effective. The device-id is still 0xa16 in ioreg on IOService:GFX0 and it is confirmed by the GFX0 injections at IOACPIPlane:GFX0.

Perhaps you're not using the org.chameleon.Boot.plist you think you are... Multiple partitions?
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

I have installed those before, but to make sure, I used KextWizard (you never know if KextBeast has worked as it provides no useful output) and made sure to clear caches and repair permissions. I've attached the IOReg output in case anything has changed, but I don't believe it has. The device still shows up as 0xa16.

This is a pretty simple install. There's one partition and OS X is the only OS I'll be using. All the other parameters in the plist seem to have an effect (including platform), just not the device ID injection, which appears to do nothing. But I'll trawl around and see if I'm somehow using the wrong one. But /Extra/org.chameleon.Boot.plist appears to be the only file of its sort on my system.

EDIT: Looking more closely after reboot, it would appear (using KExt Wizard) that org.rehabman.driver.FakePCIID is loaded, but not the 4400/4600 KExt.
 

Attachments

  • kext.ioreg
    2.8 MB · Views: 226
Intel 4400 GPU compatibility on GB-BXi5H-4200

I have installed those before, but to make sure, I used KextWizard (you never know if KextBeast has worked as it provides no useful output) and made sure to clear caches and repair permissions. I've attached the IOReg output in case anything has changed, but I don't believe it has. The device still shows up as 0xa16.

This is a pretty simple install. There's one partition and OS X is the only OS I'll be using. All the other parameters in the plist seem to have an effect (including platform), just not the device ID injection, which appears to do nothing. But I'll trawl around and see if I'm somehow using the wrong one. But /Extra/org.chameleon.Boot.plist appears to be the only file of its sort on my system.

Now FakePCIID is loaded. You probably need to rebuild cache (make sure to check for errors). You can see it under the GFX0 node in ioreg.

Post the org.chameleon.Boot.plist you're using.
 
Intel 4400 GPU compatibility on GB-BXi5H-4200

Using both KExt Wizard and by touch'ing /Library/Extensions, I've rebuilt cache before each reboot. Below is my current /Extra/org.chameleon.Boot.plist

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EthernetBuiltIn</key>
    <string>Yes</string>
      <key>GraphicsEnabler</key>
    <string>No</string>
    <key>IGPEnabler</key>
    <string>Yes</string>
        <key>IGPlatformID</key>
        <string>0D220003</string>
        <key>IGPDeviceID</key>
        <string>0412</string>
    <key>Kernel Flags</key>
    <string>kext-dev-mode=1</string>
    <key>Legacy Logo</key>
    <string>Yes</string>
    <key>Timeout</key>
    <string>2</string>
        <key>HDEFLayoutID</key>
        <string>03000000</string>
        <key>GenerateCStates</key>
        <string>Yes</string>
        <key>GeneratePStates</key>
        <string>Yes</string>
        <key>UseKernelCache</key>
        <string>Yes</string>
        <key>HDAEnabler</key>
        <string>Yes</string>
</dict>
</plist>
 
Status
Not open for further replies.
Back
Top