Take a look at our
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message

Installing OSX 10.6.3 on T60 with ATI X1400

OS-X on ThinkPads
Post Reply
Message
Author
rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Installing OSX 10.6.3 on T60 with ATI X1400

#1 Post by rs1n » Sun Feb 06, 2011 7:43 pm

Hi everyone,

I just thought I'd share what my results have been for installing OSX on my Thinkpad T60. This is mostly to keep track of my own fiddling and to help anyone else who has similar hardware.

My specs:
Thinkpad T60
CPU: Intel Core Duo T2500 2.0 GHz
GPU: ATI Radeon X1400 (128MB)
LCD: 1400x1050x32 native resolution

I am not listing the other specs as they are pretty standard for the T60.

Method of installation:
iBoot 2.6 with Multibeast

Notes: This method requires a valid retail OS X DVD -- downloading a valid dmg and burning to DVD will not work. Any DVD created from downloads will be readable from OS X (though not Windows, even if created via Windows via programs like Transmac), but it will NOT work with iBoot (they do not condone piracy; nor do I). The advantage of using iBoot is that you do NOT have to have a working Mac as other methods have suggested. All you need is your genuine copy of OS X 10.6.3. Having never used a Mac before, when you purchase OS X, it is the actual full-blown install CD, although many of the "geniuses" at the Apple store kept insisting that it is only for those wishing to upgrade from older versions of OS X. Unlike Windows installation discs, the OS X DVD will NOT boot up on its own (i.e putting it into the DVD drive does not run the installation process).

Many installation guides say to turn off just about everything in the BIOS, but what I have found is that you really just need to enable AHCI for the HDD. However, if all else fails, you should try to disable as many peripherals as possible and enable them after the installation. Do, however, detach any bootable hardware -- or you can alternatively just change the startup sequence to only look for your DVD drive followed by the internal HDD. You also do not need a USB mouse nor a USB keyboard.

1. Download and create an iBoot CD from the iso file. As of this writing, version 2.6 is the latest release. iBoot is essentially a boot CD that will boot your retail OSX DVD.

2. Download the OS X 10.6.6 update dmg file from apple's website. Download Multibeast (same place where you got iBoot). Place both of these files either onto a USB drive or burn to a DVD. (Make sure to unzip the Multibeast zip file; you only need the dmg file.)

3. Insert iBoot in the DVD drive and boot up to where you can see the iBoot menu. Remove the iBoot CD and insert your genuine OS X DVD. Press F5 and wait until you see the OS X installation option next to the iBoot option. Then type (look at the bottom of the screen to see what you type): GraphicsEnabler=No EthernetBuiltIn=Yes arch=i386 -v Then press ENTER to boot the DVD. Version 2.6 of iBoot tries to force certain ATI hardware which will not work for the ATI X1400. If you leave out this option, you will likely hear the DVD drive spin and see just a black screen. If you need have trouble booting the DVD, you can try to use the options -x (safe mode) and/or -v (verbose mode) to see what the problem may be. There may be a long pause (especially after seeing the message "Waiting for DSMOS..." -- just be patient. The intro movie will likely not play (because we have not set up our video at this point).

4. You should eventually see Mac OS X boot up (like a live CD/DVD) and will be given the option to install the OS. Go up to the Mac bar at the top and find the Disk Utility to format your HDD. Select your HDD and partition your drive (I went with a single partition on my 60GB HD). You want to choose the journald file system. Also click the options button and choose the first option relating to the type of partition table to use (GUID).

5. Once this is done, close out Disk Utility and click continue to start the install process. You will be asked to select the destination of the install -- select the HDD you formatted and click on customize. To speed up the install process, remove all optional packages -- you can install them later with the DVD.

6. After the files install, restart and boot with iBoot -- choose the same boot parameters as before.

7. Install any additional packages from the DVD, and install the update package to update to 10.6.6. This step can be skipped if you just want to get up and running. Do make sure to follow the next step, though, so that you can boot from the HDD. You should probably open up a terminal (click on the Applications folder in the dock, select Utilities, and select Terminal.) Type: sudo dmesg and you should see any relevant messages. If you see any messages about various kexts that could not be reloaded, and the progress bar on the additional packages (from the install DVD, not the combo update) seems like it is stuck, you can try using: sudo kextunload <nameofkext>. I only ran into this problem when I was testing a new install. (I did not have this problem on my first install, though.)

8. Locate the Multibeast and run it, but DO NOT select any options on once you reach the options section until you have read through the description of each option. You DO NOT want to install everything. The purpose of Multibeast is to install a boot loader to the HDD so that you can boot from the HDD, and additionally provide "drivers" (kernel extensions, aka kext files) to support your hardware. I made the mistake of blindly selecting everything (again, this was the first time I have ever messed with any Mac OS), and ended up with a boot loop (which was fixed by rebooting with iBoot and following this step more carefully). For first timers, select the EasyBeast option. This basically installs a boot loader, and some basic support for Intel processors. Find and install VoodooPS2 -- this will give some basic support for the built-in keyboard and trackpad (otherwise you will not be able to use the keyboard/touchpad). You can also choose to do a custom installation of Chameleon (the boot loader). Only pick ONE of those options (e.g. I selected to boot in 32-bit mode and with GraphicsEnabler=No until I could set up my GPU). Each time you run Multibeast, consider "installing" (click on the options to) clear the extensions cache and restore permissions. If you want a "Vanilla" install (i.e. no extra kexts in the folder /System/Library/Extensions other than the factory shipped ones, make sure to read the description of each kext in MultiBeast as it tells you where it will install.

I have not done much else other than edit ATIRadeonx1000.kext to add support for the GPU. I then adjusted the boot options (rerun Multibeast) to exclude the GraphicsEnabler option (again booting 32-bit since the T2500 is not 64-bit).

Some observations:

* edit any text file by using:

Code: Select all

sudo nano filename
(enter your password at the prompt). This is a Unix command. If you do not know how to use it, you may want to try typing:

Code: Select all

man nano
first.

* VoodooPS2 provides only basic touchpad support, although slide-bars and two-finger scrolling were only operation when booting from the iBoot disk (and not the VoodooP2 kext).

* My LCD is 1400x1050 and the EDID data is as follows:

Code: Select all

00FFFFFF FFFFFF00 30AE2240 00000000
000F0103 801D1578 EA2D0597 57518A27
23505421 08008180 01010101 01010101
01010101 0101302A 7820511A 10403070
13001ED6 10000019 25237820 511A1040
30701300 1ED61000 00190000 000F0090
43329043 280F0100 4CA35034 000000FE
004C544E 31343150 342D4C30 320A0019
* Install the Universal sound kext form Multibeast if you want sound.

* Speedstep is does not seem to be working OOB. I looked into VoodooPower but it does not do much other than sometimes reducing the core speeds down to 50%. This may also have to do with the misreport of the machine id as Macbook Pro 3,1 (a core 2 duo machine, whereas mine is just core duo). A Macbook Pro 1,1 id is more appropriate (use Multibeast to adjust this). Also, I added SMcputype of 513.

* clock is still messed up

Edit: 2/6/2011

After installing OS X and ensuring that it is bootable from the HDD, I removed the HDD and placed inside an external case. I place the original HDD (which had Windows XP Pro) back into the laptop and can now boot from my external installation of OS X. The point of this is to have a working system all while still being able to use OS X when I want to (just change my boot options).
Last edited by rs1n on Sun Feb 20, 2011 11:58 am, edited 1 time in total.

ausmike
Senior Member
Senior Member
Posts: 977
Joined: Tue Oct 27, 2009 11:16 am
Location: ~ 3Million Mile Club Member~~

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#2 Post by ausmike » Mon Feb 07, 2011 7:36 am

Hi rs*;
THANKS for an Excellent and very well Documented setp/Process(es) for Multibeast. I have been playing with various 'OSX Setups" on T60s for a while , and I found MultiBeast is the way to go....
After installing OS X and ensuring that it is bootable from the HDD, I removed the HDD and placed inside an external case. I place the original HDD (which had Windows XP Pro) back into the laptop and can now boot from my external installation of OS X. The point of this is to have a working system all while still being able to use OS X when I want to (just change my boot options).
I have this idea of using "standard tp" and have a spare USB/eSATA Drive dedicated for OSX keeps things nice and neat - works nicely for me!

Congrats! and thanks again

Cheers
Work: None - Retired ! Yipee!! ~~Older/Hm use:Asus Zenbook i7FHD~~ w701ds CTO;W520cto;T61P-IPSmodels; T43P,...&700Tstill going strong!! DEC Alpha Series OS: Win7x64; OSX; SuSe Linux; RedHat~~

rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#3 Post by rs1n » Tue Feb 08, 2011 12:34 am

Once I learned the idiosyncrasies of Multibeast, it really is a nice tool since it (and iBoot) basically act as recovery disks of sorts. The only thing I hate so far (and this really has nothing to do with Multibeast or iBoot) is the fact that any kernel extension tinkering requires clearing the kext cache and resetting dependencies. Under Linux (via modprobe and depmod), this was relatively fast (and very much so once you personalize your kernel to only compile the necessary drivers). However, this appears (with my limited knowledge of OS X) to be quite a lengthy process in OS X -- it seems as though EVERY single kext is re-examined, as opposed to only the necessary ones. Does anyone know how to speed up this process and only redo the caching of specific kexts?

Back to my own OS X setup:

* Based on the model ID numbers for Macs, my Thinkpad T60 most closely resembles the MacBookPro1,1 family of notebooks. These notebooks come with Core Duo CPUs (not Core 2 Duo), and ATI Mobility Radeon X1600.

rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#4 Post by rs1n » Tue Feb 08, 2011 6:52 pm

Got my Atheros card today. Took about 5 minutes to make the swap. In 10.6.6, the card is supported via the IO80211Family.kext -- look in the plugins folder to find two more kexts: AirportAtheros and AirportAtheros21. The card was detected as pci186c,1014 -- just add this to the two airport kexts for support. According to ioreg, its the AirportAtheros21 extension that gets loaded; not sure if the other one is a dependency issue (i.e. do we need to insert <string>pci186c,1014</string> to both kexts?

Notes:

* My router was set to not broadcast its SSID. As far as I can tell, I have to manually connect to my router. There does not seem to be any "profiler" that allows me to choose to connect to hidden networks.

* Correct power management via AppleIntelCPUPowerManagement obtained upon changing my SMproductname to MacBookPro1,1 and my SMcputype to 513 (in /Extra/smbios.plist) and removing /Extra/NullCPUPowerManagement which came from Multibeast.

rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#5 Post by rs1n » Tue Feb 15, 2011 4:41 pm

The VoodooPS2Controller kext that comes with MultiBeast did not have much enabled in terms of touchpad features (e.g. scrolling). Occasionally the trackpoint would work (could never figure out what triggers it into operational mode). However, having downloaded the latest source and compiled it (make sure to use the BaseSDK) the touchpad works quite well even with multitouch support and circular scrolling along the edges! Supposedly the two work exclusively but not simultaneously (e.g. the kext loads only one of the two plugins for the two mice)

I also managed to fix the stupid `/~ key (back quote / tilde) by editing the key mappings. I may delve back into the source to figure out how to properly enable both mice rather than just one at a time. Just edit the header file ApplePS2toADBMap.h and change the keycode for the key from 0xa to 0x32.

Incidentally, the drivers now properly attach to KBD and MOU (see ioregs) whereas this was not the case before.

ausmike
Senior Member
Senior Member
Posts: 977
Joined: Tue Oct 27, 2009 11:16 am
Location: ~ 3Million Mile Club Member~~

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#6 Post by ausmike » Wed Feb 16, 2011 4:15 pm

doh ! ~ didntr think of 'keymap" ~~~~ excellent tip ,,,,,,,,,,,Thanks
Work: None - Retired ! Yipee!! ~~Older/Hm use:Asus Zenbook i7FHD~~ w701ds CTO;W520cto;T61P-IPSmodels; T43P,...&700Tstill going strong!! DEC Alpha Series OS: Win7x64; OSX; SuSe Linux; RedHat~~

rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#7 Post by rs1n » Wed Feb 16, 2011 11:03 pm

* Install VoodooPS2Controller, I recommend compiling from the latest source. It may be that the source code needs to be changed for the `/~ key (0x0a to 0x32) within the PS2-to-ADB header file.

* When using ThinkpadUltraNav as a plugin for VoodooPS2Controller, change the device detection from ApplePS2SynapticsTouchpad to ThinkpadUltraNav (look in the prefspane source file) so that the preferences pane recognizes the ThinkpadUltraNav settings. A better fix would be to simply add in a few tests to check for both -- I didn't bother since I don't plan to use any additional touchpads/mice/keyboards.

* Tapping is turned off by default, so the step above is a must in order to configure touchpad tap-to-click.

rs1n
Posts: 23
Joined: Sun Feb 06, 2011 5:57 pm
Location: Jacksonville, FL

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#8 Post by rs1n » Mon Feb 21, 2011 6:31 pm

Courtesy of THe KiNG from projectosx.com, I was able to extract the proper C-states of the Intel Core Duo (and not the Core 2 Duo). Not only are the C-states more appropriate for my system (T60 with T2500 Yonah CPU), but they are also compatible with Mac OS X since they were pulled from the DSDT tables of an actual MacBookPro1,1 (which were equipped with Intel T2400 and T2500 cpus). So the end result is a set of C-states that do not require any plist editing to properly switch the C-states -- Snow Leopard automagically handles it (with different C-states depending on the power source). I had to make a few modifications, but it wasn't too hard.

Before, my core temps were hovering around 50 Celcius (idle); now the cores are around 40 Celcius (light use such as internet browsing and text editing). First, insert the statements:

Code: Select all

    External (PDC1)
    External (PDC0)
at the top of your DSDT, and then add the following just below the Scope (_PR) block

Code: Select all

    Scope (_PR.CPU0)
    {
        Method (_CST, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC0, 0x10
                ))))
            {
                Return (Package (0x02)
                {
                    One, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 
                                0x00,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000000, // Address
                                ,)
                        }, 

                        One, 
                        0x9D, 
                        0x03E8
                    }
                })
            }

            If (And (PDC0, 0x0300))
            {
                If (And (CFGD, 0x80))
                {
                    If (CondRefOf (_OSI, Local0))
                    {
                        If (_OSI ("Darwin"))
                        {
                            Return (Package (0x05)
                            {
                                0x04, 
                                Package (0x04)
                                {
                                    ResourceTemplate ()
                                    {
                                        Register (FFixedHW, 
                                            0x01,               // Bit Width
                                            0x02,               // Bit Offset
                                            0x0000000000000000, // Address
                                            ,)
                                    }, 

                                    One, 
                                    One, 
                                    0x03E8
                                }, 

                                Package (0x04)
                                {
                                    ResourceTemplate ()
                                    {
                                        Register (FFixedHW, 
                                            0x01,               // Bit Width
                                            0x02,               // Bit Offset
                                            0x0000000000000010, // Address
                                            ,)
                                    }, 

                                    0x02, 
                                    One, 
                                    0x01F4
                                }, 

                                Package (0x04)
                                {
                                    ResourceTemplate ()
                                    {
                                        Register (FFixedHW, 
                                            0x01,               // Bit Width
                                            0x02,               // Bit Offset
                                            0x0000000000000020, // Address
                                            ,)
                                    }, 

                                    0x03, 
                                    One, 
                                    0x01F4
                                }, 

                                Package (0x04)
                                {
                                    ResourceTemplate ()
                                    {
                                        Register (FFixedHW, 
                                            0x01,               // Bit Width
                                            0x02,               // Bit Offset
                                            0x0000000000000031, // Address
                                            ,)
                                    }, 

                                    0x04, 
                                    0x37, 
                                    0x64
                                }
                            })
                        }
                    }

                    Return (Package (0x04)
                    {
                        0x03, 
                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000000, // Address
                                    ,)
                            }, 

                            One, 
                            One, 
                            0x03E8
                        }, 

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000010, // Address
                                    ,)
                            }, 

                            0x02, 
                            One, 
                            0x01F4
                        }, 

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000031, // Address
                                    ,)
                            }, 

                            0x03, 
                            0x37, 
                            0x64
                        }
                    })
                }

                If (And (CFGD, 0x20))
                {
                    Return (Package (0x03)
                    {
                        0x02, 
                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000000, // Address
                                    ,)
                            }, 

                            One, 
                            One, 
                            0x03E8
                        }, 

                        Package (0x04)
                        {
                            ResourceTemplate ()
                            {
                                Register (FFixedHW, 
                                    0x01,               // Bit Width
                                    0x02,               // Bit Offset
                                    0x0000000000000010, // Address
                                    ,)
                            }, 

                            0x02, 
                            One, 
                            0x01F4
                        }
                    })
                }
            }

            If (LAnd (And (CFGD, 0x80), LNot (\_SB.PCI0.LPC.EC.HPAC)))
            {
                Return (Package (0x04)
                {
                    0x03, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 
                                0x00,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000000, // Address
                                ,)
                        }, 

                        One, 
                        One, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 
                                0x08,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000414, // Address
                                ,)
                        }, 

                        0x02, 
                        One, 
                        0x01F4
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 
                                0x08,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000416, // Address
                                ,)
                        }, 

                        0x03, 
                        0x39, 
                        0x64
                    }
                })
            }

            If (And (CFGD, 0x20))
            {
                Return (Package (0x03)
                {
                    0x02, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 
                                0x00,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000000, // Address
                                ,)
                        }, 

                        One, 
                        One, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 
                                0x08,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000414, // Address
                                ,)
                        }, 

                        0x02, 
                        One, 
                        0x01F4
                    }
                })
            }

            Return (Package (0x02)
            {
                One, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x00,               // Bit Width
                            0x00,               // Bit Offset
                            0x0000000000000000, // Address
                            ,)
                    }, 

                    One, 
                    One, 
                    0x03E8
                }
            })
        }
    }

    Scope (_PR.CPU1)
    {
        Method (_CST, 0, NotSerialized)
        {
            If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC1, 0x10
                ))))
            {
                Return (Package (0x02)
                {
                    One, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 
                                0x00,               // Bit Width
                                0x00,               // Bit Offset
                                0x0000000000000000, // Address
                                ,)
                        }, 

                        One, 
                        0x9D, 
                        0x03E8
                    }
                })
            }

            Return (^^CPU0._CST ())
        }
    }
There are still a few extraneous checks I need to remove (e.g. the check for Darwin as the OS) and eventually cleaning the code up (move it into the SSDT table instead).

korg91
Posts: 1
Joined: Thu Sep 15, 2011 2:04 pm
Location: Trento, Italia

Re: Installing OSX 10.6.3 on T60 with ATI X1400

#9 Post by korg91 » Thu Sep 15, 2011 2:22 pm

Hey mate thank you for your guide! Unfortunately I really can't boot into OS X Snow Leopard installation with iboot 3.1.1. I've tried many option combinations (and obviously the one you write), but soon or late the result is always the same: kernel panic. Could you help me please? Is there any option to make it even easier to boot?

I have a T60 (2007-FXG) with ATI X1400.

Thank you


PS: at the moment I'm using a snow leopard retail dvd, but it's not original. Maybe that's the problem, but I would buy it only if I know for sure that it works...

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “OS-X Questions”

Who is online

Users browsing this forum: No registered users and 39 guests