Posts mit dem Label EFIStudio werden angezeigt. Alle Posts anzeigen
Posts mit dem Label EFIStudio werden angezeigt. Alle Posts anzeigen

Dienstag, 28. Juli 2009

How to enable/use the new Features of Chameleon 2.0 RC2

I had some problems to find out how to enable and use the new features of Chameleon 2.0 RC2. These options are hidden in the Installer and not enabled by default. Push the Customize button and open Options:



Selecting one of these options will make an entry in the com.apple.Boot.plist file located in the Extra folder. Here is the result if you select all the options.

Extra/com.apple.Boot.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string></string>
<key>UHCIreset</key>
<string>y</string>
<key>GUI</key>
<string>n</string>
<key>GraphicsEnabler</key>
<string>y</string>
<key>ForceWake</key>
<string>y</string>
<key>ForceHPET</key>
<string>y</string>
<key>EthernetBuiltIn</key>
<string>y</string>
<key>EHCIacquire</key>
<string>y</string>
</dict>
</plist>


To use the new dynamic configuration features of Chameleon 2.0 RC2 you must delete the device-properties in your com.apple.Boot.plist. The device-properties you had made with EFIStudio.

Update: Unfortunately the new features are not working for me. Chameleon detects my nVidia 7300 GT graphic card and the 2 onboard ethernet chips, but after booting Mac OS X I only have VESA graphic and the ethernet ports are not built-in. Here is a screenshot of the Chameleon debug output:


Maybe I will find some time to dig into the Chameleon source code to fix this bug. I already compiled Chameleon and it worked, so I could start debugging. For the time being I will stay with my "old" Chameleon RC1 com.apple.Boot.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string></string>
<key>Default Partition</key>
<string>hd(1,2)</string>
<key>Legacy Logo</key>
<string>Yes</string>
<key>Timeout</key>
<string>3</string>
<key>device-properties</key>
<string>ea02000001000000030000003f0000000100000002010c00d041030a0100000001010600041c0101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001600200000d00000002010c00d041030a010000000101060000010101060000007fff04000e0000004e00560050004d0000002000000001000000000000000000000000000000000000000000000000000000220000005600520041004d002c0074006f00740061006c00730069007a006500000008000000000000101c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e740e0000006e0061006d00650000000b000000646973706c617922000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c617922000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000006d006f00640065006c0000001a0000006e5669646961204765466f726365203733303020475420000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616314000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d4114000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163100000004e00560043004100500000001800000004000000000003000c00000000000007000000001e00000072006f006d002d007200650076006900730069006f006e0000002e0000006e5669646961204765466f7263652037333030204754204f70656e474c20456e67696e65205b4546495d3f0000000100000002010c00d041030a0100000001010600051c0101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001</string>
</dict>
</plist>

Update 2: The autodetection is working, but this new Chameleon feature needs teh value UID=0 for the PCI-root-device PCI0. Unfortunately all Gigabyte mainboards I has seen so far are using the value UID=1. This can be fixed by patching the DSDT (change is marked green):
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Method (_STA, 0, NotSerialized)
{
Return (0x0B)
}
}

Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_UID, 0x00)
Name (_BBN, 0x00)
Method (_S3D, 0, NotSerialized)

Montag, 6. Juli 2009

Time Machine

I will give you now some info the problem with non working Time Machine.

Time Machine is a very user friendly and easy to use Backup solution from Apple. The backup it takes, is connected to Computer which made the backup. You cannot use a TM-backup from Computer "A" to restore something on Computer "B". To identify the Computer TM uses the Ethernet-MAC-address of the built-in Ethernet. Every MAC-address is globally unique and every MAC from Apple has ethernet, so it can be used to identify a computer, if the ethernet port is built-in. An exchangeable PCI-card, like the Netgear GA311, does not help, because the card can be removed (loosed MAC-address) or changed (another, different MAC-address). So TM only works if it can find an internal, built-in ethernet port.

This was exactly the I got from TM. It couldn't find any built-in ethernet port, although the two Realtek 8111C are onboard and hence built-in. For some reason Mac OS X does not detect the as built-in. I don't known how Apple detects their own ethernet as built-in.

I flagged the first onboard ethernet port as built-in using device-properties in the Chameleon com.apple.Boot.plist. I made this device-property with EFIStudio. See here.

Samstag, 4. Juli 2009

13.) [10.5] com.apple.Boot.plist

To have a full resolution graphic card with working CI/QE (Core Image/Quartz Extreme) and a working Time Machine you must provide the Mac OS X onboard drivers with some info about your hardware. This is done by Chameleon and the com.apple.Boot.plist file in the Extra folder of your USB-Stick. Chameleon will inject the device properties which you already have created with EFIStudio into the Mac OS X kernel. The advantage of this approach is, that you don't have to modify your Mac OS X Installation. It remains plain vanilla and this is important for Software updates through Apple's Software Update Application.

You can find the original Mac OS X com.apple.Boot.plist under:
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

It's almost empty. Use it as a template for your new Chameleon com.apple.Boot.plist. It looks like this:



Copy it to your Desktop. Be careful to NOT move it! Copy it (hold the ALT key while drag-n-drop). Open the copy from the Desktop with your favorite Editor. You must at least add the device properties from EFIStudio. Mine has 2 additional parameters: Default Partition and Timeout. These two are for Chameleon to automatically boot from the right Disk/Partition. Chameleon counts disk starting from 0 and counts partitions starting from 1. Adjust hd(x,y) and the timeout value. Propertylist are XML and have Key-Value pairs. For instance to adjust the Chameleon Bootscreen timeout value find the Key Timeout and change (in the next line) the value (mine is 10). OK the most important things are the device properties. Add the key device-properties and in the next line between "string" and "/string" your device properties in HEX in only ONE line. Mine appears wrapped, but this is due to my editor. If you are done the com.apple.Boot.plist should look like this (but with different values):



Save it in plain text mode (apply Shift-Cmd-T in Textedit) and copy it as com.apple.Boot.plist into the Extra folder of your Chameleon-USB-Stick.

12.) [10.5] First Boot into Mac OS X

Now it's time for the first boot into Mac OS X. Put in your Chameleon USB-Stick an power on the PC. The Chameleon bootloader should welcome you with a similar Welcome screen:



Select the Disk with your Mac OS X Installtion (cursor keys) and hit ENTER. If you hit Cursor down Chameleon will present you a Menu to boot, for instance, in verbose mode.

If all went fine you will see your Mac OS X Desktop or Login Window. It will come up in one Vesa Graphic Mode. Mine came up in 1024x768 (no CI/QE). Login, unzip EFIStudio.zip to (for instance) your Desktop and start it.

Select Display and your Graphic Card from the list. Mine is a nVidia 7300 GT passiv with 256MB RAM. And click "Add Device"



EFIStudio will open this window with all the details of your Graphic card:



You can close the window. Go ahead an select "Ethernet" and "Add Device". Note the device in the list is your graphic card:



EFIStudio will open this window with all the details of your Graphic card and with one property for your ethernet:



The onboard ethernet will get the property "built-in" and this will make Time Machine happy. I going to explain this later in detail. Now you must save the device properties created by EFIStudio. At least click on "Save Hex" and save it to the Desktop. You must put this device properties in Hexmode in a special file called com.apple.Boot.plist. If you have saved the Hexdata you can close the window. EFIStudio lists now 2 devices, the graphic card and the ethernet controller with their device path. You can close EFIStudio now.

Sonntag, 28. Juni 2009

7.) [10.5] Preparations

First of all you need a working installation of Mac OS X 10.5.7.

For the first steps do not use your working installation from your EFI-Mac. Something could go wrong and you could loose all your data.

Make a clean and fresh installation from scratch on a separate hardisk. I made it this way. You can also try a new installation a timemachine backup (Mac OS X DVD Installer -> Menu).

Download the following stuff:
Find a USB-Stick. 128MB should be enough. Mine has 512MB. It's a Kingston DataTraveler.