Prepare Yourself For A Shocker
We recently got new HP G72-a12AS notebooks from school. Comes with an Intel i3 350m CPU, and we want OS X installed on it. Some of us, we're a bunch of talented school students, already use Mac's and OS X. Others have desktop hacks running OS X on it and we would all love to see OS X running on the new notebooks.
Enter this new study project. We'll be using various types of Mac hardware, including Sam's 17-inch MacBook Pro and some of the schools hardware, including the all new and shiny 27-inch iMac. Please remember that this is just our way of having fun and learn new stuff. A way for some of us to relax after intensive training sessions (up to five per week). A way of using new media, and to hopefully get some additional study points. Which some of us may need later on due to all off-school time.
We chose DutchHockeyPro as our team captain since she is the most experienced person in our team, but also uses OS X the longest (has her own 17-inch MacBookPro). She also happens to have a nice aluminum drive enclosure
This text, a collection, numerous postings, will change in rapid succession. Edited by several different people, but it will be mostly Sam's work here (it is her account after all).
Anyway. We first used OS X 10.6.4 but did update to OS X 10.6.5 as soon as it became available. Not exactly a simple mouse click, because we'll have to replace /boot and in our case also compile a new kernel. This sucks and should change over time. We have an idea to fix this in the boot loader, and we tried a few tricks, but it isn't working yet. Might however, hopefully, materialize eventually into the possibility to skip building (compiling) a kernel after each and every update.
Let's move on to the list with the good and the bad stuff:
CPU: You'll either need: "cpus=1 busration=17" in com.apple.Boot.plist (under 'Kernel Flags') or patch the kernel with this patch. That will lift the cpus=1 boot restriction. Thanks to TonyMacX86.com for the tip.
Notes: Good news after all. I compiled the XNU kernel. Yah. I finally learned how to do it myself. A good starting point, because mine is now something like 500K smaller (there's no PCC code in it, which we don't need anyway). I could even make it smaller, by making two kernels. One for 32 and one for 64 bit booting. This way you can reduce the boot time. Especially on USB sticks. I'm surprised that this wasn't mentioned here.
And here's the result. Both cores up and running (4–way multitask processing):

Just awesome!
LCD Panel The HD+ (1600 x 900) TN-LCD panel (B173RW01) is a 2 channel LVDS (reference found in the EDID) which may or may not work (we're still trying to get it going here).
Update: Pfff. We had a dead pixel from day one, which later turned into a dead line so the HP was replaced with a new one, and this time it (same series/model) came with a different LCD panel. Now we have a LGDisplay LP173WD1-TLC3 (we need a link here) instead of the AUO B173RW01 V3 in the broken one. I'm not sure if this is a good thing, but at least Apple is also using LG displays (be it different panels).
ATI_GRAPHICS: Isn't working. Major pain.
Notes: Can only use my HP Notebook with shares screen and remote login.
INTEL_HD_GRAPHICS: Isn't working. Major pain, but at least I get a mangled screen. And... preventing it from loading AppleIntelFramebufferFB.kext gives me the 1024 x 768 boot display. That's a start isn't it. Also. IOGraphicsFamily.kext (link to source code) is key to get the native resolution (1600 x 900) going. I went nuts and copied the EDID of my MacBookPro6,1 into it. That gives a better screen output (for when the frame buffer kext is loaded).
The only way to get anything on a screen right now, is to use something called Screen Sharing or by removing (read deleting) AppleIntelHDGraphicsFB.kext be cause then we do have a working display (this simple one is also used during the initial installation).
KEYBOARD: Didn't work OOTB – fixed with kext.
TRACKPAD: Didn't work OOTB – fixed with kext.
Note: Thanks to JBraddock for his help. Making me understand this part of the puzzle.
LAN: Wasn't working OOTB – fixed with a kext (we need a link here).
WLAN: Broadcom (pci14e4,4727) isn't working.
- Injecting the device-id 4727 into the two AppleAirportBrcmxxx.kexts doesn't work.
- Injecting device=id 4727/4313 from DSTD doesn't work.
- Injecting device-id 4727/4313 from com.apple.Boot.plist doesn't work (only this will change 'compatible).
Notes: Kext is loading but not matched (might need a bin change first). WLAN FCC ID in BIOS is QDS-BRCM1050, which leads me to believe that this is effectively a Broadcom BCM94313HMG2L (BCM94313HMG2LP1 printed on sticker).
I even tried to rebrand the WLAN mini-PCI/e as AirPort, after reading this info, but it failed to locate the required device here. And yes it was Ubuntu I used. Might have to replace the module itself, but that might be difficult because HP appears to white list their adapters. Well. If that is true then I don't know what else to do.
Update: The main problem was that the LED on F12 didn't turn blue when you pressed it, but a newer UEFI BIOS made that work. Let's give it another try shall we
AUDIO: Not working. See also this post for additional info.
WEBCAM: Works OOTB (tested with QuickTime).
DigitalMediaReader: Works OOTB (tested with a 4GB SanDisk Extreme III - 30MB/s Edition).
DSDT: Is massively big and needs to be patched.
Notes: Pruned over 65% of useless code so far. Still working on further improvements / reduction. Will share it when I'm done with it, but what I do is basically trial and error. Needs to be verified and confirmed to be right by a more experienced hacker.
APIC: Shows unused/disabled cores. This is a cosmetic only issue, and can be solved by patching the APIC table. I used Revolution, but any boot loader capable of loading / overriding ACPI tables will do.
ABOUT_THIS_MAC: Shows "unknown" processor and is therefor marked orange. This problem might go away with a next OS X upgrade.
Update: And indeed. This issue has been resolved in OS X 10.6.5 Thank you Apple
SHUTDOWN: Works OOTB.
REBOOT: Bad FACP table. Works fine with a patched boot loader (Chameleon, Revolution et all).
SLEEP: Works like a reset / reboot.
Notes: The problem here might be the fact that we have to use an external USB connected HDD. Another thing I found out was this: pmset -g log shows something I may have to solve:
* Domain: sleep - Message: Sleep: Platform Failure - AC <= found this one in system.log - Time: 9/28/10 1:23:45 PM - Signature: Platform Failure - UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - Result: FailureSleep on battery power does more. It goes to sleep (turns off the display / flashing power LED , but I cannot wake (resume) it. Wake results in a restart. Just another thing to solve (at a later stage).
ENERGY SAVER SETTING: Needs the following DSDT patch:
// 18 Bytes.
Method (MCDP, 2, NotSerialized) // New Method V1.1 – By Master Chief.
{
If (LEqual (Arg0, Zero)) // Function index: 0
{
Store (Buffer (One)
{
0x03
}, Arg1)
}
}
Scope (\_SB)
{
Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}
}
And after you have applied the above patch, the "AppleDisplay" under display0 changes into "AppleBacklightDisplay" but what's more importantly is that it gives you a new / additional check box on the Energy Saver pref pane. The one with the text "Automatically reduce brightness before display goes to sleep".BATTERY STATUS: Non functional.
Notes: I might need VoodooBattery.kext but 1.) I cannot locate the source code and 2.) superhai stopped working on it, and removed all download links to it. Now what?
P-STATES: Didn't work OOTB. Had to patch the DSDT. See also DSDT Patching - Part III for additional info.
Notes: There's a lot of handy information available about this in the P5K PRO thread where you can find a great deal of tips. It's a must read. This was my Intel SpeedStep bible. Same thing for the Intel SpeedStep thread. Thanks to all people involved there. Great job. Well done.
C-STATES: Didn't work OOTB. Had to patch the DSDT. See also DSDT Patching - Part III for additional info.
Notes: We don't have to patch the DSDT to get AppleLPC.kext loaded. This one works right out of the box. You only need to add/change your _PR scope and off you go.
SBUS: Didn't work OOTB. Had to patch the DSDT and Voilà. All three kexts loaded.
Additional info:
The HP is a sub-par notebook, for a low 700 Euro, but nevertheless performs quite well. Well above average. Leaving a lot of real Mac's behind. Including the new MacBook Air and some MacBook Pro's. And here's the Geekbench result summary to show you what I mean:

Now. The first Geekbench score of 2854 was not that impressive, but it felt a lot snappier than my desktop hack (triples the score of the HP notebook). Good thing I got a PM from dgsga telling me that his throbber (the rotating spinner below the Apple logo) in Revolution was way too quick. That's when I started to investigate it, and found the culprit. A few Chameleon trunk patches later and we've got a winner. A new top score of 3828. Crushed by almost 1000 points. But that was not the end of it, because the latest score tops 4012. Just over the magically 4000 border. Now that's more like it.
Update: The latest Geekbench top score is now 4033.
Corrections: Cleanups. Typo's. Tip: Use "we" instead of "I" whenever possible, since we are a team
Continue reading after the break...



Sign In
Create Account












