Installation MacOS X 10.6 auf ThinkPad X60s

mac4tp

Active member
Themenstarter
Registriert
2 Feb. 2009
Beiträge
559
Nach vielen Jahren zufriedener IBM-OS/2- bzw. eComStation-Nutzung auf IBM/Lenovo ThinkPads, kommt das System leider mittlerweile an seine Grenzen, vor allem in Verbindung mit moderner Software (Firefox 3.6/4.0b, Thunderbird 3.1, OpenOffice 3.2.0, VirtualBox usw.) und auf halbwegs moderner Hardware.

Da Windows noch nie eine moegliche Option war, mich bei Linux der monolitische Kernel, die inkonsistente Bedienung und die Zersplitterung der Distributionen und Desktops nervt (BSD ist in vielen Punkten auch nicht wirklich besser), OpenSolaris schon wieder "tot" ist und ich viel und gerne auf der Kommandozeile in einem GNU-Userland arbeite, blieb als Alternative zu OS/2 leider nur noch Mac OS X uebrig.

Leider deshalb, weil Mac OS nicht mehr als das geringste aller Uebel ist und mich dort vor allem massiv die "alles ueber iGedoens"-Politik und die Kopplung an Apple-Hardware stoert. Fuer mich sind insbesondere die Apple-Notebooks mit ihrer verkrueppelten Designer-Tastatur, spiegelden Breitbild-Displays und dem Fehlen eines TrackPoints unbrauchbar, daher beschaeftige ich mich schon einige Zeit damit, Mac OS X (10.5 und 10.6) auf IBM/Lenovo ThinkPads der X60- und T60-Serien zum Laufen zu bekommen.

Dies ist eine Beschreibung meiner Bemuehungen auf einem ThinkPad X60s Mac OS X 10.6 - Snow Leopard - zu installieren und vernuenftig zu nutzen. Diese Anleitung funktioniert auch fuer vergleichbare Modelle, wesentliche Unterschiede gibt es vor allem bei der Unterstuetzung der Grafikkarte. So funktioniert ein ThinkPad T60 mit ATI X1300 recht gut, waehrend ich die Grafikkarte eines ThinkPad T60 p (ATI FireGL) nicht vernuenftig zum Laufen bekomme.

Diese Anleitung funktioniert bei meinem System, natuerlich gibt es von niemandem eine Gewaehr oder Garantie das dies auch wo anders so funktioniert und fuer Hardwareschaeden und sonstige Probleme ist jeder ausnahmslos selbst verantwortlich.

Basis-Installation:

- MacOS X 10.6 auf externer USB-Platte installieren, dazu benoetigt man ein laufendes MacOS X 10.6-System von dem aus die Installation gestartet wird.

- myHack_Installer_1.1.mpkg auf dieser Platte installieren, um die EFI-BIOS-Kompatibilitaet auf dem X60s einzurichten, einen Boot-Manager und diverse Kernel-Extionsions (kext) zu installieren:

Code:
  (x) Core
  (x) com.apple.Boot.plist
  (x) GraphicsEnabler
  ( ) Chocolate Kernel
  (X) ApplePS2Controller
  (X) EvOreboot.kext
  (X) FakeSMC.kext
  (X) IOATAFamily.kext
  (X) IONetworkingFamily.kext
  (X) ElliottForceLegacyRTC.kext
  (X) NullCPUPowerManagement.kext
  (X) SleepEnabler.kext

Startet man diese Installation nun auf dem X60s (mit Intel-Grafik), erhaelt man kein Bild auf dem internen TFT (man muss einen externen Monitor anschliessen), ausserdem funktionieren Audio und eine Reihe anderer Sachen noch nicht.

Folgende kext's sollte man daher vor dem Neustart und dem Umbau der Platte in den X60s manuell nach /Volumes/MaxOS.../System/ kopieren, dann kext-Rechte setzen und kext-Cache aufraeumen:

- Grafik konfigurieren:
Die originale "AppleIntelIntegratedFramebuffer.kext" deaktivieren:
# mv "/Volumes/MacOS.../System/Library/Extensions/AppleIntelIntegratedFramebuffer.kext" "/Volumes/MacOS.../System/Library/Extensions/AppleIntelIntegratedFramebuffer.kext.noload"
Die im AppleIntelIntegratedFramebuffer.kext.zip-Paket (68259 Bytes) enthaltene kext vom 05.09.2010, 21:30, v1.4.20 ins kext-Verzeichnis kopieren, danach sollte das interne Laptop-Dsplay korrekt angesteuert werden (das funktioniert auch nach dem Screen-Mod mit 1400x1050):
# cp -R AppleIntelIntegratedFramebuffer.kext "/Volumes/MacOS.../System/Library/Extensions/"

Alternativ und ohne Einspielen einer alten Version der "AppleIntelIntegratedFramebuffer.kext", kann man fuer das ThinkkPad X60s mit Intel GMA950 auch einen Eintrag in der ".../Extra/com.apple.Boot.plist" erstellen:
Code:
# vi "/Volumes/MacOS.../Extra/com.apple.Boot.plist"
  -> ...
     <dict>
        ...
        <key>device-properties</key>
        <string>6d0000000100000001000000610000000200000002010c00d041030a000000000101060000027fff0400100000006d006f00640065006c0000000b000000474d4120393530200000004100410050004c002c00480061007300500061006e0065006c0000000800000001000000</string>
Der Verzicht auf die alte "AppleIntelIntegratedFramebuffer.kext" hat bei meinem X60s allerdings den Nachteil, das das Aufwachen nach dem Ruhezustand nicht mehr richtig geht, der Bildschirm bleibt dunkel und auch am VGA-Ausgang gibt es kein Bild. Solange es geht, werde ich also auf die alte kext zurueckgreifen.

- Audio konfigurieren:
Die originale "AppleHDA.kext" deaktivieren:
# mv "/Volumes/MacOS.../System/Library/Extensions/AppleHDA.kext" "/Volumes/MacOS.../System/Library/Extensions/AppleHDA.kext.noload"
Die VoodooHDA.kext (14.04.2009, 23:11) aus dem Paket VoodooHDA-0.2.2.tar.bz2 (88520 Bytes) installieren.

- kext-Rechte korrigieren und kext-Cache aufraeumen:
Code:
  # chown -R root:wheel "/Volumes/MacOS.../System/Library/Extensions/"
  # chmod -R 755 "/Volumes/MacOS.../System/Library/Extensions/"
  # kextcache -v 1 -t -m "/Volumes/MacOS.../System/Library/Caches/com.apple.kext.caches/Startup Extensions.mkext" "/Volumes/MacOS.../System/Library/Extensions/"

Jetzt kann die externe USB-Platte am X60s angeschlossen und davon gebootet werden, moechte man MacOS X dauerhaft auf dem X60s nutzen, baut man die SATA-Platte aus dem USB-Gehaeuse im ThinkPad ein. Im BIOS sollte man den SATA-Mode auf AHCI setzen.


Weiter siehe Teil 2.
 
@thg: Cooler Tip! Auf meinem X60 klappt das auch nicht richtig!
Und ich habe keinen Bock wegen so einem Blödsinn OSX neu aufzuspielen.
Bei tcone klappt das so OOB!

Schon gesehen? :D



Edit: Das klappt wie verrückt! Klasse, noch ein Problemchen weniger! :thumbup: Flash Player Link

Klaus
 
tcone' schrieb:
Man muss die PCI-ID in die
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/Info.plist (32Bit)
bzw.
/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/Info.plist (64 Bit) eintragen.

Mit der Firmware hat das nichts zu tun!
gibt es hier von irgend jemandem neue "Erkenntnisse"?

Denn bei mir hat war diese Vendor-/Device-ID natürlich bereits drin und weil beide Karten eigentlich die gleichen sind, haben beide Karten die gleichen IDs.

Vielen Dank,
 
Hat du mal die Bootcaches aktualisiert und die Datei als Superuser wg. der Rechte geändert?
Wenn das immer noch nicht geht, dann poste mal die Ausgabe von

Code:
kextstat | grep -i ath
um nachzuschauen, ob der Treiber geladen wurde und
Code:
ioreg -w0 -c IOPCIDevice | grep -C20 -m1 'vendor-id[^<]*<8c160000>'
um zu gucken welche Karte gefunden wurde.

Das sollte sowas wie das hier ausgeben:
Code:
ibms-mac-pro-3:~ ibm$ kextstat | grep -i ath
   88    0 0x48655000 0xcc000    0xcb000    com.apple.driver.AirPort.Atheros21 (424.14.5) <87 81 14 7 5 4 3 1>
ibms-mac-pro-3:~ ibm$ ioreg -w0 -c IOPCIDevice | grep -C20 -m1 'vendor-id[^<]*<8c160000>'
    | |   | |   "IODTPersist" = <a271bd41a280bd41>
    | |   | |   "IOPCIConfigured" = Yes
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EXP1@1c0001"
    | |   | |   "revision-id" = <02000000>
    | |   | |   "IOPCIExpressLinkStatus" = 12305
    | |   | |   "IOName" = "pci-bridge"
    | |   | |   "#size-cells" = <02000000>
    | |   | |   "reg" = <00e1000000000000000000000000000000000000>
    | |   | | }
    | |   | | 
    | |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001b9, registered, matched, active, busy 0 (2143 ms), retain 7>
    | |   |   +-o pci168c,2a@0  <class IOPCIDevice, id 0x10000019a, registered, matched, active, busy 0 (2143 ms), retain 11>
    | |   |     | {
    | |   |     |   "assigned-addresses" = <10000382000000000000f0ed0000000000000100>
    | |   |     |   "IOInterruptSpecifiers" = (<1100000007000000>,<0400000000000100>)
    | |   |     |   "class-code" = <00800200>
    | |   |     |   "IODeviceMemory" = (({"address"=18446744073406513152,"length"=65536}))
    | |   |     |   "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
    | |   |     |   "subsystem-vendor-id" = <6b100000>
    | |   |     |   "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")
    | |   |     |   "vendor-id" = <8c160000>
    | |   |     |   "IOChildIndex" = 1
    | |   |     |   "acpi-pmcap-offset" = 64
    | |   |     |   "device-id" = <2a000000>
    | |   |     |   "IOPCIResourced" = Yes
    | |   |     |   "IOPCIExpressASPMDefault" = 2
    | |   |     |   "compatible" = <"pci106b,8f","pci168c,2a","pciclass,028000">
    | |   |     |   "name" = "pci168c,2a"
    | |   |     |   "IOPCIExpressLinkCapabilities" = 210961
    | |   |     |   "subsystem-id" = <8f000000>
    | |   |     |   "revision-id" = <01000000>
    | |   |     |   "IOPCIExpressLinkStatus" = 4113
    | |   |     |   "IOName" = "pci168c,2a"
    | |   |     |   "acpi-wake-type" = 2
    | |   |     |   "reg" = <00000300000000000000000000000000000000001000030200000000000000000000000000000100>
    | |   |     | }
    | |   |     | 
    | |   |     +-o AirPort_AthrFusion21  <class AirPort_AthrFusion21, id 0x100000294, registered, matched, active, busy 0 (54 ms), retain 7>
    | |   |       +-o AtherosFusion21Interface  <class AtherosFusion21Interface, id 0x1000002a9, registered, matched, active, busy 0 (50 ms), retain 10>
    | |   |         +-o IONetworkStack  <class IONetworkStack, id 0x1000002b2, registered, matched, active, busy 0 (5 ms), retain 9>
    | |   |           +-o IONetworkStackUserClient  <class IONetworkStackUserClient, id 0x1000002bc, !registered, !matched, active, busy 0, retain 5>
ibms-mac-pro-3:~ ibm$
 
Hallo allerseits,

ich habe mir jetzt nochmal einen T60 mit Intel-Grafik zugelegt, nachdem ich es nicht geschafft habe mein T60p mit ATI FireGL vernünftig unter Mac OS X zum Laufen zu bekommen. Was soll ich sagen: das Leben kann soooo einfach sein ...

Blos das mit der WLAN-Karte ist immer noch offen.

Wenn das immer noch nicht geht, dann poste mal die Ausgabe von

Die, die nun im T60 steckt, funktioniert nicht (auch nicht im X60s) während die im X60s "out-of-the-box" tut.

Lt. allen Infos die ich habe (u.a. lspci) sind die Karten identisch, keine Ahnung woran sich die Karten unterscheiden könnten, außer das ich eine etwa ein dreiviertel Jahr früher bei IBM gekauft habe als die andere.

Code:
TP T60:

$ kextstat | grep -i ath

$ ioreg -w0 -c IOPCIDevice | grep -C20 -m1 'vendor-id[^<]*<8c160000>'
  ->
    | |   | |   "IOPCIExpressLinkCapabilities" = 34679825
    | |   | |   "IODTPersist" = <a231d2418c4cd241>
    | |   | |   "IOPCIConfigured" = Yes
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EXP1@1c0001"
    | |   | |   "revision-id" = <02000000>
    | |   | |   "IOPCIExpressLinkStatus" = 12305
    | |   | |   "pcidebug" = "0:28:1(3:3)"
    | |   | |   "IOName" = "pci-bridge"
    | |   | |   "#size-cells" = <02000000>
    | |   | |   "reg" = <00e1000000000000000000000000000000000000>
    | |   | | }
    | |   | | 
    | |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001bb, registered, matched, active, busy 0 (3961 ms), retain 7>
    | |   |   +-o pci168c,24@0  <class IOPCIDevice, id 0x10000019a, registered, matched, active, busy 0 (3959 ms), retain 7>
    | |   |       {
    | |   |         "assigned-addresses" = <10000382000000000000f0ed0000000000000100>
    | |   |         "IOInterruptSpecifiers" = (<1100000007000000>,<0300000000000100>)
    | |   |         "class-code" = <00800200>
    | |   |         "IODeviceMemory" = (({"address"=3991928832,"length"=65536}))
    | |   |         "IOPowerManagement" = {"CurrentPowerState"=0}
    | |   |         "subsystem-vendor-id" = <8c160000>
    | |   |         "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")


TP X60s:

$ kextstat | grep -i ath
  -> 81    0 0x4876d000 0xcc000    0xcb000    com.apple.driver.AirPort.Atheros21 (424.14.5) <80 51 13 7 5 4 3 1>

$ ioreg -w0 -c IOPCIDevice | grep -C20 -m1 'vendor-id[^<]*<8c160000>'
  ->
    | |   | |   "IOPCIExpressLinkStatus" = 12305
    | |   | |   "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
    | |   | |   "class-code" = <00040600>
    | |   | |   "compatible" = <"pci8086,27d2","pciclass,060400">
    | |   | |   "IODTPersist" = <a2f1e341a200e441>
    | |   | |   "IOPCIExpressASPMDefault" = 2
    | |   | |   "#address-cells" = <03000000>
    | |   | |   "reg" = <00e1000000000000000000000000000000000000>
    | |   | |   "ranges" = <0000008200000000000000ec0000008200000000000000ec0000000000000002000000c200000000000000e4000000c200000000000000e400000000000010000000008100000000003000000000008100000000003000000000000000200000>
    | |   | | }
    | |   | | 
    | |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001df, registered, matched, active, busy 0 (1081 ms), retain 7>
    | |   |   +-o pci168c,24@0  <class IOPCIDevice, id 0x100000199, registered, matched, active, busy 0 (1080 ms), retain 11>
    | |   |     | {
    | |   |     |   "IODeviceMemory" = (({"address"=18446744073406513152,"length"=65536}))
    | |   |     |   "acpi-pmcap-offset" = 64
    | |   |     |   "device-id" = <24000000>
    | |   |     |   "IOChildIndex" = 1
    | |   |     |   "name" = "pci168c,24"
    | |   |     |   "IOName" = "pci168c,24"
    | |   |     |   "vendor-id" = <8c160000>
    | |   |     |   "revision-id" = <01000000>
    | |   |     |   "acpi-wake-type" = 2
    | |   |     |   "IOPCIResourced" = Yes


Ich habe außerdem noch mal zwei solche Atheros AR5BXB72 AR5008 Wireless PCI-E Karten in der US-Bucht bestellt, einmal mit FRU 42T0825 und einmal FRU 42T0827, mal sehen ob das einen Unterschied macht.

Allerdings kommen die Karten erst in ein paar Wochen und da ich den Rechner übernächste Woche mit auf eine Veranstaltung nehmen möchte, wäre es Klasse das WLAN ohne den Tausch der Karte aus dem X60s zum Laufen zu bekommen.


Ergänzende Information noch:

Code:
# uname -a
  -> Darwin tpt60 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386


# cat /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/Info.plist 
  -> ...
        <key>Atheros Wireless LAN PCI</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AirPort.Atheros</string>
            <key>IOClass</key>
            <string>AirPort_AthrFusion</string>
            <key>IOMatchCategory</key>
            <string>IODefaultMatchCategory</string>
            <key>IONameMatch</key>
            <array>
                <string>pci106b,0086</string>
                ...
                <string>pci168c,23</string>
                <string>pci168c,24</string>
                <string>pci168c,2a</string>
                ...
            </array>
            ...


# cat /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/Info.plist <?xml version="1.0" encoding="UTF-8"?>
  -> ...
        <key>Atheros Wireless LAN PCI</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AirPort.Atheros21</string>
            <key>IOClass</key>
            <string>AirPort_AthrFusion21</string>
            <key>IOMatchCategory</key>
            <string>IODefaultMatchCategory</string>
            <key>IONameMatch</key>
            <array>
                <string>pci168c,2a</string>
                <string>pci106b,0086</string>
                <string>pci168c,1c</string>
                <string>pci168c,23</string>
                <string>pci168c,24</string>
            </array>
            ...

Es läuft also ein 32-Bit-Kernel und die Device-ID steht in beiden plists standardmäßig drin.
 
Zuletzt bearbeitet:
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben