Alright everybody, after suffering through a gazillion posts, tons of tweaking, and lots of work, I have a nice OS X Leopard 10.5.1 install on my T61p (Type 6459-CTO the CTO is Custom To Order). This will apply to most T and X61s. First and foremost, the real congratulations and thanks goes to everybody who did the hard work behind these fixes. The only thing semi-original that I did is the Sierra Wireless and I got the inspiration for that from Linux users.
So how much am I using OSX on my ThinkBook? Not a lot. I love it and it looks OK, but no movies, no iTunes, no proper iPhoto. You get the idea. The lack of sound and proper video support puts a real kink in it. Even if they get solved and I believe sound is sort of solvable and am not sure about video, you won't have hibernation or proper sleep support which means booting up and down your laptop when you are on the go :-( So if you really love OSX (and I do) get a real mac. As it is I use mine to sync my iPhone with group support since Apple doesn't support categories on Windows with iPhone sync (funny how Plaxo supports syncing between OSX groups and Outlook categories on Windows)...
This guide was originally done for a brazil mac patched version of leopard. There are toh and other packages out there now. My goal is to emulate a MBP as close as possible and keep my install as original as possible. EFI is the enhanced firmware replacement for BIOS that Intel is supporting and Macs are usings. Windows as usual is behind so our IBMs still use BIOS emulation. Netkas (hacker extraordinaire see www.netkas.org) created an EFI emulator, sort of the opposite of bootcamp, that makes OSX think we have EFI and translates EFI calls to BIOS. I load mine via Grub for DOS and now have OSX on a GUID drive. With PCEFI you can get very close to a real mac. I run the vanilla kernel (with dsmos) and most all original extensions (a list is at the bottom of this post). Strongly recommended. EFI is available on the regular chat scene under #leopard. For more on EFI and grub for DOS see:
http://forum.osx86sc...?...=a&start=75 (see my two posts on p6 and the beginning for more)
I also have grabbed all of my data and repartitioned my main drive to put on FAT32. You can shrink your Windows drive simply using Vista and then creating a new FAT32 drive. By doing that I can access it easily from OSX (you can also use MacFuse and the NTFS 3g driver, but the performance is not the same and their can be kinks). If you are interested in seeing how, hit this link http://joshmouch.wor...category/vista/.
So I have a second hard drive in the ThinkPad Ultra2000 bay (never enough storage :-). I partitioned that into two partitions. On the first I installed OS X 10.4.9 Uphuck v.1.4 r 3. This got me the Darwin bootloader, which was not available in the leopard image I downloaded. When partitioning the two partitions the first one has a minimal install (4GB) and a main one all the rest. If you format both of the partitions with HPFS extended journaled then both will be offered as a boot option through the bootloader. An important note: if you are installing 10.4.x or leopard, depending on whether you have the proper sata drivers it may not see you first hard drive! You can overcome this by simply enabling compatibility mode in the BIOS for AHCI access. You should be able to turn this back on after a sucessful install. Also, I didn't realize this right away, but OSX thinks its installed on the first hard drive (0)! Something to keep in mind when you are in terminal!
Depending on which install you are using (Toh, etc.) then you will have different options. As I said, I recommend EFI and removing a couple of kext (see below), but don't take a lot of the options. Do not install any video drivers as they will hose your video! So after you get it installed, the fun part!
Enable root userYou'll need this for some dirty work and its always good to have a back door. To enable the root user open the directory utility under Applications/Utilities and select edit from menu bar and enable root user.
Video: my T61P has a Quadro FX 570m http://www.beyond3d....t/articles/90/4. This is based on the nVidia G84 GPU as is the 360m. Why is this important? Well, the G84 GPU also powers the GeForce 8600m GT (MacBook Pro). Normally in Mac world if something works on the Mac side, it works on the hackintosh side (such as the Dell 150x n wireless cards and the aircard, which are both based on the Broadcom 431x chipset). Ahhh, the irony. Well the new MBP's actually use EFI and not BIOS and low and behold, a great number of the GeForce 8600m GT's features are identified/controlled and communicated through the efi! So not only do we not get native performance, laptops based on the 8600m GT's don't work as well. So, no natit, no titan, no nvinject. Out of the box you get standard VESA frame buffer performance and the video card is recognized as a 32MB VRAM unknown nVidia card. This means no QE/CI (think openGL, directX type of performance). Our laptops won't be great for watching movies, editing, video, etc., under osx. You can, however, change the video resolution! If you are interested in understand better, the best bet is to watch the GeForce threads at nvinject--now at http://nvinject.free.fr/forums/ (used to be at OSXscene http://forum.osx86sc...wforum.php?f=74) and insanelymac) http://forum.insanel...showtopic=53052. Our hope is through NVinject, which is where the work is currently going on (they got the 8800 series to work, but laptops and the 8600….)/
Video Update: the 8600GTs have been solved on the hackintosh side, but we still have no luck with the Quadro FX's :-( The documentation is in the unofficial Geforce thread I pointed out above, but the hangup seems to to be in the NVDaResman.kext. Modding the Geforce.kext and NVDANV50Hal.kext presented no problems. I don't have enough time to dig here unfortunately.... I already donated $100 to gotoh at nvinject, but the main thrust of the hackintosh community is GeForces so.... You can find more info at insanelymac and http://nvinject.free.fr/
There are multiple ways from within terminal or /Library/Preferences/SystemConfiguration/com.apple.Boot.plist to change your resolution. Here's what you do to set your resolution permanently:
Edit your boot.plist with nano or something else (ie, from terminal type:
sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist. The file appears as:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$
Simply add the bit I put in bold, edit the values as needed - 1280x1024 is the resolution, 32 is the colour depth (32 bit).
So if you wanted 1440 by 900 /w 32 bit colour it would be 1440x900x32.
Power management/battery meter Updated: The power management should get you a battery meter that works and that's about it--no speedstep, etc. It can be downloaded at this link http://forum.insanel...showtopic=80425. Boom, you have the battery meter and minimal power management. I just gave it a shot, but it's not working for me at the moment and its not so important. To utilize speedstep you need to tweak with the kernel. I don't recommend it as it's a lot easier to use the vanilla one :-)
For sleep it's a bit trickier. There are fixes for non-EFI users at the regular chat scene in the #leopard channel. If you are using PC EFI, then it already works (at least for me). With both you will have pseudo sleep. You can hit sleep and the disk and CPUs will sort of shut down (no fan, no disk usage), but not like in windows. Still, very nice! There is no deep sleep (hibernate) since that invokes the EFI and netkas and others haven't added it in.
To get time machine and deal with other issues you may need to update the IONetworkingFamily.kext! This is also on the chat scene under #leopard
Important: Any time you edit a kext (as with my code below) you must reload the caches so that the changes take on boot up. You can do this during boot with the -k option or you can type the following into terminal after you make your changes:
sudo rm /system/library/extensions.mkext
Networking: a must for laptops! My laptop comes with the Intel 4965 wireless n card, the 82566MM Gigabit Ethernet adapter, Bluetooth, and a Sierra Wireless GSM card built in. The Bluetooth (and firewire) work out of the box. I hacked the Sierra Wireless USB drivers to get that working (if you need the hack, PM me, but basically edit the plist and increase the deviceID number of the USB device by one and boom, it will turn from external to internal)! I have hacked around on the 825xx.kext and added my deviceID, but unfortunately Intel is doing a hardware check and it won't work. There are some hacks http://forum.insanel...showtopic=36976for enabling wireless, but they are very awkward. I bought a Dell 1505 draft n wireless card to have true n performance and ditch the Intel and the damn IBM/Lenovo have locked out other vendors! There is a hack for older models http://www.command-t...wireless-cards/, but not ours :-( So then I ordered the IBM Lenovo ThinkPad 11a/b/g Wireless LAN Mini-PCI Express Adapter - network adapter ( 40Y7026). This one obviously works and can be perceived as a native AirPort card by OSX (atheros chip set). To enable it simply open up terminal and type:
sudo nano /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/Info.plist(it will prompt you for a password)
Scroll down to:
and add the entry I have in bold. Make sure follow the indentation formatting, etc. Some people needed to rename ETH1 to ETH0, I did not.
Sierra Wireless There's more Sierra Wireless built in cards out there than I expected! You probably downloaded the software and installed it, but it just crashes upon startup. So for you users here's what you have to do. First, download and install the Sierra Watcher utility from here: http://www.sierrawir...y/mac_os_x.aspx. You will need to get the software for the PC Card version and then modify the kext's Info.Plist to make it recognize the built in one. It's really quite simple as it's simply an increase of one in the device ID numbers.
sudo nano /System/Library/Extensions/SierraSupport.kext/Contents/Info.plist(it will prompt you for a password)
Scroll down till you see your device ID or to be safe you can change every one. In my case I have an internal 8775 internal varient (3G GSM) so I will use that:
And increase its value by one (in this case from 26642 to 26643). Now do it one more time for one of the other Sierra kext's by typing:
sudo nano /System/Library/Extensions/SierraSupportKicker.kext/Contents/Info.plistand increasing the idProduct by one (the same one you did before). Don't forget to reload the kext cache (see above).
Sound: The other necessary evil for out babies. ThinkPads T61's come on the Intel ICH 8M chipset (same as MBP) with a Analog Devices 1984 chipset as well as a conexant modem. Although i appeared that you could get get speaker only sound with the Azelia audo hack http://forum.insanel...showtopic=36520. I didn't. Volume up/down works (but once again without sound), but not mute! I am not spending so much time on since it appears the pathmaps are wrong and instead jumping to try and get true digital audio to the AppleHDA hack http://forum.insanel...showtopic=32859 (search for my posts within and for more see this http://www.neonkoala...ent/view/43/34/). So I am still working on this, but here is my linux codec0 dump for those of you who feel adventurous http://rapidshare.co...10945/codec.txt.
UpdateAnother user is working harder than me here. http://forum.insanel...showtopic=92676. Additionally, Taruga, who solved the original HDA problem and has a GREAT installer has acquired a AD1988. He is working on a new solution so you might want to check his wiki often (you have to join to see the posts). It's at http://wiki.taruga.net/
Time: This one sucks. Macs run like true unix systems and use a GMT clock whereas PCs (and linux) assume the clock is local. That means they want a big difference between the clocks (I live in PST so there is an eight hour difference that they are always fighting over). I can't simply use GMT for OSX because I have appointments, etc., from exchange that this totally hoses. There is not an eloquent solution that I can find. One, (adding RealTimeIsUniversal) to the windows registry looked great and sounded great, but your clock will get out of sync and if you use any type of hibernate/sleep, it gets worse. Basically, it's a legacy registry setting and not properly implemented/debugged anymore. The other, adding a startup/shutdown sequence to OSX is also not so great because if the system hangs..... or anything along those lines, but it seems to be the least of the two evils. OSX users running bootcamp and Windows have the same issue. So here is the solution I use:
You need to create these files with the following content. To do so start up terminal. Then type:
sudo pico /etc/rc.localdate `date -u +%m%d%H%M%Y`
and add the line in bold above. Next type:
sudo pico /etc/rc.shutdown.localdate -u `date +%m%d%H%M%Y`
And add the part in bold. This changes the clock back again. This solution works well when you shutdown normally, but not when testing drivers or something hangs..... The other solution tries network time syncs, not great for laptops that may not always be connected. I have added it as a backup though in case I didn't shutdown OSX properly. Windows time service sucks because the default poll interval for network syncs is 168 hours! Uhg.
So to help keep things in sync I changed the default time interval for Windows network time service (Apple's default is a lot more often in Leopard. You can also add AppleTime from bootcamp to speed it up even more often, but I didn't have to. To change the default poll interval for vista's network time since you need to open up regedit. This is for advance users only!!! If you hose your computer, you are fully responsible. So proceed with caution. Hit the Start menu button -> run then type regedit. Find the following key:
Click on the entry and it will popup with a hex entry of 93a80. Click on the decimal button and it should change to 604800 (this is the number of seconds between polls). Now type in 900 (once again, make sure that it's on decimal and not hex) and hit the ok button. This changes the default interval to 15 mintues. It will take effect upon your next reboot. Want to know more? Hit this link: http://support.microsoft.com/kb/816042
Cardbus: You will get a cardbus error. There is a patch here: http://forum.insanel...showtopic=81048. It worked for me!
Keyboard: download double command and you can enable the proper home/end insert/delete keys as well as remap window's ctrl to command and window's alt key (mac command) to ctrl! This will let you do the windows equivalents of ctrl+x (command+x in mac) to copy, etc.
Virtualization: JAS 10.4.8 works well virtualized. With virtualization you can actually boot either physically or to virtually. Leopard should work too, but I am attempting a pretty advance configuration of using the same partition to boot physically or virtually. I have not gotten that to work yet under VMware workstation, so more on that one later….
Documents, Photos, etc.: A great way to link to shared documents, downloads, etc. it to delete the mac folders and create alias' in OSX to your windows ones. That way when you jump to documents, you will jump to a common data area or when you import photos, etc. To do this log on as administer (you first have to enable root user under directory services (it's under utilities and when in it enable root user) and enable fast user switching or non-automatic login (under system preferences).
iTunes with same library on both systems: this one was important to me. I need to use groups on my address book to only sync a limited subset of my contacts (not allowed in Windows so I had to sync from OSX). I had a large iTunes library in Windows that I wanted to use. First I deleted my native Music folder under my login name on OSX and created an alias to my FAT32 Windows Music folder. Now both the Windows and OSX version of iTunes were looking in the same place. I noticed by both Windows and Mac use the same library files except for two exceptions:
the windows version uses an .itl extension for iTunes library whereas the OSX version does not have an extension. I deleted the OSX version and right clicked on the Windows version and created an alias that I named itunes Library. Now I had the same library under both Windows and OSX.
The additional file is the iTunes Music Library.xml, which is the same on both systems, but contained the path name to Music in the form of localhost://Volumes/Data/Users…. For mac and localhost://D:\Users… for Widnows. I thought about writing a script to automate changing these back and forth, but the OSX version works and though I get a warning on the Widnows side, it works fine as well, so I let them duke it out :-)
Note: You need to be able to see extensions and hidden files for this edit so make sure enable the viewing of extensions in Finder under preferences and get Onyx and enable hidden files and folders view.
Must have tools: make sure you get Pacifist to unpack and selectively install packages as well as examine them to make sure some of your precious work isn't overwritten! And onyx (mentioned above to show hidden files). You can also download xtools to get the property list editor from Apple (for intricate hex values), but for a lot of others text edit/pico/nano works fine. Lastly, if you have a 32-bit version of Windows, check out MacDrive, which will let you access your OSX content from Windows. Likewise, MacFuse (http://code.google.com/p/macfuse/) and NTFS 3G (http://macntfs-3g.blogspot.com/) will let you access NTFS from within OSX.
The extensions/bundles I am adding or using modded ones are:
~AppleSMBIOS--using modded one (this takes care of some errors and is recommended by Netkas).
AppleACPIPlatform.kext—We can now use the stock one thanks to some brilliant work! See this link: http://forum.insanel...showtopic=72710. We used to need to use the legacy one for PS2 support (laptop trackpads and keyboards, but this hack enables the stock).
+dsmos.kext—takes care of decryption/encryption of the stock vanilla kernel… Must have.
+ ACPIPS2Nub.kext—added as a hook to the stock ACPIPlatform…
+ ApplePS2Platform.kext--added (for trackpad and PS2 keyboard).
+ IOPCCardFamily.kext--added for PC card suport.
+ PowerManagement.Bundle--for battery meter.
- AppleIntelCPUPowerManagement.kext--deleted as I was still getting a no HPET handle error.
Everything else is stock and working great. You may need the IONetworkingFamily patch (also on IRC), but I didn't.