Asus P5W-DH Deluxe, 10.6 100% Retail

Gleich vorweg, worum es hier nicht geht:
  • Antworten auf Fragen nach dem 'geht das hier auch mit meinem System!?'
  • Einsteigerfreundlichkeit
  • on-Board RAID des P5W's
  • den JMicron-Controller des P5W's
  • PS2 - habe solch dolles Equipment nicht mehr
  • Dual-Boot (Festplatten kosten kein großes Geld mehr, von daher: was soll das Drama?!)

Das System hier:
  • Asus P5W-DH Deluxe (LGA775, Intel 975x, ICH7R, ALC882M HDA, 2 x Marvell 88E8053, 2 x 1394a, RealTek 8187 802.11g)
  • Bios Rev. 2801
  • Intel Q6600 @ 3GHz per Core
  • 4GB DDR2
  • Gigabyte GTS250 1GB (0x0615, 10de; meine alte 1950XT mußte weichen, weil lief unter 10.6 einfach nicht ordentlich)
  • Linksys WMP54GS (Airport-kompatibel)
  • 2 x SATA WD-Raptor 160GB (1 x Windows / Linux per Grub; 1 x OSX für Chameleon/DFE für 10.5 und 10.6)
  • LG und Pioneer SATA-DVDR

BIOS: CPU-Einstellungen
FunktionEinstellung
Modify Ratio SupportDeaktiviert
Microcode UpdateAktiviert
Max CPUID Value LimitAktiviert
Execute Disable FunctionAktiviert
Enhanced C1 ControlDeaktiviert
CPU Internal Thermal ControlAuto
Intel SpeedStepAktiviert

BIOS: Win627 Super IO Chipset
FunktionEinstellung
HD Audio ControllerAktiviert
HD Audio ModeNon-Vista
Front Panel Support TypeHD Audio
Onboard 1394 ControllerAktiviert
2 x GbE LANAktiviert
JMicron SATA/PATA ControllerDeaktiviert

BIOS: IDE-Konfiguration
FunktionEinstellung
Configure SATA AsAHCI
ALPE and ASPDeaktiviert


Einleitung:

10.6 lässt sich inzwischen auf zwei verschiedene Arten installieren: per pre-boot-CD (Boot-132) oder aus einem existierendem 10.5 heraus. Die Installation per 10.5 birgt jedoch ein paar wenige unschöne Nebeneffekte (Dateiberechtigungen lassen sich nicht per Festplattendienstprogramm mehr reparieren, da das Package-Receipt, in der die hierfür benötigten Informationen 'aufgezeichnet wurden', dann auf dem 10.5er System gespeichert sind), aber fürs Erste lässt sich trotz allem prima damit leben.

Internet Downloads
Aktuell ist die RC2-r640, aber es wird mehrfach dazu geraten, den RC1-r41 zu verwenden. Im Zweifel: selber ausprobieren.
Alternativer Bootloader von Netkas; basiert auf Chameleon
derzeit nur 32-bit

Howto Dateianhang
  • /Extra-Kernel-Extensions für 10.6 inklusive fertigem Extensions-Cache
fakesmc.kext (emuliert den SMC), openhaltrestart.kext (korrigiert Probleme mit dem Herunterfahren und Neustarten), sleepenabler.kext (sorgt für einen funktionierenden S3), platformuuid.kext (behebt den 'UUID 35' Fehler; kann auch über Chameleon und einen Boot-Parameter direkt injiziert werden)
  • dsdt.aml
Sofern bei Euch vorhanden, kann die 10.5er benutzt werden. 10.6 verlangt aber in jedem Fall eine, sonst gibt es beim Systemstart einen Kernel Panic!
  • com.apple.Boot.plist
inklusive USB-Korrekturen für Chameleon, '-x32' und einem Timeout von 5 Sekunden

Hinweise, NVidia GTS250 1GB (0x061510de)
Für die GTS250 habe ich ingesamt drei verschiedene Wege gefunden, diese zur Mitarbeit zu überreden.
  1. NVEnabler

  2. EFI-GFX-String, DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)

    CODE
    d20300000100000001000000c60300001500000002010c00d041030a000000000101060000010101
    060000007fff04003a000000400032002c0068007700730065006e0073006f0072002d00700061007
    20061006d0073002d00760065007200730069006f006e000000080000000000000222000000400032
    002c006400650076006900630065005f0074007900700065000000120000004e5644412c6770752d6
    4696f64650e0000004e00560050004d00000020000000010000000000000000000000000000000000
    000000000000000000001e00000072006f006d002d007200650076006900730069006f006e0000000
    90000003331373261100000004e00560043004100500000001800000004000000000003000c000000
    000000070000000022000000400032002c002300730069007a0065002d00630065006c006c0073000
    000080000000000000022000000400030002c006400650076006900630065005f0074007900700065
    0000000b000000646973706c6179100000006d006f00640065006c0000001f0000004e56494449412
    04765466f7263652039383030204754582044444c14000000400030002c006e0061006d0065000000
    120000004e5644412c446973706c61792d4120000000400032002c0063006f006d007000610074006
    90062006c0065000000160000004e5644412c73656e736f722d706172656e7414000000400031002c
    006e0061006d0065000000120000004e5644412c446973706c61792d4212000000400032002c00720
    065006700000008000000000000021c0000006400650076006900630065005f007400790070006500
    0000100000004e5644412c4765466f72636520000000400031002c0063006f006d007000610074006
    90062006c00650000000e0000004e5644412c4e564d616326000000400032002c0023006100640072
    006500730073002d00630065006c006c007300000008000000000000010e0000006e0061006d00650
    000000f0000004e5644412c506172656e7422000000400031002c006400650076006900630065005f
    00740079007000650000000b000000646973706c617920000000400030002c0063006f006d0070006
    1007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c
    0074006f00740061006c00730069007a0065000000080000000000002036000000400032002c00680
    077006300740072006c002d0070006100720061006d0073002d00760065007200730069006f006e00
    0000080000000000000214000000400032002c006e0061006d00650000001100000073656e736f722
    d706172656e74

  3. DSDT-Patch (bei mir in Verwendung)

    CODE
        Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    }))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                0x03
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                    0x00
                }, Arg4)
            Return (Zero)
        }


    CODE
                Device (P0P1)
                {
                    Name (_ADR, 0x00010000)
                    Device (GFX)
                    {
                        Name (_ADR, Zero)
                        Name (_SUN, One)
                        Method (_DSM, 4, NotSerialized)
                        {
                            Store (Package (0x16)
                                {
                                    "@0,compatible",
                                    Buffer (0x0B)
                                    {
                                        "NVDA,NVMac"
                                    },

                                    "@0,device_type",
                                    Buffer (0x08)
                                    {
                                        "display"
                                    },

                                    "@0,name",
                                    Buffer (0x0F)
                                    {
                                        "NVDA,Display-A"
                                    },

                                    "@1,compatible",
                                    Buffer (0x0B)
                                    {
                                        "NVDA,NVMac"
                                    },

                                    "@1,device_type",
                                    Buffer (0x08)
                                    {
                                        "display"
                                    },

                                    "@1,name",
                                    Buffer (0x0F)
                                    {
                                        "NVDA,Display-B"
                                    },

                                    "NVCAP",
                                    Buffer (0x18)
                                    {
                                        /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
                                        /* 0008 */    0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
                                        /* 0010 */    0x00, 0x00, 0x00, 0x00
                                    },

                                    "VRAM,totalsize",
                                    Buffer (0x04)
                                    {
                                        0x00, 0x00, 0x00, 0x40
                                    },

                                    "device_type",
                                    Buffer (0x0C)
                                    {
                                        "NVDA,Parent"
                                    },

                                    "model",
                                    Buffer ()
                                    {
                                        "NVIDIA GeForce GTS 250"
                                    },

                                    "rom-revision",
                                    Buffer (0x06)
                                    {
                                        "3386a"
                                    }
                                }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                            Return (Local0)
                        }
                    }
                    Method (_PRW, 0, NotSerialized)
                    {
                        Return (GPRW (0x09, 0x04))
                    }
                }


Hinweise, Audio ALC882M HDA
Die von mir benutze VoodooHDA ist derzeit nur in 32-Bit erhältlich. Alternativen für die 64-bittler unter Euch finden sich aber inzwischen. Falls Ihr dennoch die VoodooHDA benutzen wollt, die 'sollte' der Einfachheit halber gen '/System/Library/Extensions'. Grundsätzlich würde die auch per /Extra funktionieren, doch dann müssen die Abhängigkeiten aufgelöst werden und einige Erweiterungen aus dem Systemverzeichnis nach /Extra/Extensions bewegt werden. Das sparte ich mir. Man muß bei Updates dann daran denken, die VoodooHDA.kext neu zu installieren.

Die Installation (draft!)

*) vorhandene Installation (10.5.6) gelöscht, Platte neu partitioniert (3 x HFS+; 1 x 100GB für 10.6, 1 x 20GB für 10.5, 1 x 10GB für das OSX Installationsmedium)
*) per diesem Weg 10.5 auf der 20GB Partition wieder installiert; wer weiß, wozu ich es nochmal brauche.
*) von dem 10.6 Installationsmedium per Disk-Utility ein (DMG-)Image erzeugt und anschließend auf der Installations-Partition wiederhergestellt
*) die Installations-Partition im Finder geöffnet, 'Shift-Apfel-G' drücken -> Pfad: System/Installation/Packages -> Enter
*) 'OSInstall.mpkg' ausführen, Paketauswahl anpassen und installieren
*) Chameleon 2.0 RC1 installiert (bin-Paket; nicht den Installer benutzen!); PC_EFI 10.2 (netkas /boot) genutzt. Erst boot0, dann das boot1h in die jeweiligen Partitionen schreiben - siehe Chameleon-Readme, dort ist genau erklärt wie es geht)
*) /Extra und /Extra/Extensions auf der Snow-Partition erstellt
*) 'dsdt.aml' -> /Extra der Snow-Partition kopiert
*) com.apple.Boot.plist -> /Extra und angepasst (Chameleon USB-Korrekturen, -x32, Timeout)
*) Disabler.kext, FakeSMC.kext, OpenHaltRestart.kext, PlatformUIID.kext (in dieser die Info.plist anpassen; UUID der Partition, siehe Disk-Util, hier austauschen!), SleepEnabler.kext -> /Extra/Extensions (aber Achtung: Cache muß per Snow erzeugt werden; nicht aus Leo heraus!)
*) optional: smbios.plist -> /Extra und anpassen (wers braucht...)

*) Snow mit -s einmal booten; mount -uw /; cd / && kextcache -v 1 -t -l -m /Extra/Extensions.mkext /Extra/Extensions && sync && reboot; alternativ: das /Extra-Verzeichnis des Dateianhangs gen / kopieren.
*) Snow booten (in 32-bit; weil 'com.apple.Boot.plist' so angepasst und zum Testen erstmal nichts anderes nötig ist)
*) VoodooHDA.kext besorgt (32-Bit!) und installiert (auch hier gilt: Berechtigungen checken, mkext löschen oder für die faulen und unwissenden Menschen: halt das Kext-Utility benutzen; ebenfalls im Dateianhang zu finden)

TODO: hier und da noch etwas weiter ausholen, clean-up, ...

Click to view attachment