EFI-X™ Opensource Alternative

Dienstag, 10. November 2009

Tonight Apple has released the next update Mac OS X 10.6.2. I have it already up and running.

Attention: Do not update if you have SleepEnabler.kext in the Chameleon Extra folder. It will result in a Kernel Panic!!! For more info about this issue read this post in the Netkas Blog. Remove SleepEnabler.kext or replace it with the newer version made by Netkas before updating to Mac OS X 10.6.2.

Dienstag, 13. Oktober 2009

If you have your Mac OS X up and running, then it's time for the final touch. Get rid of the verbose booting messages, configure Chameleon to automatically boot your fresh installed Mac OS X 10.6 and displaying the gray Apple while booting. This is done by editing the file com.apple.Boot.plist in the Extra Folder of the Chameleon USB-Stick.

To disable the verbose booting you must change the "Kernel Flags" and the "Wait" key from:

To boot automatically your OS X installation you must first find out on which harddisk/partition it is installed. Chameleon numbers the harddisk chronologically starting with 0 and the partitions starting with 1. The Chameleon USB-Stick itself becomes disk number 0. Just press the "TAB" key at the Chameleon Boot Menu to see this Menu:

Find the hd(x,y) for your OS X Installation and configure the "Default Partition" in com.apple.Boot.plist. My OS X installation is on hd(1,2). It is also a good idea to configure a timeout, to be able to access the Chameleon Boot Menu and to boot from other disks or partitions:

Sonntag, 11. Oktober 2009

Time to install Mac OS X 10.6. Shutdown your PC. Connect the prepared harddisk. Insert the prepared Chameleon USB-Stick. Power on the PC and enter the BIOS setup. Verify all the BIOS settings as explained here. Save and Exit the BIOS setup.

Chameleon should boot from the USB-Stick and presents you this screen. I've enabled some debug output for. You can disable these debug outputs if you have successfully installed OS X and system is up and running.

Hit ENTER to boot the Mac OS X 10.6 Install DVD (restored to HD). You will see some debug messages from Chameleon.

Hit any key to continue booting OS X. It will boot in verbose mode.

After some time you can see the Mac OS X Installer. Follow the Installer.

Select the Partiton "Mac OS X" as install target. You can click on "Customize" to customize your OS X installation.

Time for a cup of coffee...

At the End you will see this Error. Ignore it! The installtion went fine. Just restart.

Once again in Chameleon. You will see two bootable Installation now. Select "Mac OS X" with the cursor keys (right/left) as show in the photo and hit ENTER.

Once again the Chameleon debug messages. Hit any key to continue...

Now you will see the Mac OS X Welcome Video Clip...

... and some additional steps to complete the installation process.

Finally the Mac OS X 10.6 Desktop.

If you have a working Internet connection, then OS X will check and download (in background) all available software updates. Go on and install all... it's safe to do ;-)

Insert the Chameleon USB-Stick you have prepared in step "6.) [10.6] Prepare the Chameleon USB-Stick" and save the two downloaded files on the Chameleon USB-Stick. To get rid of the "com.apple.quarantine" extended attribute launch the Terminal and run the following commands (the shell prompt is blue, the commands you have to enter are green):

Double Click each downloaded file so that the Finder will extract the content. This should give you the following files on the USB-Stick:

Adapt the Chameleon USB-Stick according to your hardware. Modify the Extra/smbios.plist as explained already here:

SMboardmanufactor: the mainboard manufactor

SMboardproduct: the mainboard type

SMmemmanufacter_X: the memory manufactor

SMmempart_X: the memory part number

SMmemserial_X: the memory serial number

SMmemspeed: the memory speed in Mhz

SMmemtype: the memory type DDR2=19, DDR3=24

Replace the Extra/DSDT.aml file with the patched DSDT for your mainboard. Configure the UUID you are going to use by modifying the kernel extensions Extra/10.5/Extensions/UUID.kext and Extra/10.6/Extensions/PlatformUUID.kext with right-click with the mouse and select "Show Package Content". Then edit the file Content/Info.plist in each kernel extension. Insert/Replace the UUID for the "key/value" UUID-key (10.5: UUID.kext) and PlatformUUID (10.6: PlatformUUID.kext).

You must also configure the cpu type you are going to use for your hackintosh in the CPUInjector.kext. If you also have a Intel Quad Core CPU, then you can leave it as it is, because it's preconfigured to use a Quad Core CPU. If not read this post and edit Info.plist of the CPUInjector kernel extensions and replace the value for cpu-type with the one for your CPU. Use the Base64 encoded value.

The command "diskutil list" list all disks and all of their partitions. In my case the disk identifier is "disk2" (marked red). The device is /dev/disk2 an the partition is /dev/disk2s1. Please use for all upcoming terminal commands your disk identifier! It could be different than mine. I will continue using disk2.

Now let's install Chameleon. Run these commands in the Terminal and do not forget to use your disk identifier. First you must remount the USB-Stick to get rid of the "noowners", "nosuid" and "nodev" mount options as explained already here:

The mount command shows you that the USB-Stick (/dev/disk2s1) is mounted to temp without the "noowners", "nosuid" and "nodev" options. Now set the owner and group of all files and directories in the Chameleon Extra folder to root:wheel (0:0):

root [~] >cd temproot [~/temp] >chown -R 0:0 Extra

Finally it's time to install Chameleon. Please note the "r" before the disk identifier. Using "rdisk" isn't a typo:

A reader of my Blog pointed my to the Digital DJ Blog. He has found a way to fix the "Unknown CPU" problem. Editing the file "/System/Library/CoreServices/Resources/English.lproj/AppleSystemInfo.string" is only cosmetic. For the OS the CPU is still "Unkown". His solution is a kernel extension, which injects a "cpu-type" property into the IORegistry. Read the blog for more info about this topic.

Montag, 5. Oktober 2009

One major drawback of Chameleon is the missing "Mac OS X Install DVD" boot support. You cannot boot an Install DVD directly. There are workarounds with special, custom made Boot DVDs, but I think the easiest solution is to restore the "Mac OS X Install DVD" to a HardDisk with Disk Utility. This allows you to boot the Installer from the HardDisk, which in turn works great under Chameleon and even on a real Mac. A positive side effect of this approach is an enormous speedup of the installation process due to the use of a harddisk instead of a slow optical drive.

There are many possibilities to restore the Install DVD onto a harddisk. On a separate internal or external harddisk, on a free partition or even on an USB-Stick (>= 8GB). It's up to you. I will restore the Install DVD on the same harddisk on which you are going to install Mac OS X 10.6.

Connect the harddisk on which you are planning to install Mac OS X 10.6 to a real Macintosh and launch Disk Utility. For this guide I will use a Samsung 500GB HD502SJ.

In Disk Utility select the new HD, click on Partition and selct as Volume Scheme 2 Partitions.

Then click the Options button and select GUID Partiton Table + OK.

Now select the partition "Untitled 2" with a click go to Size and enter 16 and confirm with ENTER. Go to Name and enter 10.6 Install DVD. Leave the Format as it is: Mac OS Extended (Journaled).

Select the first partition "Untitled 1" and rename it to Mac OS X (or a name of your choice). On this partition you will install Mac OS X. Leave the Format as it is: Mac OS Extended (Journaled).

Now click the Apply button and then the Partition button.

You are done with the preparations of the HD. Now let's restore the "Snow Leopard" Mac OS X Install DVD onto the partition "10.6 Install DVD". Insert the Install DVD and select the partiton "10.6 Install DVD" on the left side as shown in the photo. The click on Restore.

Now Drag-and-Drop the "Mac OS X Install DVD" from the left side to the Source Textfield. Repeat this step with the "10.6 Install DVD" HD-Partition to the Destination Textfield. Then click on the Restore button, acknowledge the sheet and provide the Administrator credentials.

Sonntag, 4. Oktober 2009

DSDT is an acronym for Differentiated System Description Table. I've already wrote about it. Please read this article first as an introduction and to get some general infos. Modifying the original DSDT from your mainboard is the most complicated part of all. Unfortunately Mac OS X 10.6 "Snow Leopard" does not boot with the most of the original DSDTs.

First you might look into the "DSDTs ready for use with Chameleon" thread in the efixusers.com forum. There you can find a lot of already patched DSDTs I've made. Maybe you will find the one you need for your mainboard/BIOS-version already there. If not leave me a request there or continue here...

Using an Ububtu LiveCD is the easiest way to obtain the original DSDT. Boot the Ubuntu LiveCD and start a Terminal: Applications->Accessories->Terminal

In the Terminal run the following commands to dump the DSDT into the file dsdt.aml (will appear on the Desktop):

Now fix all Errors and Warnings and the HPET, RTC and TMR device as described here.

Another very important fix for "Snow Leopard" is the CMOS Reset Fix. Without this fix AppleRTC.kext will corrupt the CMOS NVRAM used by the BIOS, so that you must reconfigure the BIOS settings at every Boot/Restart. Open "dsdt.dsl" in your favorite editor and find the RTC device.

Chameleon RC2 introduced a new feature to autodetect the graphic card and the builtin ethernet ports (Time Machine Fix). Unfortunately this works only when the UID of the PCI root device PCI0 is 0. All Gigabyte DSDTs I've fixed are using UID=1 and therefore the autodetection does not work. Find the following _SB -> PCI0 -> Name (UID, 0x01) (marked red):

Samstag, 3. Oktober 2009

The BIOS settings are important for a successful Mac OS X 10.6 installation. Try to update to the latest BIOS version and make this before continuing with the DSDT part, because a newer BIOS might result in a different DSDT. I'm using BIOS version 10a (Beta). It has a newer AHCI BIOS version 1.20, which gives you a 10 seconds quicker boot time.

Important: To bring up Mac OS X 10.6 on your PC, I do recommend to not use any PCI/PCI-E expansion cards in the first step. Disable all the not needed onboard hardware, like Sound, UART, LPT, IDE, Floppy. Do not connect any special hardware to the USB or Firewire ports. Use only a USB mouse and a USB keyboard. If you have Mac OS X 10.6 up and running, then try to bring up all the other hardware step by step.

Do not overclock your system and take care of the DRAM voltage. My DRAM runs at 1066Mhz and according to the datasheet it needs 2,2V at that speed. But the BIOS only used 1,8V automatically, which gaves me a lot of kernel panics. I got a stable system only after I had changed the DRAM voltage manually to 2,1V.

Enter BIOS Setup and load the optimized default settings:

Enter MB Intelligent Tweaker to verify the BIOS defaults and to set DRAM speed and voltage:

Enter Standard CMOS Features to disable the Floppy:

Enter "Advanced BIOS Features" to setup the boot priority & order:

Enter "Integrated Peripherals" to enable SATA AHCI and disable Sound, SMART LAN, IDE, UART and LPT. You can also disable the second LAN port if you don't need it.

optional another free HardDisk/Partition/USB-Stick to restore the OS X Install DVD on it

You will also need a unique Hardware UUID. Wikipedia has more general info about UUIDs. The easiest way to make a UUID is to use the ethernet mac address of the onboard ethernet port of your mainboard. The Hardware UUID looks like this:

00000000-1008-1000-8000-001FD02E7359

My ethernet mac address is 00:1f:d0:2e:73:59. Replace the red part with your ethernet mac address. You can find it out using the Ubuntu LiveCD. Open a Terminal an issue the following command:

Dienstag, 15. September 2009

I know... this isn't really a news anymore, but a good starting point for the upcoming Chameleon + Snow Leopard guide. Chameleon 2.0 RC3 provides Snow Leopard support and some other new features. More info on the Chameleon Project Homepage.

I have Mac OS X 10.6.1 already up and running, using a Chameleon 2.0 RC3 USB-Stick.

Montag, 14. September 2009

Dear Readers, there are legitimate questions whether the donations page made by Knotty (Thank you my friend!) is a fake or not. I can assure you that the page is authentic and has been published with all honest intention. Every donation made by this page will go directly to my Paypal account.

Mittwoch, 9. September 2009

last Sunday I've returned from a longer trip to carribean. It was wonderful and I really enjoyed it. This monday I received a letter from a law firm. As announced in the official EFI-X™ forum by Wilhem von Vnukov, ASEM issued legal action against me, sending me a cease-and-desist (in german: Abmahnung). I cannot give further details here, because it's a open legal case.

Together with my lawyer we have worked out a acceptable solution. Unfortunately this solution demands that I never again can say anything negative about EFI-X™ or ASEM. I'm also demanded to remove all posts and articles about ASEM and EFI-X™ in my Blog, in different forums and even in Google. I have to start cleaning up before this Friday. I feel very sorry for doing this, but I am only a private person and I do not have such a strong financial background like a company. Coram iudice et in alto mare in manu dei soli sumus. But I'm also quite sure that things will go on without my person being part of it.

In the future I will devote myself to support the efixusers.com forum and the Chameleon based solution. To bring it up and running on your machines and maybe I can help to improve Chameleon further, for instance in terms of cd/dvd boot support.

Sonntag, 9. August 2009

Donnerstag, 6. August 2009

As promised here are some new infos and highres photos of the EFI-X™ dongle. If you ever wondered what's inside the EFI-X™, here you will find some answers.

I could find out which microcontroller is used for the EFI-X™. It was not that difficult. Searching for a microcontroller:

with a 64-Pin TQFP package

and USB support

an oscillator connected to pins 5 & 6

USB D-/D+ connected to pins 44 & 45

... gaves me very quickly a Cortex™ M3 from STMicroelectronics. A test with a spectrum analyser ruled out, that the microcontroller runs very likely at 72Mhz. Got a peak at 8Mhz (the resonator frequency), a small peak at 36Mhz, a strong peak at 72Mhz and another small peak at 108Mhz (72+36). So the microcontroller must be a STM32F103Rx. To figure out the exact model one must connect a JTAG debugger. The pads to do so are there. The EFI-X™ V1.0 has no ESD Protection for the USB data lines D+/D- and a simple 3.3V DC/DC converter.