Jump to content

[Guide] Asus K53SD with OSX10.9 Vanilla


2 posts in this topic

Recommended Posts

Hi everyone.
This is my first serious hackintosh, although I have used Macs for many years now. I decided to post this in a didactically way, instead of just dumping the kexts and DSDT, because I'd like to share what I have learned along the way. Since I am a noob here (although I have some experience as a Linux sysadmin and programmer), I'd be very thankful if you report any mistakes or inaccuracies that you find.
Let's start with the specs of the laptop:
  • Chipset HM65
  • CPU i7 2670QM (with 6GB RAM)
  • Integrated Video: Intel HD3000 (with 384MB VRAM)
  • Discrete Video: Nvidia GeForce 610M (with 2GB VRAM) (PCI 1,0,0 VEN 0x10de & DEV 0x1058 & SUBSYS 0x16521043 & REV A1 & CC 030000)
  • The 2 video boards work in Optimus mode, not selectable in BIOS
  • Monitor: 1366x768
  • Bluetooth: Atheros (VID 0x13d3 & PID 0x3304)
  • WiFi: Atheros AR9002WB-1NG (VID 0x168c & DEV 0x002b & SUBSYS 0x2c371a3b & CC 028000)
  • Ethernet: Atheros AR8151 PCI-E (VID 0x1969 & DEV 0x1083 & SUBSYS 0x18511043 & CC 020000)
  • And: Video camera, audio and mic, USB2 and USB3 ports, VGA and HDMI out.
What doesn't work: the Nvidia GeForce 610M (although is recognized) and the video out (both VGA and HDMI).
All the rest works, including sleep.
Before we go on a step-by-step installation (see below), here is the list of kext and other software:
So you see, instead of giving you the kexts, I am pointing to their project pages. This way, you can always get the latest version. This would have saved me several hours of unnecessary work in the beginning, since I was using old kexts that were causing kernel panics in 10.9.
If anyone knows the original project pages for the NullCPUPowerManagement and the atheroswlan injector, let me know, I'd like to update the links.
There are also several useful tools, but I'll refer to them as we go along.
Now let's get to work. My favorite method is the Vanilla install, that is, as close as possible to the original Apple installation. For that there is already a great guide here:
Vanilla guide, which I can't really improve. I will just complement the steps there with specific notes for our K53SD. So follow the Vanilla guide and check here before and after each step, to see the differences.
Part 1
1.C. Essential Kexts:
  1. FakeSMC: get it directly from the HWSensors project here:
    Get the binary package, extract and install just the FakeSMC kext, both on the installer and on the system for first boot.
    Later, when the system is running, you can get the pkg file and install it properly. This way the app itself is properly installed and not left inside S/L/E.

    There are a few more essential kexts to add at this point:
  3. The touchpad
    Note that there is no need for the PS2 keyboard, but without this driver, the keyboard does not work as well.
  4. Network: either the Atheros Wifi injector (if you have wifi) or the ethernet kext (if you are going to use ethernet)
    Note that this is for the USB installer, so we want to make it very simple, to avoid any weird kext problems. Later we will install all the other kext on the real system, but we'll leave the USB very simple.
2.C. Patching the installer for a PC:
  4. SMBios choice: I have found that any MBP 8,1, 8,2 or 8,3 works. They have the correct processor and architecture.
2.D. Using the same HDD:
This is our case, so follow the instructions carefully.
I used Minitool Partition Wizard to shrink my Windows partition and create space for MacOSX. I also formatted the free space as a primary partition (not logical) with NTFS, so that it shows up in the Installer. If not, I would have to use Disk Utility to format it.
An important warning: Disk Utility will mark the formatted partition as active, and will remove the "active" status from the Windows partition. This means that you can't boot Windows without a boot loader, unless you mark the Windows partition as active again. This is easily done inside Windows (right click on Computer, Manage).
Part 3.
  1. To boot from the USB, press "Esc" during start up, and choose the USB item on the list.
3.B. Fixing the OS X install
  4. Remember to copy the other kexts:
    For the touchpad (and keyboard):
    cp –R /System/Library/Extensions/ApplePS2Controller.kext /Volumes/"OS X"/System/Library/Extensions/
    ​cp –R /System/Library/Extensions/ApplePS2ElanTouchpad.kext /Volumes/"OS X"/System/Library/Extensions/

    For the wifi:

    cp –R /System/Library/Extensions/AtherosWiFiInjector.kext /Volumes/"OS X"/System/Library/Extensions/

    For the ethernet:

    cp –R /System/Library/Extensions/AtherosL1cEthernet.kext /Volumes/"OS X"/System/Library/Extensions/
Part 5. DSDT
We're going to have some fun with this a bit later, when we fix the battery and the sleep, but leave it for now.
Part 6. Finishing Touches:
  2. Keyboard: there is a nice app called Ukelele that let's you modify any existing keyboard map. The function to swap keys is particular useful.
  3. Chameleon wizardI have it very simple: no theme, built-in ethernet, system type laptop, and graphics mode 1366x768. All the rest is off.
  4. Power management and sleep:
    This is going to be a bit long, so get ready:
    At this point, the computer doesn't sleep properly, because we have the kext NullCPUPowerManagement installed. If we simply remove it and restart, the system has a kernel panic very early in the boot process, because AppleIntelCPUPowerManagement.kext doesn't know how to deal with our system. We can make this work with 3 fixes, and they all will survive any updates: a BIOS patch, creating a SSDT, and patching the DSDT
    1. The BIOS patch is the one described here: 
      and here


      So you get the latest BIOS from ASUS, then you extract the files with PhoenixTool.
      You can do the shortcut and simply replace the relevant bytes inside the file 8C783970-F02A-4A4D-AF09-8797A51EEC8D (read the post of the thread). Then you repack everything again with PhoenixTool and flash that BIOS.
      Remember to use "WinFlash /nodate" when flashing, in case you have the latest BIOS.
      I noticed no consequences for Windows with this patch.

      Note that there is an automated patch utility, but I haven't tried it yet.

      If you try to boot now without NullCPUPowerManagement, it will go a bit further, but will get stuck P-Step problems. It is time to tell OS X the correct SpeedStep for our processor. For that, we have to generate an SSDT file, that the Chameleon boot loader will use at boot.
    2. Generating the SSDT file:
      Use ssdtPRGen.sh from the RevoBoot projectSimply run this file, no arguments necessary, and it will create (and compile) the correct SSDT file. Place it in the /Extra folder, name it SSDT.aml and you are almost ready to go.

      The system now boots without NullCPUPowerManagement (yay, we're improving here), but it won't sleep properly. Depending on the way you do it (press the power button or press the Sleep menu item under the Apple Menu), either just the screen darkens or it really tries to sleep but fails, and then never wakes up again (2 restarts are necessary).

      If you look in Console when you try to sleep it with the power button, you'll find some messages related to UHCI. So now it is time to...
    3. Create a DSDT with an UHCI patch.
      It is easier than it looks. Go to part 5 of the Vanilla guide and create the DSDT. Then go to the menu Patch and apply the patch inside Laptops/UHCI. Compile, fix and compile, and you should have no errors. Place the compiled file (DSDT.aml) in the /Extra folder. Reboot, and you should have a laptop that sleeps and wakes  :lol: 

      Unfortunately, I couldn't make it sleep by closing the lid, only by pressing the power button or pressing the Sleep menu item under the Apple Menu. If anyone knows how to make this work, I'd like to know.
  5. You can add now the missing kexts to make the rest of the system work:

Using this, the battery is now correctly recognized.

Update to 10.9.1 went without any problem.
Final thoughts:
So this is it. It is interesting that no original kext were removed nor replaced (just injected) so the system should work well during updates. Several things work out-of-the-box: the HD3000 video, the card reader, some of the FN keys on the keyboard...
On the other hand, I am a bit disappointed that the Nvidia 610M doesn't work. I tried a few tricks, like manually editing the NVDA kext, a DSDT patch, selecting Graphics Enabler in Chameleon, but I was only able to make it recognized in System Properties, not really usable  I have seen posts claiming that other Optimus cards work, but I don't know if that is true. If any one has any clues on this, let me know.
Also, video out is broken. If you press the FN+F5 you get video noise on the external screen. This seems to be fixable, but I couldn't find a way. BTW, the only way to get back a working screen is putting the machine to sleep and waking it again. So make sure you have sleep working before trying and FN+F5 key combination.
Thanks for reading and I hope this is useful.
Thanks to all that contribute to this great community.
Link to comment
Share on other sites

  • 2 months later...

  • Create New...