Contribute
Register

Gigabyte brix GB-BXi5H-4200

Status
Not open for further replies.
Joined
May 1, 2015
Messages
1
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
I am trying to install yosemite on a B-BXi5H-4200. (Its on the main buyer guide page) I have tried clover and unibeast approaches. Both seem to get hung on the bluetooth / usbhxci. I have read that this has something to do with the video card. I've tried 20-30 combinations of bootflags, none of which make a difference.

The processor is 4[SUP]th[/SUP] generation Intel[SUP]®[/SUP] Core™ i5-4200U 1.6GHz / 2.6GHz which I believe makes it a haswell.

Has anyone had success with this model? I assume so since it is on the buyer guide list. Is there a trick for this model?

If not, what are the key differentiators that make a difference in the install? Troubleshooting by trial and error with infinite possibilities is not a quick path to success. There are many different kext files, boot flags and getting a handle on where to look has proved difficult for me.
 
As of Yosemite this unit requires injecting the device id for HD 4400 mobile. See the following post for details

Intel HD4400 Mobile [8086:0a16] using FakePCIID
Use ig-platform-id 0xa260006

http://www.tonymacx86.com/yosemite-...tel-hd4200-hd4400-hd4600-mobile-yosemite.html

I don't have this particular model to test with at this time, however you may have to install fakepciid to UniBeast USB or Clover config.plist as shown.

Chimera would need IGPlatformID=a2600006 flag in addition to the kext.
 
hackingaway, were you able to get this working? After many hours of struggling, I successfully completed the install last night. I thought I'd share my process for anyone who's having trouble, and also for feedback and input by anyone who knows more about this than I do (which is not very much).

I'm still having a lot of trouble with the post-install, particularly the graphics and possibly the USB, and I haven't been able to get tony's solution to work for me – but that's a story for another board.

BIOS Configuration

  • <F2> or <DEL> to enter BIOS
  • <F3> to set Optimized Defaults
  • Advanced > CPU Configuration > Intel Virtualization Technology: Disabled
    (Not sure about this step. I came across references to disable VT-d – e.g., Lifehacker – but I'm not sure if this is the same thing. In any case, my system would occasionally freeze without notice, both during install and after, until I disabled this setting.)
  • Advanced > CPU Configuration > CFG Lock: Disabled 1

DSDT Patching: Possibly Unnecessary?
Not to question tony's authority, but this is where I wonder if maybe I could have saved myself a heap of trouble. My first time around, I didn't disable Intel VT. The UniBeast USB booted fine, installation started up without a hitch, and then it froze when the screen read about 7 minutes remaining (not a hung installation, but unresponsive to keyboard/mouse input as well). That's when I stumbled on this thread and wound my way down the twisty, :banghead:-til-sunrise path of DSDT patching.

After patching the DSDT, the installation completed okay, but I experienced another spontaneous freeze post-install. That's when I disabled Intel VT and the freezing went away. I am preparing to retry the installation without FakePCIID and the patched DSDT, but if anyone else wants to chime in with some insight, I'd be happy to hear it.

---EDIT---

Okay, shouldn't have questioned Tony. Disabling Intel VT alone did not resolve install-time hangs; DSDT patching / graphics id spoofing was likely what made install possible, though the issue is still far from fixed.

---/EDIT---

DSDT Patching: The Process
I copied the specified kexts from FakePCIID to the install USB (/System/Library/Extensions),2 which took about five seconds. Patching the DSDT, as a first-timer, was a bit more of a challenge.

For anyone who, like me last night, knows nothing about DSDTs, the gist is that it's information supplied by the BIOS that helps the OS interface with on-board hardware. On systems where the hardware is not made for the software, or vice versa (e.g., Hackintoshes and some Linux boxes), DSDTs may need to be modified to help the OS figure out how to use the hardware. Fortunately, this can be done without overwriting the motherboard's built-in DSDT; just place the modified DSDT in the right place on your hard drive, and Mac OS will look there before consulting the one supplied by the BIOS.

The trouble is that the DSDT (and other ACPI tables) provided by your BIOS are compiled into machine language – that is, not human-readable. In order to apply patches, they must first be decompiled into human-readable code, then edited, then re-compiled back into machine language for the OS to use.


What the Guides Told Me to Do [Ubuntu LiveUSB Method]:

  1. Pull the native DSDT from the machine:
    Code:
    sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.aml
  2. Decompile the DSDT from machine language (.aml) to a .dsl file
    Code:
    iasl -d dsdt.aml
  3. Apply the patch with the utility of your choice
    MaciASL seems to be the most widely endorsed around here; DSDTEditor is a GUI tool written in Java, meaning it's cross-platform.​
  4. Re-compile the .dsl back into a machine-language .aml
    DSDTEditor Demo (YouTube)
  5. Place your new DSDT.aml file in /Extra to override the onboard DSDT.
But I kept getting the following warning message at Step 2:
Code:
iASL  Warning: There were 11 external control methods found during
disassembly, but only 0 was resolved (11 unresolved). Additional ACPI
tables may be required to properly disassemble the code. The resulting
disassembler output file may not compile because the disassembler did not
know how many arguments to assign to the unresolved method.
What Worked (Sort Of):
Sure enough, when attempting to re-compile (Step 4), iasl / DSDTEditor would throw errors. I eventually discovered that supplying SSDTs to iasl at decompile time resolved some (but not all) of the issues:
Code:
sudo cat /sys/firmware/acpi/tables/SSDT1 > ssdt1.aml && \
sudo cat /sys/firmware/acpi/tables/SSDT2 > ssdt2.aml && \
sudo cat /sys/firmware/acpi/tables/SSDT3 > ssdt3.aml && \
sudo cat /sys/firmware/acpi/tables/SSDT4 > ssdt4.aml && \
sudo cat /sys/firmware/acpi/tables/SSDT5 > ssdt5.aml && \
sudo cat /sys/firmware/acpi/tables/SSDT6 > ssdt6.aml && \
sudo iasl -e ssdt*.aml -da dsdt.aml
Now, the warning message read:
Code:
iASL Warning: There were 10 external control methods found during
disassembly, but only 6 were resolved (4 unresolved)...
Returning to Step 3 above, I applied the patch provided by the-darkvoid in tony's link above.
Code:
into method label _DSM parent_adr 0x00020000 remove_entry; 
into device name_adr 0x00020000 insert 
begin 
Method (_DSM, 4, NotSerialized)n 
{n     
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }n     
    Return (Package()n     
    {n         
        "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },n         
        "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },n         
        "hda-gfx", Buffer() { "onboard-1" },n         
        "model", Buffer() { "Intel HD 4600" },n     
    })n 
}n 
end;
(tony mentions ig-platform-id "0xa260006" in the post above, which appears as "0x06 0x00 0x26 0x0a" in the-darkvoid's patch. This part had me very confused for at least a couple hours, but I'm pretty sure, as you can see by my handy-dandy color-coding, that these are the same number in two different formats with the byte-order reversed. I still have no idea what that means or why, though.)

(I also haven't figured out why, in the two DSDT patches provided by the-darkvoid, one has "n" at the end of each line in the 'begin/end' block while the other has "\n" instead. In most of the DSDT patches I see on github, it's \n, so I went through and replaced "n" with "\n" before running this patch. I also changed the name on the "Model" line to "Intel HD 4400", and have no idea whether that's okay. :shh: )

But now I was getting an unrelated error on compile! This patch by RehabMan did the trick. (There appears to be reference elsewhere that this MDBG error is common, and that it's unproblematic to remove the offending code.)

Here's the DST (both compiled and de-compiled), if anyone's interested. Definitely more for review, testing, and feedback than production use.

View attachment dsdt-bxi5h-patched.zip

Onto Step 4: After the SSDT fix, the DSDT compiles without a hitch. (Well. It compiles without about 30 warnings, but no errors!)

Step 5: dsdt.aml is moved to the /Extra/ folder of the UniBeast install USB.

Boot UniBeast & Install

Hopefully, this step requires no further explanation.

Conclusion

So that's what worked for me. Kind of. Like I said, there are a lot of wrinkles to iron out post-install, most notably the graphics, which the DSDT patch does not seem to have really fixed. The mouse is also skipping and lagging, especially when there's another USB device connected. I'm still hoping to figure out if I could actually skip some of the more laborious steps I took, and whether I'm even doing DSDT patching right in the first place.

This machine was on the recommended build sheet! I went into this expecting it to be way easier than it has turned out to be. If anyone has any insight, I'd really, really appreciate it.
 
Apologies for the issues with the Haswell BRIX. In Mavericks, this system's graphics were native, but will probably be removed from the Buyer's Guide because of issues with Yosemite. It is possible to get it fully working, however it's simply not as easy or compatible as the standard builds.
 
Apologies for the issues with the Haswell BRIX. In Mavericks, this system's graphics were native, but will probably be removed from the Buyer's Guide because of issues with Yosemite. It is possible to get it fully working, however it's simply not as easy or compatible as the standard builds.

Not at all, your wisdom is vastly appreciated.

You sound confident that it can be done; any pointers here? I'd be glad to prepare a comprehensive guide if I can get it working myself. This is an area where my Google-Fu needs a lot of polishing; I wasn't even able to find any specifics on the chipset used in this machine!
 
Not at all, your wisdom is vastly appreciated.

You sound confident that it can be done; any pointers here? I'd be glad to prepare a comprehensive guide if I can get it working myself. This is an area where my Google-Fu needs a lot of polishing; I wasn't even able to find any specifics on the chipset used in this machine!

As I said, I don't have this particular machine to test with- it's a 8 series mobile chipset. Other than the steps I posted above about FakePCIID, IGPlatformID and IGPDeviceID to get full graphics acceleration, I'd take a look in BIOS at the DVMT Pre-allocated shared RAM settings, as I posted in the Broadwell BRIX thread:

http://www.tonymacx86.com/yosemite-...ts-intel-hd-5500-graphics-broadwell-brix.html

Perhaps changing to something other than default will provide better graphics support.
 
...
Returning to Step 3 above, I applied the patch provided by the-darkvoid in tony's link above.
Code:
into method label _DSM parent_adr 0x00020000 remove_entry; 
into device name_adr 0x00020000 insert 
begin 
Method (_DSM, 4, NotSerialized)n 
{n     
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }n     
    Return (Package()n     
    {n         
        "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },n         
        "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },n         
        "hda-gfx", Buffer() { "onboard-1" },n         
        "model", Buffer() { "Intel HD 4600" },n     
    })n 
}n 
end;
(tony mentions ig-platform-id "0xa260006" in the post above, which appears as "0x06 0x00 0x26 0x0a" in the-darkvoid's patch. This part had me very confused for at least a couple hours, but I'm pretty sure, as you can see by my handy-dandy color-coding, that these are the same number in two different formats with the byte-order reversed. I still have no idea what that means or why, though.)

The byte reversal is because of the byte order used on Intel machines: http://en.wikipedia.org/wiki/Endianness

Note that you should use a different ig-platform-id. 0xa260006 is for laptops, not desktop configurations. If you read the rest of the-darkvoid's post, you'll see a patch for desktop...

(I also haven't figured out why, in the two DSDT patches provided by the-darkvoid, one has "n" at the end of each line in the 'begin/end' block while the other has "\n" instead. In most of the DSDT patches I see on github, it's \n, so I went through and replaced "n" with "\n" before running this patch.

The forum software has bugs which cause unintentional edits sometimes...
 
Thanks for the lesson, RehabMan. Sorry I never responded; I got caught up in trying to learn as much as I could, and I really do appreciate how promptly and thoroughly you seem to respond to just about everyone around here; it's beyond me how you keep up, or even stay motivated to.

So I'm coming back to this project after a month away. Inherited an early-2008 iMac in the meantime, and thought maybe it would help to start fresh with MaciASL instead of hopping back and forth between Ubuntu and Mac.

Just to be sure I've got all my bases covered, the #1 problem I'm facing with this setup, now that OS X has been successfully installed, is that everything is super slow, and there are some graphics glitches here and there. These are the expected symptoms of unsupported graphics acceleration, correct?

I'm trying to follow the directions outlined in the-darkvoid's thread, which tony linked to way back in the beginning of May. To do that, I download FakePCIID and place

...both FakePCIID.kext and FakePCIID_HD4600_HD4400.kext in /System/Library/Extensions..

Then, I patch the DSDT I've extracted, using the patch provided in the aforementioned thread. (Also available in RehabMan's Laptop-DSDT-Patch repo.) The problem now is that I can't apply this patch in MaciASL. I've pulled it up via RehabMan's repo, and it looks like the patch simply doesn't apply.

P5r08A8.png


So what's going on here? Why doesn't this patch apply to my DSDT? (Attached, with SSDTs, below). FYI, not sure if it matters, I modified this DSDT according to your instructions on this thread – specifically, deleting the one line that was causing the one error, and modifying ADBG.

After all this is done, I will move onto MultiBeast and seeing what other hardware issues need ironing out. Thanks again for your time and insight!

Sidenote / question: FWIW, this machine uses ULT Mobile GT2 graphics (8086:0a16). Does that affect whether it uses an ig-platform-id for laptops vs. desktops?
 

Attachments

  • DSDT-brix-i5-4200u.zip
    56.7 KB · Views: 207
Bump bump... no dice on this, huh? I may wind up selling this thing in the end! :\
 
Bump bump... no dice on this, huh? I may wind up selling this thing in the end! :\

Use Clover.

Follow my guide for laptops: http://www.tonymacx86.com/yosemite-...de-booting-os-x-installer-laptops-clover.html

Change ig-platform-id in the config.plist to 0x0d220003 (or remove the ig-platform-id specification as 0x0d220003 is default).

Then install FakePCIID kexts after installation and you'll have QE/CI.

No need for DSDT patches to get HD4400 working on Clover. And Clover has a lot of other advantages (you can read about it).
 
Status
Not open for further replies.
Back
Top