CPU Detection Integrated with Chameleon RC3

OK, so I actually modified Chameleon RC3 with netkas’ PC_EFI 10.3. I also added a few tweaks and renamed it Chameleon-2.0-RC3-r658-PCEFIV10.3-ddj0.4

Version 0.4 includes:
- The CD Driver netkas included in PC_EFI 10.2 (but pulled in 10.3)
- A hibernation fix
- This automated CPU injector

You can download the bootloader (with source): Chameleon-2.0-RC3-r658-PCEFIV10.3-ddj0.4-src.zip

The “boot” file that you have to install is in the above archive under the sym/i386 folder. Install it just as you would Chameleon RC3. If you need exact installation details, they’re in “doc/README”.

OK, so you’ve got it installed. Great. Theoretically, with the auto-detection I provided, OSX should now detect your CPU (only works for Core2 Duos, Core i7 and Core2 Quads/Extemes AFAIK).

The autodetection algorithm works as follows:
If you have 4 cores or more (Core i7/Core2 Quads), the bootloader will inject a “Quad-Core Intel Xeon” cpu-type
If you have 2 cores, the bootloader will inject a “Intel Core 2 Duo” cpu-type
If you have 1 core, the bootloader will inject a “Intel Core 2 Solo” cpu-type (or at least I think so, this is experimental!!)
If you don’t meet the above conditions, the default type is “Intel Core2 Duo”.

You can also attempt to manually specify your CPU type by editing smbios.plist with:

<key>SMcputype</key>
<string>1281</string>

Currently, the known numbers to put in this value is as follows:
1281 – Quad-Core Intel Xeon
769 – Intel Core 2 Duo
257 – Intel Core 2 Solo (Confirmed by Pradeesh)

Core i7 users can also specify their interconnect-speed in the smbios.plist (note this is not done automatically!)

<key>SMbusspeed</key>
<string>0</string>

Where 0 is your interconnect speed. If you use the value 0, your interconnect speed will show up as Bus Speed. Core2 Duo and Quad users should ONLY set this value to 0.

OK, I think that’ll do it. Try it out, have fun :)

,

CPU Detection in Snow Leopard, Chameleon RC3-ddj0.3, EP45-EXTREME Pack

Firstly Chameleon RC3 with PC_EFI 10.3 ddj0.3. My compilation of this boot-loader includes both Chameleon RC3, PC_EFI 10.3 from netkas and the CD drivers included from PC_EFI 10.2…which netkas excluded from the 10.3 release. The source and binary is available:

Chameleon-2.0-RC3-r658-PCEFIV10.3-ddj0.3-src

Secondly, my new version of the kext pack for a Gigabyte GA-EP45-EXTREME is available. This includes the CPU Injector that I will go into next. This pack includes EFI strings and DSDT for a GA-EP45-EXTREME with two video cards plugged in. However, it may also work with just one card….in which case it’s “two-card ready”. This also includes the Bonjour fix.

GA-EP45-EXTREME_SL_Pack_0.3

Recently I’ve been trying to make my hackintosh as Mac-like as possible. One thing that always bugged me was the OSX would detect my CPU as Unknown, even though I had an Intel processor. There are several “hacks” out there on the web that tell you to edit the About This Mac strings or the System Profiler strings, however, these are purely cosmetic, the actual operating system still thinks your CPU is Unknown. Proof of this is the Microsoft Silverlight installer. Without hacking the installer, the installer will not detect your CPU and will fail to install. This cures such problems by injecting a “cpu-type” into IORegistry.

The geeky stuff: I did this by adapting the NVinject source and injecting values into the IORegistry. The exact value is a property called “cpu-type” under “IOService:/AppleACPIPlatformExpert/cpus”. From my research, I believe this can actually be done by injecting values into the SMBIOS (at least I think so), however, my few attempts at modifying Chameleon RC3 failed. If anyone from the Chameleon team is reading this, then maybe they can shed some light on the situation… If Chameleon supports injecting a “ProcessorType” SMWORD into Table Structure 131, OSX should pick up on this value and automatically insert it into the IORegistry and there would be no need for this injector. See: http://opensource.apple.com/source/AppleSM…AppleSMBIOS.cpp for details (search for cpuType and cpu-type)

But for now, here’s the injector to make it all work… CPUInjector.kext

To get this to work you will need to modify the Info.plist inside the kext.

You will need to open/edit Info.plist and look for the following block

<key>entriesToAdd</key>
<dict>
<key>cpu-type</key>
<data>AQU=</data>
</dict>

You need to modify the text in between the <data></data> tags depending on which processor you have.
These values are as follows (The table is incomplete, they might not work, please experiment)
CPU String <data></data> cpu-type Hex Comments
Intel Core Solo ?? ??
Intel Core Duo ?? ??
Intel Core 2 Solo ?? ??
Intel Core 2 Duo AQM= 0103 Use this for Core2 Duo CPUs
Single-Core Intel Xeon ?? ??
Dual-Core Intel Xeon ?? ??
Quad-Core Intel Xeon AQU= 0105 Use this for Core2 Quad and Quad Extreme CPUs
PowerPC ?? ??
PowerPC 601 ?? ??
PowerPC 602 ?? ??
PowerPC 603 ?? ??
PowerPC 603e ?? ??
PowerPC 603ev ?? ??
PowerPC 604 ?? ??
PowerPC 604e ?? ??
PowerPC 620 ?? ??
PowerPC G3 ?? ??
PowerPC 750 ?? ??
PowerPC G4 ?? ??
PowerPC 7400 ?? ??
PowerPC 7450 ?? ??
PowerPC G5 ?? ??
PowerPC 970 ?? ??

You can also experiment with the values by using this converter: http://home2.paulschou.net/tools/xlate/
For example, typing 0105 into the hex box will give you AQU= I have seen cpu-type 0101 (AQE=) around also, however, I don’t know what CPU it is for.

If you have a Core i7 machine, and you get this to work…you can also add:
<key>interconnect-speed</key>
<data>gA6kXQEAAAA=</data>

This will show the Interconnect Speed in System Profiler.

Examples:
Core2 Duo CPUs
<key>entriesToAdd</key>
<dict>
<key>cpu-type</key>
<data>AQM=</data>
</dict>

Core2 Quad/Quad Extreme CPUs (Will show as Quad Core Xeon, Apple don’t sell Core2 Quad CPUs!)
<key>entriesToAdd</key>
<dict>
<key>cpu-type</key>
<data>AQU=</data>
</dict>

Core i5/i7 CPUs (Will show as Quad Core Xeon, Apple don’t sell i7 CPUs!)
<key>entriesToAdd</key>
<dict>
<key>cpu-type</key>
<data>AQU=</data>
<key>interconnect-speed</key>
<data>gA6kXQEAAAA=</data>
</dict>

DOWNLOAD 1.1

SOURCE 1.1

PROOF PIC

,

Chameleon 2.0 RC2 + PC_EFI 10.2 – ddj0.2 & Updated GA-EP45-EXTREME Extensions

I’ve updated my build of Chameleon RC2 + PC_EFI 10.2 to include the Sleep fix. Deep sleep should now work. Get it here.

The compiled files are in the sym/i386 folder. Read the docs/README file on how to install it. Read here on how to compile it.

I also updated my set of Gigabyte GA-EP45-EXTREME kernel extensions for Snow Leopard. You can get them here.

,

ICH10R (in RAID Mode) and Snow Leopard, Part 2!

On the 3rd of September I reported progress of using ICH10R SATA Controller in RAID mode, which would allow you to keep your Windows RAID active without having to change BIOS settings to boot to Snow Leopard. You might even be able to install Snow Leopard to a HARDWARE RAID volume…but I haven’t tested this yet.

But good news, this all works perfectly now. Here’s some details on how I did it with my setup:

Windows 7 installed on one hard disk (Windows 7 Boot Manager (BCD))

Ubuntu 9.04 installed on one hard disk (GRUB)

Snow Leopard 10.6.0 installed on one hard disk (Chameleon RC2 with PC_EFI 10.2, by me :) )

Essentially, you’ll need GRUB to multiboot the Chameleon boot file. This is how to get around the boot1: error reported by the official Darwin bootloader that’s included with Chameleon RC2. Installing GRUB to a USB drive probably won’t work, though I haven’t tested it…you may very well get USBEHCI Errors like I reported in my previous post about this.

So, basically…

  1. Install Ubuntu with GRUB to the MBR…on a completely separate drive
  2. Copy the Chameleon RC2 + PC_EFI 10.2 boot file to /boot/ on your Ubuntu partition
  3. Edit the menu.lst for GRUB to include a Snow Leopard entry
  4. Boot to your Ubuntu drive, then choose your Snow Leopard entry

What you should have in your menu.lst for the Snow Leopard is something like:

title Apple Mac OS X Snow Leopard 10.6

rootnoverify (hd2,1)

kernel (hd0,0)/boot/chameleon_rc2_pc_efi10.2_boot biosdev=81

Where hd2,1 is the drive number and partition number of Snow Leopard (remember if you have a GPT partition table, partition 0 will be the EFI partition, so use partition 1)

hd0,0 will be the drive number and partition number of your Ubuntu Linux install

/boot/chameleon_rc2_pc_efi10.2_boot is the path to the boot file you put in /boot/ on your Ubuntu partition

biosdev=81 is passed to Chameleon to determine the correct volume to boot. Mess around with this value…it might be 80, 81, 82 or 83. If you don’t choose the right one Chameleon will not detect your com.apple.Boot.plist and not load your EFI strings.

And finally….to enable ICH10R RAID mode you should grab and install to your /Extra/Extensions folder AHCIPortInjector.kext and ATAPortInjector.kext. These two kexts are included in the Chameleon RC2/PC_EFI 10.2 package that I linked earlier (in the packages/Kexts folder).

Have fun with Snow Leopard and ICH10R ;)

,

PC_EFI 10.2 Beta built on Chameleon RC2 (r640)

I’m not sure why this hasn’t been done…or why netkas decided to stick with RC1, but today I went ahead and made the sufficient changes to Chameleon RC2 so that it includes netkas’ fixes from 10.2.

This basically means you have Chameleon RC2 working with Snow Leopard.

Source is included here. The boot file that you need to replace can be found in the sym/i386 folder.

If you want to compile this yourself, I suggest installing Snow Leopard and then simply running make clean / make from inside the Chameleon-2.0-RC2-r640_PCIEFIV10.2-beta-src folder. It should work flawlessly and all your binaries should be located in the sym folder. You may have to install Xcode (I’m not quite sure….but probably not).

Enjoy.

,

ICH10R (in RAID Mode) and Snow Leopard

I’ve been working hard at making my hackintosh “perfect”. This seems to be yet another breakthrough that hadn’t been possible before…I don’t know why, it’s such an easy hack.

Basically, when using your SATA controller in RAID mode, both Leopard and Snow Leopard will refuse to boot with “waiting for root device” (as the device is inaccessible).

This means you can now use Hardware RAID…well for Windows/Linux at least. I am unsure if you can use a RAID volume and install Snow Leopard to it, however, you should be able to use Snow Leopard on a single drive and still keep your Windows RAID intact. Basically it means one less BIOS change each time you want to jump into OSX and that you’ll be able to access files on your Windows/Linux RAID volumes without rebooting. If you really want OSX RAID, I don’t see anything stopping you from using Apple’s Software RAID while your SATA controller is in RAID mode.

So, how to? This isn’t the most Vanilla way, I’m sure there’s a better way of doing this…but I’ll come up with that later.

Simply open up /System/Library/Extensions/AppleAHCIPort.kext/Contents/ and edit the Info.plist

Under the ICH10AHCI key, you can either:

a) Replace IOPCIPrimaryMatch or

b) Duplicate the whole key/dict and rename it ICH10RAID and then change the IOPCIPrimaryMatch

Either way, you need to add 0×28228086 to IOPCIPrimaryMatch

It will look something like (after you’ve made the changes):

<key>ICH10AHCI</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAHCIPort</string>
<key>Chipset Name</key>
<string>ICH10 AHCI</string>
<key>IOClass</key>
<string>AppleAHCI</string>
<key>IOPCIPrimaryMatch</key>
<string>0x3a228086 0×28228086</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Vendor Name</key>
<string>Intel</string>
</dict>

Save it, Run Kext Utility, or whatever you use to repair permissions.

Now, on my machine Chameleon RC1 with PC_EFI 10.2 refused to boot. I kept getting boot1: error. For this to work you need to install Chameleon RC1/PC_EFI 10.2 to a USB drive then use the USB drive to boot your Snow Leopard partition. I’m unsure, but perhaps the next version of Chameleon, PC_EFI or BootThink may not have this error, lets hope! :)

When I did this, Snow Leopard booted….BUT…I kept getting Console error messages to do with AppleUSBEHCI and this seemed to disable the use of my keyboard and mouse clicks. So if anyone knows how to fix that, please post here.

Please test this. Honestly, I don’t know if you create a RAID Volume that maybe OSX will not detect the RAID and simply show two drives. I haven’t had time to fully test this yet. What I can confirm is that OSX boots SUCCESSFULLY in SATA-RAID mode with ICH10R.

Oh, I did this on a Gigabyte GA-EP45-EXTREME.

,

Snow Leopard Hackintosh (GA-EP45-EXTREME), Multiple Video Cards & More!

I’m not here to guide you through a Snow Leopard install….but I am here to make your Snow Leopard install…better. If you have a GA-EP45-EXTREME, you’re in luck.

No doubt you have probably followed this guide to get your Snow Leopard install. Congrats. It’s a pretty good guide, and it covers most of the bases. I honestly cannot be arsed writing up a full guide. This is for those who have Snow Leopard installed and want to fix up some things. That guide works perfectly with the GA-EP45-EXTREME, minus Audio (well sorta), IDE SATA Mode and IDE drives. I’ll get to that.

So, I installed Snow Leopard with OSInstall.mpkg and I had to deselect stuff for it to install. How do I install that other junk?

Or also known as, I selected QuickTime but QuickTime isn’t installed. Where the FUCK is it? OSInstall.mpkg didn’t seem to do an excellent job of finishing an install properly…even though it said it did. Put back in your Snow Leopard DVD, select Optional Installs and reinstall everything. Don’t worry, Snow Leopard won’t fall over. This will fix most of your missing packages.While you’re at it, install XCode.

Snow Leopard is up and running, but I want to benchmark. What do I use?

Xbench, CINEBENCH, Geekbench and OpenGL Extensions Viewer.

I want to “complete” my smbios.plist

I don’t blame you, and you should. You should boot into Windows, run CPU-Z and export all your details to a HTML file…then use those details to populate your smbios.plist. Make sure you use MacPro3,1 or 4,1 for Core i7. This thread has documentation for the smbios.plist file.

What should I have in my DSDT file? What should I have in my EFI string?

As much as possible. For both. This is going to differ for each machine and even configurations per machine…but here’s what more you can do for a GA-EP45-EXTREME. After you’ve got your DSDT.aml that works for Ethernet, Sound…you can…

a) Replace your LAN entries with GIGE and enable the GP9 fix. (Check the SL_Pack of the guide i mentioned early, GIGE is better)

b) Replace AZAL with HDEF for better audio. You should have already done this.

c) Find Device (PWRB) and replace the _HID below it with _CID (This enables your power button for Sleep)

The guide I linked earlier has pack available for download which has an excellent guide to DSDT.aml. Follow the steps.

You can however, do a little more with your EFI string.

You can add name tags to your Ethernet and Sound entries, for example:

<key>name</key>
<string>Realtek 8111C</string>

and

<key>name</key>
<string>Realtek ALC889A</string>

I keep kernel panicing when I enter 64-bit mode, even in 32-bit mode sometimes. What the hell?

Yeah this is a problem. Sometimes it’s Spotlight, go to System Preferences, Spotlight then Privacy and add all drives. Reboot, then remove them. Also, every time you modify anything to do with kexts you should run Kext Utility. Failure to do so will likely result in KPs. If you get stuck and can’t get back in. Boot with -s and run these commands:

  • mount -uw /
  • kextcache -v 1 -t -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions/
  • reboot

How do I always boot into 64-bit? Always enable verbose boot?

Modify your com.apple.Boot.plist. Under Kernel Flags put -x64 -v

I have CPU Unknown when I go to About This Mac. Fix?

Yeah. The SMBIOS fix that works with Snow Leopard doesn’t seem to support this. You’ll have to hack this manually. Google for AppleSystemInfo.strings There’s a few guides that tell you what to modify. Purely cosmetic.

OK. Let’s stop stuffing around. Here’s why I REALLY wrote this article.

Multiple video cards, more than two screens, all via EFI strings/DSDT with NO Kernel panics or changes to BIOS settings….oh and CI/QE enabled.

This took me quite some time to figure out. Even though I had the right Device Path for both video cards and correct EFI strings, the system would constantly kernel panic upon switching to GUI mode. NVInject for Leopard seemed to work, but disabled CI/QE…and it wasn’t 64-bit unless I compiled it myself. Eventually I got it working with just EFI strings but I had to change my BIOS to boot with PEG2 (the BIOS has an option to choose which graphics card to enable initially). This wasn’t a solution. I read up and found that Gigabyte boards seemed to have trouble with two cards and that you’d need to use PEG2 and switch cards around each time you wanted to enter (Snow)Leopard. Well, NO LONGER. Here’s the solution. Hoorah!

Firstly, you will need to modify your EFI Strings. Make sure you have the correct PCI Root for each device. Usually PciRoot(0×1)/Pci(0×1,0×0)/Pci(0×0,0×0) and PciRoot(0×1)/Pci(0×6,0×0)/Pci(0×0,0×0). To find these, take out your secondary card, boot, run gfxutil -f display, note it. Shutdown, take out your primary card, insert your secondary card (into it’s secondary slot) and repeat.

You will then need to add some keys. A typical dual-video card EFI plist is outlined below, the parts that are bolded are what you need to add, the parts in red need to be changed. In my example below I use a NVIDIA GTX 260 (896MB/DVI/DVI) and NVIDIA 8500 GT (256MB/DVI/VGA). You should make sure that the parts I haven’t highlighted are also the same in your current EFI string.

<key>PciRoot(0×1)/Pci(0×1,0×0)/Pci(0×0,0×0) (OR THE PCI ROOT OF YOUR PRIMARY CARD use gfxutil)</key>
<dict>
<key>@0,AAPL,boot-display</key>
<data></data>

<key>@0,can-hot-plug</key>
<data></data>

<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,connector-type</key>
<data>AAAABA==</data>

<key>@0,device_type</key>
<string>display</string>
<key>@0,display-connect-flags</key>
<data>AAAAAA==</data>

<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,AAPL,boot-display</key>
<data></data>

<key>@1,can-hot-plug</key>
<data></data>

<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,connector-type</key>
<data>AAAABA==</data>

<key>@1,device_type</key>
<string>display</string>
<key>@1,display-connect-flags</key>
<data>AAAAAA==</data>

<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>NVCAP</key>
<data>BAAAAAAAAwAMAAAAAAAABwAAAAA=THIS IS DVI/DVI (change it depending in your card)</data>
<key>NVPM</key>
<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>
<key>built-in</key>
<data>AA==</data>

<key>VRAM,totalsize</key>
<string>0×38000000 THIS IS 896MB RAM (change it depending on your card)</string>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce GTX 260 (change depending on card)</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rm_multiboard_capable</key>
<data>AAAAAQ==</data>

<key>rom-revision</key>
<string>NVIDIA GeForce GTX 260 (change depending on card) OpenGL Engine</string>
</dict>
<key>PciRoot(0×1)/Pci(0×6,0×0)/Pci(0×0,0×0) (OR THE PCI ROOT OF YOUR SECONDARY CARD use gfxutil)</key>
<dict>
<key>@0,AAPL,boot-display</key>
<data></data>

<key>@0,can-hot-plug</key>
<data></data>

<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,connector-type</key>
<data>AAAABA==</data>

<key>@0,device_type</key>
<string>display</string>
<key>@0,display-connect-flags</key>
<data>AAAAAA==</data>

<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,AAPL,boot-display</key>
<data></data>

<key>@1,can-hot-plug</key>
<data></data>

<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,connector-type</key>
<data>AAAABA==</data>

<key>@1,device_type</key>
<string>display</string>
<key>@1,display-connect-flags</key>
<data>AAAAAA==</data>

<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>NVCAP</key>
<data>BAAAAAAAAwAEAAAAAAAABwAAAAA=THIS IS DVI/VGA (change it depending in your card)</data>
<key>NVPM</key>
<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>
<key>built-in</key>
<data>AA==</data>

<key>VRAM,totalsize</key>
<string>0×10000000THIS IS 256MB RAM (change it depending on your card)</string>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 8500 GT(change depending on card)</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rm_multiboard_capable</key>
<data>AAAAAQ==</data>

<key>rom-revision</key>
<string>NVIDIA GeForce 8500 GT(change depending on card) OpenGL Engine</string>
</dict>

That should allow you to boot to Snow Leopard under PEG2, with CI/QE. No more Kernel Panics! But we’re not done. Lets finish the job:

Now we need to patch DSDT.aml. Gather your DSDT.dsl file using iasl (or whatever you prefer). Open it up in TextEdit and search for

Device (PCI0)

Add the following devices under it:

Device (PEGP)
{
Name (_ADR, 0×00010000)
Device (GFX0)
{
}
}

Device (GFX1)
{
Name (_ADR, 0×00060000)
}

It should look like (sorry for the spacing):
Device (PCI0)
{

Device (PEGP)
{
Name (_ADR, 0×00010000)
Device (GFX0)
{
}
}

Device (GFX1)
{
Name (_ADR, 0×00060000)
}

Name (_HID, EisaId (“PNP0A03″))

Replace the _ADR fields with the Device Path Number. For example, in my EFI string above I have PciRoot(0×1)/Pci(0x1,0×0)/Pci(0×0,0×0) and PciRoot(0×1)/Pci(0x6,0×0)/Pci(0×0,0×0). Replace these numbers in those fields. If you have something like…”1C” instead of just “6″ you’ll have something like Name (_ADR, 0x001C0000).

Recompile the DSDT with iasl -sa and replace the file. Reboot and hoorah, you’re done. If you have a translucent bar at the top, QE/CI is working. Boot up time will be about 30-40 seconds longer. I don’t know why this is, but it’s a good trade off. If you need help with NVCAP or VRAM values try here.

Kext Rundown

A minimal amount of kexts (or Kernel Extensions) are best. The Snow Leopard pack from the guide I linked is nearly there…but it can be improved. The EP45 Extreme also needs a couple of others.

If you have JMicronATA.kext, LegacyAppleHDAHardwareConfigDriver.kext or LegacyHDAPlayformDriver.kext, you can delete them. Not needed.

A modified AppleVIAATA.kext will enable the IDE controller (iTE IT8213) in Snow Leopard. It will recognize the drives BUT THEY WILL NOT WORK. Sorry. Cosmetic only. In fact, inserting a CD will cause a lockup.

A better LegacyHDA.kext. This enables 5.1 Digital Out for your ALC889A.

AppleIntelPIIXATA.kext. This will allow you to use IDE mode for your SATA Controller. No RAID mode yet :(

Other KEXT’s that are ESSENTIAL are: SleepEnabler.kext (enables sleep, duh), OpenHaltRestart.kext (fixes Reboots), NullCPUPowerManagement.kext (Fixes heat issues and DSMOS stuff), IOAHCIBlockStorageInjector.kext (Fixes Orange Icons when using AHCI mode) and fakesmc.kext (does the decryption stuff so you can pirate OSX).

You can find ALL of the mentioned KEXTs (except the ones you don’t need for an EP45-EXTREME) here.

Enabling HFS+ Partition Reading on Windows

Snow Leopard brings a new version of boot camp…and this new version of boot camp happens to enable HFS+ partition reading from Windows (no writing). Yes, you can use this driver on a hackintosh and I’ve made a pretty simple way of doing it. The package I’ve includes the HFS+ driver version 3.0.1.6 (from the 10.6 retail DVD).

Download this, extract it and run the batch file (as Administrator). Reboot, check Computer Management/Disk Management and you should see your HFS+ partitions.

I did, however, have a problem with this driver. I’m not sure what caused it (or if it was even the driver), I think it may have been when I assigned drive letters to the partitions. In any case….if you install this driver and you attempt to get back to Snow Leopard, but are greeted by “boot0: error” then…you’re in luck, here’s the fix. You will probably need a spare OSX install to do it though.

,