ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

 
Start a new topic Add Reply
> Guide To Perfect Vanilla Snow Leopard (32 Or 64 Bit)
Paranoid
post Aug 15 2009, 08:46 PM
Post #1
THIS GUIDE IS OUTDATED.
It is still ok but there are more easy ways to do it.


I am reposting the guide here with solars premissions.

Any questions can be asked at irc.osx86.hu #snowleopard
The Guide was ment for 10A380 but the same do apply for 10A432.

But for 10A421 and 10A432 you need to use the new dsmos from netkas.

dsmos

My hardware is pretty much compatible with Mac OS without much fuss.. I built this machine specifically for doing Mac OS stuff so as to make this easier and more vanilla, but with some hacking you should be able to apply this method to any Leopard/Snow Leopard installation.. it's the concepts that are important to understand, not the exact steps.

What you need

A computer that can run Mac OS:

Something with an Intel chipset from the past year or two is ideal.
Intel Core 2 Duo processor of some sort
BIOS set to AHCI for your SATA
SATA or USB hard drive and SATA cd/dvd drive
USB keyboard/mouse (as this is what Macs have)
Fairly recent NVidia or ATI video card

Here is what I used:
Gigabyte EP45T-UD3P motherboard
Intel E8600 Processor
NVidia 7950 GT PCI Express graphics card
Microsoft USB wired keyboard
Microsoft USB wired optical mouse
8GB OCZ DDR3 Memory
1.5TB SATA hard disk (this MUST be partitioned into smaller chunks; the bootloader will not work with a single 1.5TB partition)


About DSDT

The first challenge is booting. In order to successfully boot you need a cool bootloader like PC EFI v9 or Chameleon 2.0 RC1.
My computer worked fine in Leopard (10.5) but I couldn't get things to boot right in 10.6 until I created a DSDT patch.

The DSDT is part of the ACPI stuff which is part of the BIOS.. basically it's like a program that tells the operating system what hardware the computer has and how to access it.
It is not the only way the operating system discovers hardware but it is one of the ways and Mac OS expects certain devices to look a certain way. Computers are all different and made by different companies and people so there's a lot of variation in the general PC market, but Apple's obviously only got 4-5 computers they manufacture so they aren't writing their code to account for every variation.

Anyway, you will likely need to fix your DSDT. The nice thing about these great bootloaders we have available for OSX86 is that they not only emulate EFI for us, but they allow manipulating the DSDT by creating a patch file and putting it in the right place for the bootloader to find. The bootloader will replace the in-memory DSDT table with the one we provide before executing the operating system, so we have a chance to tweak things and make them look the way Mac OS wants.

The first tool you need for this is DSDT Patcher. Read the thread here or Google for it.
This includes iasl which is what you need to compile/decompile the DSDT, and includes a tool to make some fixes for you automatically. This is good to get started with, but you should get familiar with what's going on, how to decompile by hand and how to compile by hand as you will probably want to tweak it further.

The other tool I found useful is ACPI Patcher. Read the thread here to learn more about it.

You need some way to boot into Leopard to use some of this stuff, but if you're creative enough you can get your DSDT other ways (Linux, Windows)
Leopard is also a good way to test your DSDT prior to trying it with Snow Leopard. Most things are fixable through the DSDT if your computer is compatible with Mac OS already.

I got the sound on my motherboard (alc889a) to work without a modified kext by editing the DSDT.

Here is my DSDT compiled: EP45T-UD3P-DSDT.aml
And here it is decompiled: EP45T-UD3P-DSDT.dsl

Hint: to decompile an .aml file, use:

CODE
iasl -d /Path/DSDT.aml



to compile the .aml file from a .dsl file, use:

CODE
iasl -ta /Path/DSDT.dsl



Notable things to look at are the HDEF (just search the dsl file) - this makes my AppleHDA work with no modification, and the HPET which makes the AppleIntelCPUPowerManagement.kext load without kernel panic (but it is still preferred to block it, more about this later)

BIOS setup

This is for my motherboard, but the same ideas should apply for any others.

NOTE: right now each time I boot snow leopard I lose my BIOS settings. It's annoying but one way to make it a little less annoying is to save your settings in a profile inside the BIOS (F11) and after you reboot go back into the BIOS and load it with F12

UPDATE: CMOS reset fixed thanks to Stellarola. Make your RTC device look like this in your DSDT. It might be called RTC0, doesn't matter..
CODE
                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
                    })
                }

I have 6 yellow SATA ports that are from the Intel ICH10 and a few purple SATA ports + IDE port which are added by Gigabyte (I think it's JMicron). You need to turn off the 'Onboard' controller in the BIOS. It will disable the purple ports + IDE port.

Make sure you set the SATA mode to 'AHCI' not raid or IDE.

Enable the HPET and put in 64 bit mode (in Power management settings)

Disable the UART serial ports and the parallel port.

Set onboard azalia audio to Auto so you get sound.

Enable the gigabit LAN ports.

Enable firewire/USB 2.0


Files for installation

You are going to need Snow Leopard. The one that was given out at WWDC was build 10A380. As of this writing the most current is 10A394 but it is only distributed through Software Update. So basically start with an actual install disc (or dmg) of whatever the latest Snow Leopard is.

At the minimum you need a decrypt kext. The popular ones floating around are dsmos.kext and AppleDecrypt.kext. Note that you can use old ones from Leopard but one of the big features of Snow Leopard is the 64 bit kernel, which means you'll need new kext which include both a 32 bit and a 64 bit version in the binary, if you want to be able to boot in 64 bit mode.

I have collected the following kexts which in my opinion make for a perfect install:

dsmos - required to decrypt encrypted binaries
NullCPUPowerManagement - attaches in place of the real AppleIntelCPUPowerManagement which doesn't work right on PCs (kernel panic, cpu running hot)
OpenHaltRestart - very simple kext that makes reboot and shutdown work on PCs
PlatformUUID - sets the platform UUID so that you have a uniform UUID from the very start of the boot.. this UUID is used in your preferences files (among other things) and I think it is important for a clean install to have this right from the first boot.

Bootloader files:

These are for the first boot:
PCefi_v9_Installer_Final 2.dmg
boot - snowboot file (goes in /boot)

This is what we want to end up using in the end:
Chameleon-2.0-r431.pkg
smbios.plist - modify this to your tastes

You also need an EFI string for your video card. Search the forums, this is pretty easy to come by.


Installation

The easiest way to do this is by using an already working system. If you have a working Intel Mac with Snow Leopard running already, that's ideal. Basically the idea is to boot the working system, connect the target drive to that computer, and use the OSInstall.mpkg to install. There are lots of guides about how to do this on Leopard already but it boils down to this:

1. Connect the target drive.

2. Use Disk Utility to partition in using GPT - GUID Partition Table
Important: Right click on the new volume on your desktop, Get Info, Click the little lock icon in the bottom right corner to authenticate and UNCHECK 'Ignore ownership on this volume' or else the permissions will be all screwed up after you install.

3. Make sure that the new volume's root directory is owned by the root user.
CODE
sudo chown 0:0 /Volumes/Snow # substitute whatever you called your volume in place of Snow



4. Mount the Mac OS X Snow Leopard DVD (or image)

5. In terminal:
CODE
open /Volumes/Mac\ OS\ X\ Install\ DVD/System/Installation/Packages/OSInstall.mpkg



If you don't have a working Snow Leopard system to do it from, you can use Leopard maybe, but I had problems with the install failing at the end under Leopard.. It should certainly be doable but might require a little more effort.


First boot

You should have ended up with a stock, never booted system on your target drive.
Now to make it bootable..
The reason we're doing this 2-phase boot is because Chameleon 2.0 RC1 cannot yet make the .mkext archive for Snow Leopard on its own, so we need to boot with something else the first time.

NOTE: Here is my Extensions.mkext that works for me.. If this works for you, then you can skip this first boot step entirely and go right to chameleon, but if you need other kexts besides the 4 I'm using here then you'll have to make it yourself.
Extensions.mkext

NOTE: You can actually make the mkext in Leopard but just make sure you're specifying the proper directories like /Volumes/Snow Leopard/System/Library/Extensions not /System/Library/Extensions

1. Install PC EFI v9 on the target disk.
2. Replace the boot file in the root of the target volume with the snow boot file I linked to above.
3. Copy the 4 kexts I linked above into /System/Library/Extensions on the target volume (make sure you're not doing this to your working system.. /Volumes/Whatever/System/Library/Extensions)
4. Copy the DSDT.aml you created to the root of the new volume
5. Edit the UUID in the PlatformUUID.kext's Info.plist. Make it the same as the UUID in the smbios.plist file (which we aren't using yet), but will when we get chameleon installed. You can just generate a new UUID or use the one I generated in the smbios.plist. Google around if you don't know how to generate one.
6. Edit your /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and add your EFI string. For me it looked like this:
CODE
<?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>device-properties</key>
    <string>b20200000100000001000000a60200001000000002010c00d041030a01000000010106000001
0101060000007fff04000e0000004e00560050004d00000020000000010000000000000000000000
0
000000000000000000000000000000024000000400030002c00630061006e002d0068006f0074002
d
0070006c0075006700000004000000220000004100410050004c002c0067007200610079002d0070
0
0610067006500000008000000010000001c0000006400650076006900630065005f0074007900700
0
650000000f0000004e5644412c506172656e740e0000006e0061006d00650000000b000000646973
7
06c617922000000400030002c006400650076006900630065005f00740079007000650000000b000
0
00646973706c6179100000006d006f00640065006c000000130000004765466f7263652037393530
2
0475422000000400031002c006400650076006900630065005f00740079007000650000000b00000
0
646973706c617920000000400031002c0063006f006d00700061007400690062006c00650000000e
0
000004e5644412c4e564d616314000000400030002c006e0061006d0065000000120000004e56444
1
2c446973706c61792d4114000000400031002c006e0061006d0065000000120000004e5644412c44
6
973706c61792d421200000049004f004e0061006d00650000000b000000646973706c61792000000
0
400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d
6
16324000000400031002c00630061006e002d0068006f0074002d0070006c0075006700000004000
0
00100000004e00560043004100500000001800000004000000000003000c00000000000007000000
0
01e00000072006f006d002d007200650076006900730069006f006e0000000e0000004746582d535
4
52494e47</string>
</dict>
</plist>





Unmount the volume and boot it up on your real system. Use -v in the bootloader so you can see the messages as it boots. Add -x64 to boot the 64 bit kernel instead of the 32 bit. This only applies to the first bootloader, not to Chameleon, which we will install after. At this point you should be seeing the Welcome video if your graphics string is right. You might even hear sound if your HDEF device is working. The only thing wrong with your system at this point is that your smbios will be messed up. When you go through the registration process your system will have a weird name, whatever it gets from smbios, instead of 'MacBook' or 'Mac Pro' or whatever. We will fix this later.

Go through the registration to create your user account, etc.

UPDATE: As an alternative to registering with the PC EFI v9 boot (with no smbios stuff) you can just boot single user mode and instead of keeping your Extensions.mkext in /Extra you can just go ahead and put it where it really belongs. This simplifies things a great deal and this is what I recommend now. If you do this you can just move on to installing Chameleon after you do the kextcache thing in single user mode, as it will then be able to boot with Chameleon. As an alternative, skip the EFI v9 thing and use EFI v10. It's the concepts that are important here not the exact steps, remember that!

Boot in single user mode by using the boot parameter -s

Use the following commands:
CODE
mount -uw /
kextcache -v 1 -t -l -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions /Extra/AdditionalExtensions # remove /Extra/AdditionalExtensions if you don't keep any under there


Permanent boot

Now, we want to install Chameleon. The only catch is that Chameleon 2.0 RC1 needs you to create an Extensions.mkext for it (the -f thing doesn't work yet with it for snow leopard). So, install the Chameleon package. If you choose the Chameleon EFI it will read the com.apple.Boot.plist from your hidden EFI partition instead of from the normal partition. If you don't know how to do this then just use the regular one. Don't install the extra kexts, but you can install the themes.

1. Now, remove anything it put in /Extra/Extensions. Just remove the whole directory.
2. Create /Extra/AdditionalExtensions (or whatever you want to call it, just not Extensions, because chameleon can't yet process them into a mkext on its own)
CODE
sudo mkdir /Extra/AdditionalExtensions


3. Move the 4 kexts you installed in /System/Library/Extensions to your /Extra/AdditionalExtesions directory
CODE
sudo mv /System/Library/Extensions/dsmos.kext /Extra/AdditionalExtensions/
sudo mv /System/Library/Extensions/NullCPUPowerManagement.kext /Extra/AdditionalExtensions/
sudo mv /System/Library/Extensions/PlatformUUID.kext /Extra/AdditionalExtensions/
sudo mv /System/Library/Extensions/OpenHaltRestart.kext /Extra/AdditionalExtensions/


4. Make sure your filesystem root is owned by the root user
CODE
sudo chown 0:0 /


5. Remove the caches if they exist
CODE
sudo rm -fr /System/Library/Caches


6. Create the Extensions.mkext for Chameleon
CODE
sudo kextcache -v 1 -t -l -m /Extra/Extensions.mkext /Extra/AdditionalExtensions /System/Library/Extensions


Here is a script you can keep in /Extra to help you with this later.. just rename it to .sh (take off the .txt) and chmod 755 it:
make-mkext.sh
7. Put your smbios.plist into /Extra
8. You can also move the DSDT.aml into /Extra (Chameleon will read it from either place)
9. Copy your /Library/Preferences/SystemConfiguration/com.apple.Boot.plist to /Extra (edit if needed too, you can add Timeout, etc)
CODE
sudo cp /Library/Preferences/SystemConfiguration/com.apple.Boot.plist /Extra/



Hopefully it'll work! At this point you should be able to have a perfect system.

When booting with chameleon you can select which kernel to boot by using the parameter arch=i386 for 32 bit or arch=x86_64 for 64 bit. It will boot the 64 bit kernel by default if your system is capable. Don't use -f.

To fix your machine's name, go to System Preferences -> Sharing and change it to Soandso's Mac Pro or whatever

Turn off the sleep in Energy saver settings as it causes problems for a lot of people (it might not wake up).

-solar
Reason for edit: Guide is outdated.
---=== I don't provide support over PM ===---
Hack: Intel Core i7 920 @ 3.6Ghz, 6GB ram, 1TB HD, Geforce GTX460, 10.6.6
markus
post Aug 16 2009, 12:21 PM
Post #2
Hello
works this guide on Motherboards where it is not possible to use Chameleon?
my Bad Axe 2 Mobo is whisout support Chameleon
MoBo-->Asus Rampage II Gene
Cpu-->Intel i7 @920 @3.2 GHz
Ram-->Corsair Dominator 1600 MHz 3x 2 GB
GrKa--> NVIDIA GeForce 8800 GT EFI-->(CI,QE,dual screen)
System-->Leo 10.5.7 ->Audio, Eth, Sleep works
Special-->Watercooling
Mobil
EeePC 1008HA black-->10.5.7 Vanilla
Works-->GMA950 QE/CI, CPU frequenz throttle, Sound in/out, bluetooth, webcam, Sleep
Paranoid
post Aug 16 2009, 02:24 PM
Post #3
I will like to know where it says a Bad Axe 2 cant use chameleon.

I can find plenty of Bad Axe 2 mobos using Chameleon... So link to what you say to backup your clam
---=== I don't provide support over PM ===---
Hack: Intel Core i7 920 @ 3.6Ghz, 6GB ram, 1TB HD, Geforce GTX460, 10.6.6
markus
post Aug 16 2009, 04:40 PM
Post #4
Hello
at this time my Bad Axe 2 snowleopard boot good whis chameleon rc 2 and audio, grafik works

This post has been edited by markus: Aug 16 2009, 04:41 PM
MoBo-->Asus Rampage II Gene
Cpu-->Intel i7 @920 @3.2 GHz
Ram-->Corsair Dominator 1600 MHz 3x 2 GB
GrKa--> NVIDIA GeForce 8800 GT EFI-->(CI,QE,dual screen)
System-->Leo 10.5.7 ->Audio, Eth, Sleep works
Special-->Watercooling
Mobil
EeePC 1008HA black-->10.5.7 Vanilla
Works-->GMA950 QE/CI, CPU frequenz throttle, Sound in/out, bluetooth, webcam, Sleep
LetterX
post Aug 23 2009, 12:48 PM
Post #5
I would like to try this method.
Any pre-installation suggestion for Asus P5N32-E nForce 680i SLI?
Paranoid
post Aug 23 2009, 05:39 PM
Post #6
QUOTE (LetterX @ Aug 23 2009, 12:48 PM) *
I would like to try this method.
Any pre-installation suggestion for Asus P5N32-E nForce 680i SLI?


Yes dont.. your mobo has no snow support.
---=== I don't provide support over PM ===---
Hack: Intel Core i7 920 @ 3.6Ghz, 6GB ram, 1TB HD, Geforce GTX460, 10.6.6
LetterX
post Aug 24 2009, 11:43 AM
Post #7
I thought so.
I have try on leopard, as far I can get is cpus=1.
MACinized
post Aug 31 2009, 04:21 AM
Post #8
is it still not yet possible to have the snow leo install "untouched" i.e. extra kexts need not be installed in it - where a bootloader (e.g. chameleon) in a small separate partition or external disk/flashdisk do all the job?

been trying, & though i've set boot-uuid=[UUID of volume where snow leo is installed] in the boot.plist of my bootloader (i.e. named SnowLeoBooter), my computer only boots my SnowLeoBooter.

any advice?
Snow Leopard Server 10.6.1 in Mirrored RAID Set

mobo Gigabye GA-EP31-DS3L processor Intel Core 2 Quad Q8400 memory 4 GB DDR2-800 Dual Channel graphics nVidia GeForce 9400GT (1024 MB) hdd 2x80GB + 1TB SATA audio Reatek ALC888 LAN controller RTL 8111B (Realtek Gigabit) bluetooth tiny usb dongle
__________________
Boot-132 DiscMaker
18seven
post Sep 6 2009, 02:19 AM
Post #9
QUOTE (MACinized @ Aug 31 2009, 12:21 AM) *
is it still not yet possible to have the snow leo install "untouched" i.e. extra kexts need not be installed in it - where a bootloader (e.g. chameleon) in a small separate partition or external disk/flashdisk do all the job?

been trying, & though i've set boot-uuid=[UUID of volume where snow leo is installed] in the boot.plist of my bootloader (i.e. named SnowLeoBooter), my computer only boots my SnowLeoBooter.

any advice?


Whats the question? If you want your dependencies satisfied with a partition boot you need to kextcache both the ee and sle. If you set uuid in the plist it will boot that uuid.
snifferpro
post Sep 8 2009, 08:33 PM
Post #10
Can this guide be used to install the retail Snow Leopard?

Can I format my destination harddrive and then run Chameleon before installing
snow, or do I have to install Snow first?

What is the dsmos?

Thanks
ASUS P5Q3 Deluxe Wifi@N, Intel E8500 CPU, Gskill DDR3 ram 8gb, EVGA Geforce 9800GT 512mb,
Marvel Ethernet, Ralink Wireless, Logitech Speakerphone, 2 500gb SATA 2 hard drives,
1 SATA DVD drive.
realityiswhere
post Sep 8 2009, 10:52 PM
Post #11
QUOTE (snifferpro @ Sep 8 2009, 05:33 PM) *
Can this guide be used to install the retail Snow Leopard?

Can I format my destination harddrive and then run Chameleon before installing
snow, or do I have to install Snow first?

What is the dsmos?

Thanks


You can format your destination hard drive before installing Snow yes, but you must install Snow before installing chameleon.

For a detailed explanation of dsmos, click here, suffice it to say it decrypts encrypted binaries of OS X (which yes, are really encrypted on real Macs, they're decrypted by the SMC, System Management Controller on real Macs).

A better version of it for Snow is fakesmc.kext from netkas, which is improved for Snow Leopard support.

Hope this helps some smile.gif
Debian Squeeze: HPM8120N - Q6600, 965 northbridge/ICH8-R south, 9500GT (1GB)
Snow Leopard 10.6.6: Alu Macbook: Core 2 Duo 2.0GHz, 2GB Ram, nVidia 9400M.
Android: Samsung Galaxy S Vibrant (GT-i9000m, Froyo) and Samsung Galaxy Tab (Froyo)
Having trouble posting? Have you taken the Quiz yet? --------------------------- If you see spam, report it!
Benediktus Anind...
post Sep 9 2009, 05:28 AM
Post #12
QUOTE (markus @ Aug 16 2009, 07:21 PM) *
Hello
works this guide on Motherboards where it is not possible to use Chameleon?
my Bad Axe 2 Mobo is whisout support Chameleon

chameleon v2.0-rc3 is out. check at here
Mamun
post Dec 25 2009, 03:56 AM
Post #13
Hi there,
I got a machine with Intel MOBO Pentium DuelCore 2.6GHz processor. everything built in, tried Leopard 10.5 (ToH) and it is working, now want to try SL but installation CD boot stuck at -
with,
cpus=1 boot flug
MAC frame initialized
................
.................
ACPI system state (S3)
BSM auditing present
"waiting for root device with uuid....
"waiting in uuid..."

any solution will be highly appreciated!
thanks in advance
________________________________________________________________________________
____________________
CPU: Pentium DuelCore 2.6GHz
M/B: Intel DG43NB
AGP: Intel x4500
Ram: 2 GB 800MHz
HDD: 320GB WD SATA
DVD: HP1040d Multi (IDE)

This post has been edited by Mamun: Dec 25 2009, 04:00 AM
Mamun
post Jan 5 2010, 07:20 AM
Post #14
QUOTE (Mamun @ Dec 25 2009, 04:56 AM) *
Hi there,
I got a machine with Intel MOBO Pentium DuelCore 2.6GHz processor. everything built in, tried Leopard 10.5 (ToH) and it is working, now want to try SL but installation CD boot stuck at -
with,
cpus=1 boot flug
MAC frame initialized
................
.................
ACPI system state (S3)
BSM auditing present
"waiting for root device with uuid....
"waiting in uuid..."

any solution will be highly appreciated!
thanks in advance
________________________________________________________________________________
____________________
CPU: Pentium DuelCore 2.6GHz
M/B: Intel DG43NB
AGP: Intel x4500
Ram: 2 GB 800MHz
HDD: 320GB WD SATA
DVD: HP1040d Multi (IDE)


wahooo....!!
SL working as a Genuine MacPro 3.1 without any hassle and everything working 100%
Willpower101
post May 13 2010, 06:56 AM
Post #15
QUOTE (Paranoid @ Aug 15 2009, 03:46 PM) *
THIS GUIDE IS OUTDATED.
It is still ok but there are more easy ways to do it.


Ok... i'm listening...


As in, where?
MartinX
post Jun 4 2010, 12:06 PM
Post #16
QUOTE (Mamun @ Jan 5 2010, 09:20 AM) *
wahooo....!!
SL working as a Genuine MacPro 3.1 without any hassle and everything working 100%


What did you do to fix the problem? blink.gif

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