ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

 
Start a new topic Add Reply
> Cham2 Efi Install And Management For Msi Wind
18seven
post Oct 19 2009, 07:55 PM
Post #1
This is a guide for running a 100% vanilla OS X retail install on your wind and the like

This method takes advantage of the incredible work of OSX86 devs and community members. Notably the Chameleon and Voodoo teams, I would like to specifically call out Munky for cutting the path into EFI booting. This guide takes Munky's method a step further utilizing cham2, adding dependency support and an EFI management system (among other tweaks).

Benefits

Well you have a totally native OS X install. Not only is it solid as a rock, totally updatable (in theory), super easy to manage/fix if you do break it, and, as if that is not enough, its simply bad ass. One could debate that placement really doesn't matter given the fact that all of the kext needed are non-native therefore will not be overwritten, IMHO it is ALWAYS better not to hack, thus my obsession with achieving this goal.

What you need

A fresh OS X retail installed and updated
USB or Boot123 external bootloader
Chameleon RC2 or RC3 binaries.
Attached File  EFImanagement.zip ( 682.04K ) Number of downloads: 269


Please note, at the time of this post Cham2 is still in beta. Based on my testing I have found it to be stable.

For this tutorial you will need a vanilla OS X retail install (10.5 or 10.6) on your wind that you have updated, but have not installed any bootloaders or driver packs. Your BIOS must be up to date to avoid graphics issues. MSI wind 1.0D, current at time of this post, and Advent 4211 with BIOS 1.0A, confirmed fully functional with this method.

This tutorial assumes you have formatted your boot volume, disk0, GPT (GUID partition table) and OS X is on your first (visible) partition. If your disk is alternately setup make sure you adjust your setup or the commands in this tutorial to suite.


OK, lets get started.



Boot your fresh retail install

Once booted in eject external booter so you don't accidently overwrite your safety net.

Check disk structure
CODE
diskutil list

If your HDD is disk0 go to the next step, and simply copy/paste the code. If it is disk1 or 2, whatnot... change code and edit the scripts to suite. Just remember to restore the scripts afterwards for future updates. If you are new to this, you should examine the scripts. It won't be long until you understand what all of that is doing.



Install Cham2 on your EFI (you know what that is because you read Munky's EFI booting post for background, right)

Open terminal.

Get session root privs
CODE
sudo -s
enter password

Reformat EFI
CODE
newfs_hfs -v EFI /dev/disk0s1


Mount EFI
CODE
mkdir /Volumes/EFI
mount_hfs /dev/disk0s1 /Volumes/EFI


Create file structure
CODE
mkdir -p /Volumes/EFI/Extra/Extensions
mkdir /Volumes/EFI/Extra/Themes


Load booter (Assumes Chameleon-2.0-RC3-r658-bin is extracted and in your downloads folder)
CODE
cd ~/Downloads/Chameleon-2.0-RC3-r658-bin/i386
fdisk -f boot0 -u -y /dev/rdisk0
dd if=boot1h of=/dev/rdisk0s1
cp boot /Volumes/EFI


Load smbios.plist and Themes (note these are cham2 defaults, however, they can be customized)
CODE
cd ~/Downloads/Chameleon-2.0-RC3-r658-bin/Optional\ Extras
cp -R smbios.plist Themes /Volumes/EFI/Extra


Unmount EFI
CODE
umount -f /Volumes/EFI
rm -rf /Volumes/EFI

If you do not Unmount EFI you will receive a mount_hfs: Invalid argument error next time you try to mount it.

Fix that error with
CODE
fsck_hfs /dev/disk0s1

Output should end with ** The volume EFI appears to be OK.
Now we have a default install with the exception of the kext.

Note the update scripts unmount automatically when the update completes.



Prep and load kext *for 10.5 install see 10.5 folder before proceeding.

Recommended: Set up UUID.kext or PlatformUUID.kext and place it in the EFIkext folder (Note, your machine will run without this, it probably is now, but should be used. Google "Error: 35".) Kext is not included in pack, seek and you will find.

Patch your graphics kext. (note: this script must be run for install and all system updates, i.e. 10.6 -> 10.6.1)
CODE
cd ~/Downloads/EFImanagement/EFIkext
./27ae.sh


Load.
CODE
./update.sh




Copy boot.plist over

CODE
cd ~/Downloads/EFImanagement/boot.plist
./update.sh




Flag this partition active

CODE
diskutil list

My disk structure is thus:
disk0
disk0s1 Hidden EFI partition (Cham2 loader)
disk0s2 OS X
disk0s3 XP

This is reflected below in fdisk -e /dev/disk0 and the f 1 cli entry.

CODE
fdisk -e /dev/disk0
p
f 1
w
y
q


Its worth noting that an * denotes the active partition. In this instance, when properly set active you will see it next to your EFI partition after you enter the p command.



Reboot

CODE
reboot


If all goes well you should see Cham2 load, time out and automatically load OS X, sweet.



Some tuning

Hibernate/Sleep

If you did not use a hibernate patched boot file, hibernate will not work so temporarily disable it.
CODE
sudo pmset -a hibernatemode 0


To re-enable default sleep/hibernate sudo pmset -a hibernatemode 3
If you would like hibernate without sleep enabled sudo pmset -a hibernatemode 1



EFI Management

The default set of kext are simply the most compatible. My setup is entirely different, yours probably will alter as well with knowledge, likes and system needs.

You will notice I have supplied the update scripts I use within the folders. Anytime you update a feature simply cd/path/to/folder and sudo ./update.sh. The needed commands will run and make a backup. However, you should give them a look-see and understand what is going on, adjust as desired.

Please keep your external booter around whenever updating.

AlternateKext
When using alternate kext you must disable the current to avoid conflict and possible kernel panic.

VoodooBattery can be substituted with AppleACPIBatteryManager.

The VoodooPS2Controller.kext and VoodooPS2Trackpad.kext drivers are beta and do not play well with Sentelic trackpads. Due to this AppleACPIPS2Nub.kext and ApplePS2Controller.kext are the default. I also included CGPS2Controller.kext, CyberGregs PS2 tweak, needs to be paired with AppleACPIPS2Nub.kext and ApplePS2Controller.kext disabled. May be loaded from EFI.

The VoodooHDA is also beta. The Azalia may be used instead, requires other functionality tweaks. Having both VoodooHDA and Azalia present will cause a kernel panic.

VoodooPowerMini may be used in place of VoodooPower.

boot.plist
Edit to your prefs. However it is important to retain the device-properties string for GFX to work

DSDT
This is an advanced topic. I recommend you do some research on this.

EFIkext
You are familiar... this will come in handy. Remember to use the 27ae script when doing system updates.

SLEkext
Just in case you need it I provided it.

smbios
Again, do some research, good stuff. I put a MacAir version in this folder, having remote disk could be useful as well as corrected system info. I left cham2's default in the folder for reference.

VoodooPrefs
Double click to install PS2 and VoodooHDA pref to install. From helper, add voodoohdahelper to Login Items.

Enjoy.
Hagar
post Dec 15 2009, 02:07 PM
Post #2
Please note that the terms "EFI Booting" and "EFI" are discouraged when describing the use of the EFI System Partition in this manner. There is still no real EFI involved, and this tends to confuse people, particularly with the emergence of UEFI-based bootloader methods. Otherwise a nice contribution, thanks.
This Time We're Doing it RIGHT


18seven
post Dec 15 2009, 04:16 PM
Post #3
Thanks Hagar. I am aware of the discrepancy. I used it due to its common referral and the use of GPT's empty EFI slice, it has always bothered me a bit. I need to update a little and will think of a new description, maybe "partition booting" as well as clarify the language a bit. I am open to suggestion.

Add Reply Start a new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members: