All further settings are chosen to run the board in full UEFI mode without legacy support.
The chosen boot manager is Clover, I use it to run Windows, OS X and Arch Linux in UEFI mode.
All links and attachments are collected at the bottom of this post.
To run OS X on this board, you need an SMC emulator, which is handled by the FakeSMC.kext extension and a way to overcome ASUS' MSR 0xE2 write protection that causes a kernel panic issued by AppleIntelCPUPowerManagement.kext and prevents you from running OS X. You have two choices:
Patch the kext to avoid writing or patch the BIOS to allow writing to this register. Patching the kext can be done in memory by Clover without touching any system files and is the easier one. Refer to Clover's option AsusAICPUPM.
Starting with BIOS version 1103 ASUS introduced a write protection preventing unauthorized BIOS modifications. Additionally writing to NVRAM from OS X is not possible anymore.
My recommendation is to stay with version 1001 and avoid all the new security/protection crap to keep the most compatibility to OS X.
Patching the BIOS is riskier and more time consuming than patching a kext. Should you decide to go for it, here is what needs to be done.
You can use the PMPatch utility by CodeRush on an official BIOS file from ASUS to do the patch yourself or use the attached modified BIOS version 1001, which additionally includes other modifications:
Regardless of the chosen method, use Flash Toolkit (FTK) to flash it. More information in the link section.
Read carefully, chances you can screw up something are high!
There is not much to say here. Initially I set most options to manual to ensure Mac won't have any problems recognizing them but it seems this is not needed. Feel free to adjust them to your liking. Overclocking is not a problem either, you just need to have the matching performance state array for your CPU supplied automatically by Clover or by injecting an SSDT.
If you have a CPU with support for VT-d, disable it - otherwise it may cause booting issues.
If you have a dedicated video card and do not need the built-in GPU (like HD4000):
Advanced \ System Agent Configuration \ Graphics Configuration >
- Primary Display: PCIE
- iGPU Multi-Monitor: Disabled
Advanced \ USB Configuration >
- Enable all options - USB2.0 ECHI Controller, Legacy USB/USB3.0 support, xHCI Mode, EHCI Hand-off
- Boot Logo Display: Disabled (Prevents Clover from displaying an incorrect resolution.)
- Launch CSM: Disabled (Disables legacy support. Only EFI application can be started now.)
- OS Type: Other OS (Disables Secure Boot and allows Clover to start.)
The attached configuration file is kept minimal. The most important settings are the DSDT patches and the device properties string.
You will need to create an SMBIOS section with your own generated serial number and also adjust the GUI\Theme setting to match the theme you want to use. Have a look at the wiki, it should answer most of your questions regarding settings.
Clover has a huge amount of options to patch the DSDT and other tables on the fly and we will make use of it. This way no BIOS update or hardware change will break your setup.
All modifications done to the DSDT can be found commented in Clover's config under the array ACPI\DSDT\Patches. Most of them are very common, others only remove errors and warnings. However no device properties are injected here.
For reference I will keep my earlier made patched DSDT that I don't use anymore. The changes made were:
Recently I switched from a patched DSDT to Clover's method of DSDT patches and had to abandon the _DSM way of injecting device properties. Using an EFI string seems to be a very good alternative as the properties are not bound to a DSDT anymore and can be modified in a more convenient way - in my opinion.
The string is stored at Devices\Properties in hexadecimal format.
Use gfxutil by mcmatrix to adjust the string to your needs.
Here is a an overview of the important devices and their names (in square brackets), as defined by the DSDT:
- PciRoot(0x00)/Pci(0x01,0x00) - Dedicated video card [PEGP], renamed [GFX0]
- PciRoot(0x00)/Pci(0x02,0x00) - Integrated video card [GFX0], renamed [IGPU]
- PciRoot(0x00)/Pci(0x14,0x00) - USB Intel [XHC]
- PciRoot(0x00)/Pci(0x1a,0x00) - USB Intel [EHC2]
- PciRoot(0x00)/Pci(0x1b,0x00) - Sound [HDEF]
- PciRoot(0x00)/Pci(0x1c,0x04)/Pci(0x00,0x00) - Ethernet [RP05\PXSX]
- PciRoot(0x00)/Pci(0x1c,0x05)/Pci(0x00,0x00) - PCI Bridge ASMedia [RP06\PXSX]
- PciRoot(0x00)/Pci(0x1c,0x07)/Pci(0x00,0x00) - USB ASMedia [RP08\PXSX]
- PciRoot(0x00)/Pci(0x1d,0x00) - USB Intel [EHC1]
The built in ethernet chip Realtek RTL8168 needs a driver.
Several extensions exist and personally I can recommend Mieze’s version, which is linked below. It performs great under load and has no IP assignment problems.
The sound chip ALC892 needs a patched AppleHDA.kext and a way to inject the layout-id, which is already present in my device properties string.
You can find a link to a patched AppleHDA by toleda below. It works great including microphone and front panel.
Intel USB3 ports work out of the box. However they are not backwards compatible and you won't be able to run any USB2 devices. An option to fix this is to use Zenith432's GenericUSBXHCI USB 3.0 driver.
The ASM1042 USB3 chip will be controlled by Zenith432's driver, too.
Intel USB2 ports work natively.
Using Clover in UEFI mode will cause a bad reboot/shutdown with OS X in approximately one out of ten times and no fix exists for this issue yet. The OS has already exited, you see a black screen, fans spin up and you can only do a hard reset.
Sleep works well here.
The provided device properties string includes "AAPL,clock-id" keys, which prevent Sleep to be interrupted by any USB device - meaning you will have to press the Sleep/Power button to wake up the system. If you don't want this behavior, remove these keys.
Have fun setting things up.
(Bootloader) Clover: http://clover-wiki.zetam.org/Home
(BIOS) Power management patch: http://www.insanelym...tching-utility , http://hardforum.com...d.php?t=1726429
(Device properties) gfxutil: http://forum.netkas....topic,64.0.html
(Ethernet) driver: http://www.insanelym...realtek-rtl8111
(FakeSMC) driver: https://sourceforge....ects/hwsensors/
(Sound) driver: http://www.insanelym...realtek-alc892/
(USB3) driver: http://www.insanelym...-x-with-source/
- Aaand again: module updates for BIOS version 1001
- Further module updates for BIOS version 1001
- Module updates for BIOS version 1001
- Changes in config.plist: Corrected device properties string, added AppleRTC patch for 10.9, removed SSDT settings.
- New link to patched AppleHDA extension for the upcoming 10.9 Mavericks GM.
- Recommendation to use BIOS version 1001 due to BIOS and NVRAM write protections of later versions.
- Updated Clover config.plist with more DSDT patches to disable unused devices.
- Some weird news regarding reboot and shutdown in UEFI mode.