My X220 specs:
CPU: Sandy Bridge Core i5 2410M 2.3GHz (similar to Core i5 2415M in early 2011 13” MBP)
Video Card: Intel HD Graphics 3000, 0x0116 (same with MPB)
RAM: Samsung 8GB
SSD: Intel 160GB SSD SATA
Wireless Card: Intel Centrino Advanced-N 6205 (replaced with Dell DW1515, AR9280)
Ethernet Card: Intel 82579LM
Audio: Conexant 20672 SmartAudio HD
Card Reader: Ricoh R5C822
Results:
Things work:
• Video works (QE/CI and resolution change) OOB with native driver and “GraphicsEnabler=No”. (“GraphicsEnabler=Yes” also works but will inject a different Dev ID, and the video card will be shown as “Unknown” in system profiles.)
• Build-in Camera works OOB.
• Fingerprint reader works OOB
• Facetime and Apple Store work.
• Bluetooth works OOB with some minor quirks.
• AHCI and ATA injectors not needed on ThinkPads, everything works OOB (Silencer).
• Keyboard, touchpad and trackpoint: ThinkpadUltraNav with ApplePS2Controller.
• Brightness slider in display preferences with DSTD patch. Adjust brightness using “ScrLk”and “Pause” keys.
• SpeedStep: After patching HPET device in DSDT, P-states works with patched AppleIntelCPUPowerManagement.kext; C-states works by setting “GenerateCStates=Yes” in org.chameleon.Boot.plist.
• Power and Battery: VoodooBattery.kext + patched AppleACPIPlatform.kext
• No need to remove /S/L/E/AppleHDA.kext to allow VoodooHDA.kext to work - DSDT patch (Silencer).
• Audio works (internal speaker and mic, combined external headphone and mic jack, volume up, down and mute) with VoodooHDA.kext v2.7.2 after pin patch patched AppleHDA.kext (updated Apr 22, 2012).
• Restart works with EvOreboot.kext.
• Sleep and USB EHCI - DSDT patch
• Wireless card: replaced with Dell dw1515. Works natively with airdrop support. (need to remove white list from BIOS)
• Ethernet card works with AppleIntelE1000e.kext
• VGA port works with patched AppleIntelSNBGraphicsFB.kext
What's not working or not checked:
• SD Card Reader. Tried a lot of kexts without any luck.
• FN key combinations, Mic mute and ThinkVantage button not working
• Display port. Never tried. (some posts claim it is working)
NOTE: Remember to back up your data before you do this.
Step 1. Preparation:
Requirements: 1. OS X Lion dmg. 2.Working Mac OS X (hackintosh or vmware)
Follow the guide here to create an installation media:
http://www.insanelymac.com/forum/index. ... pic=260594.
Instead of creating an installation partition on the hard drive, I used a USB flash drive, so that I can use it to install Mac OS on other machines and save space on my small SSD.
Step 2. Hack for MBR installation: (If your hard drive is GUID partitioned skip to step 4.)
Since I don’t want to destroy the recovery partition and the Windows 7 professional that come with the machine, I choose to stick with MBR.
The hack files can be found at: http://www.osx86.net/downloads.php?do=file&id=1431. Download and unpack the archive file. There are two files in this archive, “OSInstall” and “OSInstall.mpkg”. We need to use ‘OSInstall’ to replace “System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Versions/A/OSInstall” in your installation USB (or partition), and use “OSInstall.mpkg” to replace “System/Installation/Packages/OSInstall.mpkg”.
Since the files are archived in a good way, we can simply type
“cp –r ./System /Volumes/ Mac\ OS\ X\ Base\ System” in a terminal to finish the hack. (“Mac OS X Base System” should be the label of your installation USB (or partition) created in step 1.)
Step 3. Prepare for disk partitions:
The key points are: 1) Mac OS partition must be a primary partition; 2) there must NOT be any logical partitions before Mac OS partition; 3) also keep in mind that in MBR disk only the first 4 primary partitions can be recognized.
In my case, I already have two primary partitions (the recovery partition and Windows 7 partition). I have a couple choices to partition my disk:
Recovery (primary) | Windows 7 (primary) | Mac OS (primary) | other partitions …
Or
Recovery (primary) | Windows 7 (primary) | primary partition | Mac OS (primary) | logical partitions …
The actual arrangement of my partition is:
Recovery (primary) | Windows 7 (primary) | Mac OS (primary) | Ubuntu (logical)
Tips: a) if you find Wndows 7 can not be shrunk to the size you want, defrag the partition then try again. If it still does not work, try third-party partitioning utilities like this: http://download.cnet.com/MiniTool-Parti ... ontentBody.
Step 4. Installation:
Set “MacBookPro8,1” in SMBIOS.plist. The following kexts are the minimum requirements in your “Extra/Extensions” folder of your installation USB:
AppleACPIPS2Nub.kext
ApplePS2Controller.kext
EvOreboot.kext
FakeSMC.kext
Patched_10.7_AppleRTC.kext
NullCPUPowerManagement.kext
Follow the instructions on the screen. Everything should run smoothly until the first reboot, when an error like “There is no keyboard connected to your computer" pop up. But the keyboard is actually functional. There are two methods to fix this. Please refer to the 21st and 27th post in the following thread: http://www.insanelymac.com/forum/index. ... 5403&st=20.
After this, you should be able to reach the welcome screen, create accounts, enter apple ID, and finally the desktop.
Step 5. Post-installation:
I. IMPORTANT: Boot through installation USB, and install Chameleon RC5 on Mac OS partition. Then copy the Extra folder in your USB drive to the root of Mac partition.
II. DSDT patches:
You'll need DSDTSE (download here) to extract and edit your DSDT. Here is a video tutorial (dated) on editing and installing DSDT (http://www.youtube.com/watch?v=EOyu8sF1YH4) in case your are not familiar with that. Though I have enclosed my own dsdt at the end of the post, I strongly recommend to apply dsdt patches one by one to your own dsdt; so that you'll be aware of what you are patching for and if the patches work or not. You never need a dsdt patch for something that is already working well.
1) audio: remove “Device (HDA)” so that you do not need to remove AppleHDA.kext from /S/L/E to avoid kernel panic.
2) Brightness slider: add “Device (PNLF)”
Code: Select all
Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}
According to post here (http://bbs.pcbeta.com/viewthread-942847-1-1.html), sleep fails due to remote wake-up through EHC2. Therefore, sleep will work (both manually or lid close) after adding “_DSM Method” EHC2 as well.
Code: Select all
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0D)
{
"AAPL,clock-id",
Buffer (One)
{
0x01
},
"built-in",
Buffer (One)
{
0x00
},
"device_type",
Buffer (0x05)
{
"UHCI"
},
"AAPL,current-available",
0x04B0,
"AAPL,current-extra",
0x02BC,
"AAPL,current-in-sleep",
0x03E8,
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Code: Select all
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (ATT3, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Name (ATT4, ResourceTemplate ()
{
})
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Method (_CRS, 0, NotSerialized)
{
Return (ATT3)
}
}
P-states: patched AppleIntelCPUPowerManagement.kext. (find in "patched_kexts" folder of Extra_Mac_Part.tar.gz)
C-states: “GenerateCStates=Yes” in org.chameleon.Boot.plist
(Remove NullCPUPowerManagement.kext in /E/E/ after this is done)
IV. Sound:
VoodooHDA.kext v2.7.2 after pin configuration. (find in "patched_kexts" folder of Extra_Mac_Part.tar.gz)
I tried a couple versions of VoodooHDA.kext. It seems that v2.7.2 works the best. Patched AppleHDA.kext also came out (http://bbs.pcbeta.com/viewthread-966078-1-1.html), but it does not seem to be working as well now.
V. SleepWatcher: http://www.bernhard-baehr.de/
I use it to unload VoodooHDA before system goes to sleep, and reload VoodooHDA during the system’s wakeup, to avoid clicking sound of VoodooHDA. This method works pretty well for me. It is also used to umount USB devices before system suspends to avoid improper removal of USB devices
VI. Battery:
VoodooBattery.kext + patched AppleACPIPlatform.kext in /E/E/. (find in "Extensions" folder of Extra_Mac_Part.tar.gz)
VII. Ethernet card:
AppleIntelE1000e.kext in /E/E/. (find in "Extensions" folder of Extra_Mac_Part.tar.gz)
VIII. Wireless card: (white list removal)
http://www.bios-mods.com/forum/Thread-R ... st-removal
IX. Keyboard:
Keyboard, touchpad and trackpoint work using ThinkpadUltraNav.kext with ApplePS2Controller. (find in "Extensions" folder of Extra_Mac_Part.tar.gz)
However, the backquote key “`” yields the section key “§”, therefore there’s not tilde key “~” either. To fix this, install KeyRemap4MacBook.pkgn. Then go to system preferences -> KeyRemap4MacBook -> For International English Keyboard and ISO Keyboard Users -> check “ Section (§) to Backquote (`) ”. http://pqrs.org/macosx/keyremap4macbook/
X. Bluetooth on/off:
Need to add the vendor ID and device ID to the Info.plist of “S/L/E/IOBluetoothFamily.kext/Contents/PlugIns/BroadcomUSBBluetoothHCIController.kext”. Find “Broadcom2045FamilyUSBBluetoothHCIController_D” part in the Info.plist, and replace the idProduct with your device ID (8575), idVendor with your vendor ID (2652). Please note that the vendor ID and device ID are the ones that found in Windows 7. The ones shown in Mac’s system profiles are not correct. And you need to convert the ID’s from Hex to Decimal. Please refer to: http://www.projectosx.com/forum/index.php?showtopic=353. Alternatively, we can create a plist only kext (BroadcomUSBBluetoothHCIInjector.kext), and put it in /E/E/. (find in "Extensions" folder of Extra_Mac_Part.tar.gz)
XI. VGA out:
Patched AppleIntelSNBGraphicsFB.kext. (find in "patched_kexts" folder of Extra_Mac_Part.tar.gz). Full resolution, rotation, QE/IC. There are some minor problems, which can be solved by either re-plugin the VGA cable or manually sleep then wake the computer. Keep tuned. http://www.osx86.net/view/2230-hd_3000_ ... icsfb.html
XII. Monitoring with IStats Menus:
Install ACPIMonitor.kext, IntelCPUMonitor.kext, SuperIOFamily.kext (find in "Extensions" folder of Extra_Mac_Part.tar.gz) along with slice’s FakeSMC.kext. Need DSDT patch. I have only CPU Die temperature and Fan speed sensors detected though. http://www.projectosx.com/forum/index.p ... topic=1206.
Step 6. Dual Boot with Windows 7:
After the installation of Mac OS X, Mac partition will be marked as active, and you can boot windows through Chameleon. However, I prefer to set Windows 7 partition as active and dual boot Mac OS using EasyBCD, because Windows automatic update will sometimes not work if Windows partition is not set active. EasyBCD can be downloaded at http://neosmart.net/download.php?id=1.
1. To change active partition using Mac’s disk utility, follow the guide here: http://www.insanelymac.com/forum/index. ... opic=22844
2. Then use Windows 7 DVD (USB, http://www.pendrivelinux.com/universal- ... -as-1-2-3/) to recover Windows boot loader with command “bootrec /fixmbr”.
3. Login to Windows 7 and launch EasyBCD, add menu entry for Mac OS (choose MBR mode).
Step 7. Triple Boot with Windows 7 and Ubuntu 11.10:
After installing Ubuntu, grub2 takes over Windows boot loader. However, grub2 does not appear to boot Mac OS. Therefore we need to recover Windows boot loader and add Ubuntu menu entry in EasyBCD (choose grub2). I.e. repeat 2 and 3 in Step 6.
Method 1: After installing Ubuntu, grub2 takes over Windows boot loader. If you want to triple boot using Grub2, then add the following code to /boot/grub/grub.cfg as a menu entry. Or you can modify the existing menu entry for MacOS according to the following code. Save and restart.
Code: Select all
menuentry "Mac OS X Lion" --class osx --class darwin --class os {
insmod part_msdos
insmod hfsplus
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root ba43552d339bd024
multiboot /boot
}
Method 2:
Restore Windows boot loader using Windows 7 installation disk/usb (bootrec /fixmbr).
Install EasyBCD (if you haven't done so) and add Ubuntu menu entry in EasyBCD (choose grub2). I.e. repeat 2 and 3 in Step 6.
Step 8. Combo update:
I confirm it is safe to update to 10.7.2. Before boot in to Lion, login to the installation USB or windows (Macdrive installed) first, and replace AppleIntelCPUPowerManagement.kext and AppleIntelSNBGraphicsFB.kext in S/L/E with the patched ones.
I’ll update to 10.7.3 and report here later.
I’ll keep my post updated if I find something new or inaccurate.
My files:
Extra folder of installation USB: Extra_USB.tar.gz
Extra folder on Mac OS partition (patched kexts included): Extra_Mac_Part.tar.gz
DSDT:dsdt.aml (updated on Apr 22, 2012) (I do not recommend to use my dsdt directly. Be aware of what you are doing when patching your dsdt).
SleepWatcher’s rc files:rc.sleep, rc.wakeup