UPDATE: If you *haven’t* upgraded to the 3K series BIOS yet, you may want to consider getting somebody to mod your *current* BIOS instead (alternately if you’re brave/dangerous you can learn how to do it yourself starting here).
Reason is that the 3K BIOS seems to be a pain when it comes to the SSDT part if you’ve got a K series and happen to need the SSDT. It’s easy to end up stuck at 1.6Ghz unless you’re willing to use kexts. As a bonus to not going with the 3K BIOS, I believe that the olarila.com pack that I mention below for the GENE-Z actually works on the lower BIOS versions too (I tried it, the DSDT extract looks much cleaner – after the patch the editor gave a few errors when compiling but was able to fix the critical ones automatically – however, I didn’t actually try the DSDT).
Now if you’re already on a 3K BIOS, you can’t really flash to an older version. The 3K BIOS completely changes everything. There are ways to force it to downflash, but there’s a good chance that even if you don’t brick your motherboard, you’ll… oh I don’t know… lose your HD 3000. And then if you ever try to flash back up to the 3K series again, your motherboard will likely be bricked, quite possibly with a 55 error. So don’t backflash. But if you haven’t flashed yet, consider sticking with your old BIOS version and getting it modded. As long as you don’t need Ivy Bridge, things are likely to go much more smoothly.
This has to be the most frustrating hackintosh I’ve thrown together yet.
But I persevered. Creating a custom DSDT, I got the thing booting into OS X, using the HDMI port on the motherboard, with sound coming from HDMI.
But let’s begin. Put on your pajamas, it’s story time.
First, I needed an installer. tonymacx86 and MacMan have put together an awesome utility called UniBeast to create a bootable OSX Lion USB install stick from your purchased copy of OSX Lion.
They go over the USB creation process better than I ever could, so if you’re reproducing what I’ve done, just go to their site, read up, download, and get your UniBeast USB stick ready.
With that prep-work out of the way, I had to grab a patched BIOS for the MAXIMUS IV GENE-Z to avoid potential KP issues.
Fortunately, thanks to the work of many (RevoGirl, TheKing, samisnake, brycv, and I’m sure many more), a compilation of patched ASUS BIOS’s have been made available.
If you’re reproducing the install and need the patched BIOS, I suggest starting here:
http://tonymacx86.com/viewtopic.php?f=14&t=49340 (link broken)
The above thread includes a link to the patched BIOS repository, and stuff you should read – warnings, and a mention of additional options if you’d rather not risk flashing.
If for whatever reason that thread gets lost, or they ditch the modded ROM I used (v3203) for my DSDT in lieu of the newest BIOS version, or (insert the zillion other things that can happen over time), I put up a copy of the modded BIOS I used for my DSDT here.
Warning: Before you get lazy and simply download the copy I put up, flashing is dangerous. You can brick your motherboard. You’d better be bloody sure this is the right BIOS for your motherboard and hope like heck that I didn’t forget to mention something important. Consider yourself warned. Heavily. Really, I suggest going to the tonymacx86.com forum thread linked above instead. The only reason I put a copy here is in case the originals disappear from the web someday.
So, downloaded the BIOS from the repository, flashed the BIOS, it seemed to have worked.
The next problem I ran into was BIOS settings that caused massive headaches.
A few notes for the “final” settings that got me up-and-running:
- I enabled all the power saving goodies in the Advanced/CPU_Configuration area (C1E, C3, C6), and Execute Disable Bit, SpeedStep, Intel VT. I don’t think any of that really mattered, but I mention it just in case.
- In Advanced/PCH_Configuration, I enabled HPET. Again, don’t think this one mattered.
- SATA was obviously set to AHCI (Advanced/SATA_Configuration).
- Memory Remap Feature was enabled (Advanced/System_Agent_Configuration). Don’t think it mattered.
- In Advanced/System_Agent_Configuration/Graphics_Configuration, I set AUTO, 512M, Disabled, Disabled. This was pretty critical – if you set the iGPU memory to 1024M in the BIOS, the installer won’t load – 512 is the highest you can go. Note that I had 16GB of RAM, and I believe that at 8GB+, Lion will use 480M. If you’ve got much less RAM, maybe setting lower values will work better (but maybe it won’t make a difference).
- In Advanced/USB_Configuration, I set Enabled, Disabled, Disabled. The USB 3.0 stuff was causing massive issues for me, so I turned off the Legacy USB3.0 Support (as well as the controller I mention next).
- In Advanced/Onboard_Devices_Configuration, I enabled the HD Audio Controller (we want sound!) with HD/SPDIF as the options. I turned JMB Storage Controller OFF (seemed to cause issues). I turned the Asmedia USB 3.0 Controler OFF (USB3.0 was causing serious problems). I enabled the Intel 82579 LAN but disabled the PXE OPROM part.
- In the Boot section, I set the PCI ROM Priority to EFI Compatible. I don’t know if it mattered – it was one of the things I changed when I was trying to trial-and-error my way into making things work. Under “Option ROM Messages” I used Force BIOS, but again, may not have mattered.
So, with those settings, got the installer to boot and run. If you’ve never hackintoshed a machine before, the UniBeast writeup on the tonymac86 site walks you through formatting the drive and all that stuff.
Post-Installation – DSDT mayhem
This was a nightmare.
On the tonymacx86 site, they offer DSDT’s for many motherboards (note: you must be registered & logged in on their site to see them), including the GENE-Z. However, they’d found that the DSDT’s for many of the ASUS boards had errors in them, and pulled them all while they fixed ’em. I didn’t really want to wait, so I kept searching.
Now, the good folks at olarila have an DSDT Editor & Patcher (with a java-based version that works on Windows too!), and have put together DSDT patches for many motherboards at http://olarila.com/forum/packs.php (must register/log in on their site to see them). Including a patch for the GENE-Z!
So, I popped into Windows, used the editor to extract the DSDT, and applied the patch. Unfortunately, it ended up riddled with errors when I tried to compile. The GENE-Z patch wasn’t working with the DSDT from my modded GENE-Z BIOS.
Here are the errors I’d get:
- ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits) (this one doesn’t really matter)
- Invalid object type for reserved name (found ZERO, requires Buffer) (the editor will fix this)
- Object is not accessible from this scope (CRS_)
- Non-hex letters must be in upper case (pnp0c14) (this is easy to fix – just capitalize)
- Name already exists in scope (HDEF)
- Name already exists in scope (_ADR)
- Object does not exist (_SBPCI0.HDEF.DCKS)
- Object does not exist (_SBPCI0.HDEF.DCKA)
- Object does not exist (_SBPCI0.SBUS.HSTS)
- _HID suffix must be all hex digits (GH)
I spent hours playing with it – patching, then trying to fix the errors. Didn’t work. At one point I tried patching with other ASUS Z68 motherboard patches, which gave less errors, but still wouldn’t work.
This was even more time consuming because despite tonymacx86/MacMan having an awesome rBoot utility, I didn’t use it (always thought “I don’t need to download it – this time my DSDT will work!“). So with a DSDT that would freeze the system, I’d end up formatting/reinstalling instead to try each new DSDT.
Post Installation – DSDT success
Eventually, I realized that the DSDT patch for the GENE-Z was *trying* to do the right thing – it just wasn’t *happening*. I also suspected that maybe some stuff was copy/pasted from another ASUS patch instead of being tested on the GENE-Z.
Anyway, these patches are basically scripts. I opened it up in a text editor, and carefully looked through to see what each “section” was trying to accomplish. I then opened up another patch (for an ASUS Maximus Extreme – one that didn’t give so many errors when applied to my DSDT) to compare.
I eventually cut “pieces” from each that I thought were “good” (no issues), and which I believed applied to the GENE-Z into separate TXT files, and applied them individually, using the “Preview” to make sure nothing wonky was happening.
For more complex pieces that weren’t working (the HDEF and _ADR for example), I looked to see what the patch was trying to do, and then manually made the edit myself.
While working on the HDEF section, I had noticed that toleda on the tonymac forums had an excellent write-up to enable ALC889 sound stuff (including sound over the Intel HD3000 HDMI). So I integrated these edits.
By the end, I had a few minor errors.
- The “_HID suffix” one looked like filler junk (ABCDEFGH), so I just changed it to (ABCDEFFF) to make it all technically hex (lulz). Hopefully nothing actually looks for or expects “ABCDEFGH”.
- The HDEF.DCKS and .DCKA error is because in the original HDEF, those things exist (and the patch pretty much rewrites that section without them). There’s an “if” statement later on in the DSDT that looks at them which causes the error since the patch removed them and they don’t exist anymore. While at first I tried keeping that DCKS/DCKA section in HDEF, I wasn’t getting audio, so I ditched it from HDEF entirely and just deleted that 4-line (including brackets) “if” statement altogether.
- The other stuff was auto-fixed by the editor.
Low-and-behold, I now had a WORKING DSDT!
(I’ll link to it at the bottom of the write-up)
Post-Installation – DSDT with HDMI audio
Turned out, when creating the DSDT above with the HDEF edits, I’d used the settings which enable the most “versatile” sound options, but not through HDMI. So sound worked through speakers plugged in, but not to the TV I was using.
Thus, I continued through the HDMI guide on the tonymac site, read through a few posts in the forums there, and made further edits. Essentially, beyond tweaking a couple values in the HDEF section, and making additions to the GFX0 section (to tie them together)… I also renamed the GFX0 device (and all references) to IGPU.
…another working DSDT!
(this DSDT will also be linked to at the bottom of the writeup)
Post installation – Installing working DSDT with MultiBeast
Obviously, I’ve gone a bit backwards here (since I obviously used MultiBeast to install the DSDT’s I’d tried).
In any case, I:
- Booted to the UniBeast memory stick to get the bootloader, and then chose the Lion partition.
- Installed the 10.7.4 combo-update (downloaded from another machine and copied over).
- Ran MultiBeast…..
For MultiBeast, I essentially plugged in the following:
- UserDSDT (had DSDT.aml on my desktop)
- SSDT for Intel i5 2500k (not overclocked)
- ALC889 patched audio (the one that mentions toleda – note that because of the DSDT edits I made, I do NOT install enablers or anything else – just the patched ALC889)
- Intel 1000 series network
- System Utility Tasks
(note: these aren’t exact names – they’re from memory – I’ll update with correct ones when I do a reinstall for my SSD hard drive – if I forgot anything I’d selected, I’ll mention that as well).
That was about it. I played with using the “Mac Mini” smbios.plist (since it’s supposed to be required for the Intel HD 3000 to work correctly), and it worked without it too, but I didn’t test thoroughly enough to see if it has an effect.
Sound worked great. For anyone who might be confused as to why I installed the ALC889 audio, your confusion is understandable – The Maximus IV GENE-Z claims to use a “SupremeFX X-Fi 2”. However, it’s just software running over the ALC889 audio chip on the motherboard. I haven’t physically looked, but I’m pretty sure the sticker on the motherboard is covering up a “Realtek ALC889” logo.
Haven’t plugged in the network (I use a wireless adapter).
The Intel HD 3000 was prone to being “glitchy” – sometimes not properly updating a small “square” on the screen. As mentioned earlier, using the MacMini smbios.plist may help things. When I popped open Chess (to see if QE/CI was working), chess kinda worked for a couple moves but was super choppy and froze. I’ve taken to overclocking the HD 3000 (and bumping up the RAM speed) to see what effect that may have.
The machine is waiting on a re-install (currently stress-testing my overclocks in Windows). If there are any further hiccups/issues, I’ll be sure to update (hopefully with fixes).
As promised, here are the DSDT’s I put together (which thus far appear to be working) – pick whichever you prefer:
MaximusIV-GENE-Z-regular-889-audio-DSDT.zip (most audio options but no HDMI audio)
MaximusIV-GENE-Z-with-IntelHD3000-HDMI-889-audio-DSDT.zip (HDMI audio but fewer audio options)
(reminder: these are for the MODDED ASUS Maximus IV GENE-Z bios version 3203)
(reminder: you’ll need to install the toleda-patched ALC889 kext from MultiBeast to get sound)
You’re free to use/distribute those as you like, assuming they work for you & you find them of any value.
Because the DSDT’s are probably less-than-perfect, you may want to extract your own DSDT and use the ones above as a template if you get stuck – I may have applied fixes to these that were unnecessary, missed fixes, deleted things that should have been worked-around instead, etc.
If you’ve had a successful install on a Maximus IV GENE-Z (whether with these DSDT’s, or not), feel free to post a comment below with anything that may help others!