Tips & tricks using XPC for Mac OS X 10.7 Lion developer preview 2

The latest XPC EFI boot loader version 0.83.02 allows you to install Mac OS X 10.7 Lion dev preview 2 without having to change or copy a single file on the OS X install volume. Apart from configuring XPC it all works out of the box which simplifies installing OS X Lion a whole lot. XPC now fully supports the new disk-image based installation process that was first introduced in Lion dev preview 1 and is able to boot from mounted .dmg volume images. I just gave it a try and it worked flawlessly on my Hackintosh rig!

However, there are still quite a few traps an aspiring Hackintosh user may fall into, so I came up with a few tips & suggestions that can prove useful to your endeavor. Obviously, it’s a lot less time consuming to just buy a real Mac but hey, where’s the fun, right? :-)

  • Always use the latest XPC version which can be downloaded here. Please be aware that XPC doesn’t come with an installer. You either need DuetToHDD on the Mac or a Windows-based boot partition installer. Check out this link (you don’t need iBOOT though).
  • XPC needs to be installed on a FAT32 partition with a Master Boot Record (MBR) on the drive. AFAIK it’s not yet possible to install it to a hidden EFI partition using a GUID Partition Table (GPT). This means you can’t have XPC and Mac OS X Lion on the same volume, because the disk can either have a GPT or a MBR. Rumor has it that XPC will support GPT at some point in the future.
  • If you’re using DuetToHDD (which despite its name also supports USB volumes using the usb parameter) to create a bootable drive on the Mac make sure the target volume is formatted to FAT32. The easiest way to do this is to use a (USB thumb) drive with a target partition larger than 1 GB. Mac OS X will default to FAT16 on smaller volumes which won’t work for XPC. Make sure you don’t accidentally overwrite a wrong drive’s partition table when using DuetToHDD. There’s also a Windows-based tool which may be easier to use than DuetToHDD on the Mac.
  • If you need kexts to boot your OSX86 rig, you can copy them to the extra_kext/common folder. You most likely need at least fakesmc.kext in there.
  • Once your rig is up and running, you can fine tune it by installing the kexts to /System/Library/Extensions and remove them from extra_kext/common.
  • You may have to remove the CPU c-states-defaults in XPC’s settings.plist in order to gain CPU performance. With the default c-state settings the performance on my rig is reduced to 50% according to Geekbench.
  • While some mainboards don’t require a DSDT descriptor file, most ¬†mainboards will perform better with a properly crafted DSDT. If you already have one for your board just copy it to the /EFI/XPC folder and name it DSDT.aml. You could also create your own DSDT for your board, a good starting point is the DSDT-Patcher but be prepared for a steep learning curve. My rig doesn’t even boot OS X without DSDT. Search the appropriate OSX86 scene forums for a DSDT for your mainboard.
  • Use the -v parameter to boot OS X to see the Mach kernel’s verbose output
  • If you’re told that “No GUID is available. Contact support for assistance” while logging into the App Store, most likely your device properties in XPC’s settings.plist are not correct. Use a tool like EFI Studio to create your own device properties for your Ethernet device. In my case it was sufficient to specify the built-in Ethernet NIC. After a reboot I was able to log into the App Store. By the way, I wouldn’t contact support for assistance but that is entirely up to you :-)
  • Set your BIOS to use AHCI instead of IDE and make sure you use the first SATA-port for your OS X installation drive. It might work on other SATA-ports, but the first one has prove to cause the least trouble. You can always move your drive to a different SATA-port once the installation is finished.
  • If you’re unable to connect to your Linux NAS, this could be the reason.
  • If your mainboard sports an Realtek RTL8169 family based Ethernet NIC, it probably won’t work in dev preview 2 because Apple omitted the driver in IONetworkingFamily.kext. However, support for RTL8169 was part of dev preview 1 so all you have to do is to install the kext from dev preview 1.

2 thoughts on “Tips & tricks using XPC for Mac OS X 10.7 Lion developer preview 2

  1. GPT boot capability has been added to XPC 0.83.10. After creating the EFI partition (see included README) you have to boot OS X and mount the partition using:
    sudo mount_msdos /dev/diskXs1 /Volumes/EFI
    Where X is the number of the volume of your OS X Lion disk. Now copy the files as indicated in the README.

    On the Chameleon boot loader front I’ve seen some branches with the interrupt masking fix (thanks, cparm!) and was able to compile a version that boots lion without kernel faults.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>