In my case a NY424GE

If you find any mistakes or have something to improve then please send me a PM and I update the guide!
Im from germany so sorry for my maybe bad english
What works and what doesn't:
Works:
- Graphics card (Quadro 2000M) (with QE/CI (DSDT or GraphicsEnabler = yes)
- CPU (Speedstep and turboboost)
- LAN
- Webcam
- Bluetooth (must be activated under Windows with FN+F5)
- Sleep (FN + F4 or close the notebook)
- Ultrabay HD
- Display Port (tested with Cinema Display 27")
- Docking Station (tested: eSata, USB ports, Displayport, LAN, power)
- Track Point with mouse buttons + scrolling
- Trackpad (two finger)
- USB 2.0
- Battery indicator (with iStats, only cycle count is always "0")
- Keyboard (+ Sound up and down + Think Light, Sleep (Fn + F4), play, pause ... with FN)
- Brightness Control
- Fan Control (via DSDT) and display in iStats
Works with detours:
- WLAN (WWAN slot Pin20 method does not work!) http://www.ebay.com/...6.c0.m270.l1313 BIOS with removed whitelist + small DSDT mod + terminal and the card is recognized as Airport Extreme and just works fine
- SD card reader (http://www.amazon.co...24236395&sr=8-1)
Software i used: (you should find it relatively fast with Google or ask otherwise):
- The OS X Lion App download (buy, please!)
- Lion 10.7.2 combo update
- Carbon Copy Cloner 3.4.3
- Chameleon Wizard (http://www.insanelym...howtopic=257464)
- Cinebench 11.5
- CUDA Driver for Mac
- Auto-DSDT patcher (with Generic Patch) (http://olarila.com/f....php?f=19&t=131)
- DSDT Editor and Patcher (http://www.insanelym...howtopic=223205)
- Kext Wizard (http://www.insanelym...howtopic=253395)
- ##### Lion Edition (http://www.tonymacx8...forum.php?f=125)
- rBoot LE
- #####
- Speedstepper Lion 10.7.2 (beta) (http://www.insanelym...howtopic=258611)
- System Information (http://www.insanelym...howtopic=219584)
What kexts are needed:
- AppleSmartBatteryManager.kext (http://www.insanelym...le&fromsearch=1)
- VoodooHDA 2.7.2.pkg (http://code.google.c.../downloads/list)
- UltraNav 64-bit (http://www.osx86.net...do=file&id=1639)
- Voodoo PS2 64bit (http://www.insanelym...howtopic=175372) (SL_PS2_Voodoo.zip)
Preparations:
Set BIOS to use Quadro 2000 only.
Now we need to create a bootable ##### LION USB stick. Instructions are available here:
http://tonymacx86.bl...lion-using.html
Then insert the USB stick and when booting press F12 and select the USB-stick. When the ##### boot screen appears, just select your stick and press enter.
If this doesn't work, remove all USB-Stuff and try again.
So you should end up with the installation screen (here you can plug in your USB-Stuff again if you need it for installation).
Installation:
Then, as described in ##### guide above go on utilities and disk utility. In my case I have now installed Lion on a eSATA HDD, because after all it is cloned on a MBR partition to be be able to boot it. So we install it on a GUID partition, and then it will be mirrored to an MBR partition.
You can probably use a patch to install on an MBR partition, but that did not work with me on the fly, so I've just made it that way. Those with no second Hard drive or wants to try with the patch:
http://www.google.de...biw=886&bih=854
So select hard disk and partition with "Mac OS Extended (Journaled)" and GUID. After that leave the disk utility and follow the instructions.
When the ThinkPad is rebooting after installation again press F12 for to enter boot menu and this time start rBoots LE CD. Select the installed Lion Partition and hit enter.
For initial settings you need a USB keyboard, because the notebook keyboard, for any reason isn't accepted.
Now that we are the first time in Lion I've set following things:
(so they don't cause any problems)

Then you can install the 10.7.2 combo update and reboot with rBoots LE.
Now its time to set up the HD on which Lion should stay after all:
So format the HD with MBR and "Mac OS Extended (Journaled)" in disk utility.

After that start Carbon Copy Cloner and clone the GUID-Lion to MBR-Lion (error message with MBR can be ignored).
When CCC is finished we can restart again and this time boot into the MBR-version with rBoot (top left are the details).
Get the hardware running:
Let's start with the bootloader. For this we start Chameleon Wizard and select the top "buildbot" and select the newest version + installation method "Boot0hfs". The just click install and we are done.
Click on org.chameleon.Boot above and check the following:

Then click "Save As", and choose the desktop for example.
On top click "SMBios" -> "Customize" and select the MacPro 5,1. "Save as..." and again on the desktop.

Finally, open the Finder, and create the folder "Extra" at "/".
Put the created "org.chameleon.Boot.plist" and "smbios.plist" inside this folder.

Now go further with ##### and check the following -> install:

Now install VoodooHDA.pkg and before we can reboot we have to edit the info.plist of VoodooHDA under S/L/E.
Just right-click the kext and "Show Package Contents", then copy the Contents Info.plist to the desktop. Now open the Info.plist from desktop and apply the following:
In our case:


Then copy the Info.plist in the kext again and replace.
To install VoodooPS2, voodoo battery and UltraNav we need Kext Wizard. So start Kext Wizard and place the .kext(s) in the field. Then enter the password and click install.

Now go to S/L/E (System / Libary / Extenstions) and delete AppleTyMCEDriver.kext (kernel panics).
Then repair permissions + clear Cache with Kext Wizard.
Now you can reboot the system. After pressing F12 and selecting the right HD (MBR) Chameleon will load and after 3 seconds (see Chameleon Wizard) Lion should boot.
Kexts to adapt:
Once again we are in Lion, we still need to adjust some kext to get them work properly. For this you have to go to System/Library/Extensions (S/L/E) and right click the kext -> "Show Package Contents" -> Contents. Here you'll find the Info.plist you usually need to edit.
To edit the files I just copie the Info.plist to the desktop and edit there. Then simply copy it back into the kext and replace.
AppleGraphicsPowermanagment.kext
Go into Info.plist and search for "MacPro5,1". Now we "System Info" and look for our graphics card VendorID and DeviceID. In this case (if you have a 2000M) its "0dda" and "10de". In the 2nd entry (of MacPro5.1) in the Info.plist edit the following:


I've also adjusted the G-State Thresholds so that in most cases the GPU is in G-State 1 and in games / benchmarks it switches to G-State 0 ... The Quadro 2000M has 3-GStates (0,1,2) if I'm not wrong. The lower the number the higher clocks the GPU. With G-State 2 the GUI is to laggy and it doesn't make fun.
Who wants to watch the switching G-States can do that by editing the "LogControl" from "1" instead of "0". Then you can follow in changing the G-states in console (reboot, etc. obviously).
AppleLPC:
Modify the Info.plist and add Vendor and DeviceID in IONameMatch:


After that you should see AppleLPC.kext loading after restart etc. on "kextstat" with Terminal (needed for Speedstep and TurboBoost).

AppleIntelCPUPowerManagement.kext Patching
In this case we have to patch the kext with Speedstepper.
http://www.insanelym..... stepper&st=0
So backup the kext on the desktop (if something goes wrong) and then open a terminal (I'm a terminal noob so i just write how i made it)
Go to /S/L/E/AICPUPM.kext /Contents/MacOS/AICPUPM
rename the downloaded SpeedStepper to "speedstepper" and put it in your User Folder:

then in the terminal:
sudo ./speedstepper "here simply dragged the file "AICPUPM" into the terminal to get to the path" and press enter.
After that run Kext Wizard and repair permissions etc. and reboot.
DSDT:
The (at the moment) finished DSDT is attached at the end.
First go into DSDT Editor and Patcher and click "Extract DSDT". Now "Save DSL as..." and save it to Desktop.
Now open DSDT Auto-Patcher and apply the Generic-Patch.
Afterwards we re-open the patched DSDT in Editor and Patcher.
Now click "Patch" -> "open ..." and apply the EHCI Fix from SandyBridge Patch folder (for working sleep).
The next thing you must manually change to avoid the CMOS-reset (in my case I had to change one number to a "0"):
http://www.insanelym...howtopic=174396
This line:
0x00, / / Alignment
Now save it again "Compile" and "save AML as..." in /Extra as DSDT.aml.
In Terminal type following to avoid CMOS checksum problem:
sudo cp -R /System/Library/Extensions/AppleRTC.kext /System/Library/Extensions/AppleRTC.kext.orig(In case something should go wrong)
sudo perl -pi -e 's|\x8b\x45\xc8\x39\x45\xcc\x74\x0b|\x8b\x45\xc8\x39\x45\xcc\xeb\x0b|; s|\x8b\x45\xb4\x39\x45\xb8\x74\x08|\x8b\x45\xb4\x39\x45\xb8\xeb\x08|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC
Rest of the DSDT see below!
VoodooHDA:
Under Applications -> Utilities -> Audio MIDI Setup: (must be done again after a reboot!)

In addition, you should check "SSE2" at the Voodoo systemsettings:

Chameleon Wizard adapt:
Currently the CPU is still running with all the cores on max. speed and so we don't use turboboost or Speedstep. So we have to change some things with Chameleon Wizard to get rid of it.

DSDT.aml and smbios.plist have to be in /Extra folder.
Then go to /Extra and open org.chameleon.boot.plist and change the following (to allow AppleIntelCPUPowerManagment and for a better not lagging GUI)

Again, in S/L/E, and since we now hope for Speedstep and Turboboost we need to delete the NullCPUPowerManagment.kext.
Once you have restarted you should now get the same Cinebench results in OS X as with Windows (slight +/- always occur). In my case for the CPU (i7-2720) are about 5.2 and about 35-36 FPS on OpenGL.
To check Speedstep use http://www.insanelym...owtopic=258612.
EvoReboot.kext can now be removed from S/L/E.
After that you can install the NVidia CUDA-drivers.

If something's gone next time:
- when you edit any info.plist you should repair permissions etc. or install the complete kext again and repair permissions etc. after that
- If you can not boot because of kernel panics try to boot with -x or with rBoot LE CD (-v can help also)
- Insanelymac.com, osx86.net, tonymacx86.com .... search!
- If Kernel Panic happens retry it (i also get sometimes (about 1 of 20) a KP after reboot)
- Always install the kexts with no programs in background
The system now runs about 2 Months really stable and i use it about 9 hours at work and also some hours at home. For me its the better Macbook Pro:
- awesome ThinkPad Keyboard
- Dockingstation (no a 1000€ CinemaDisplay isn't a real Dockingstation
- the easy way to change Hardware
- a lot of ports with Dockingstation etc.
and so on...
I hope i didn't forgot anything
Have fun with OS X
Gothic
______________________________
2. Part
DSDT-Stuff:
As always after changes (in DSDT Editor and Patcher): IASL -> Compile (0 errors, 0 warnings) -> Save .aml as... -> /Extra
Graphics card via DSDT:
Sometimes after reboot i have some lagging GUI and so i tried it with DSDT, but it still happens sometimes. I don't know the reason, but when the system is up and the GUI is smooth it remains so.
Go into IORegistryExplorer and search for "VID":

After that open DSDT Editor and Patcher and add the following under _STA:

Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x22)
{
"AAPL, backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
"@ 0, backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
"@ 0 compatible,"
Buffer (0x0B)
{
"NVDA, NVMac"
}
"@ 0 device_type,"
Buffer (0x08)
{
"Display"
}
"@ 0, display_cfg"
Buffer (0x08)
{
0xFF, 0xFF, 0xFF, 0xFF
}
"@ 0, name",
Buffer (0x0F)
{
"NVDA, Display-A"
}
"@ 1 compatible,"
Buffer (0x0B)
{
"NVDA, NVMac"
}
"@ 1 device_type,"
Buffer (0x08)
{
"Display"
}
"@ 1, display_cfg"
Buffer (0x08)
{
0xFF, 0xFF, 0x00, 0x01
}
"@ 1, name",
Buffer (0x0F)
{
"NVDA, Display-B"
}
"@ 0, built-in"
Buffer (One)
{
0x01
}
"@ 0, pwm-info"
Buffer (0x14)
{
/ * 0000 * / 0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
/ * 0008 * / 0x08, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
/ * 0010 * / 0x00, 0x04, 0x00, 0x00
}
"NVCAP"
Buffer (0x14)
{
/ * 0000 * / 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
/ * 0008 * / 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
/ * 0010 * / 0x00, 0x00, 0x00, 0x00
}
"VRAM total size,"
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x80
}
"Device_type"
Buffer (0x0D)
{
"NVDA, Parent"
}
"Model",
Buffer (0x14)
{
"NVidia Quadro 2000M"
}
"Rom-revision"
Buffer (0x22)
{
"NVidia Quadro 2000M OpenGL Engine"
}
}, Local0)
DTGP (arg0, arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
If you have a Quadro 2000M, you don't need to change anything at this point. If for example you have the Quadro 1000M you can now use the IORE and change the values as shown in IORE and DSDT.
For the name of "model" and "rom-revision" it is important to know that the buffer value is depending on length of text (number of letters +1) in my example, "NVidia Quadro 2000M" =19 letters (spaces are included) +1 = 20 This gives 20 as the hexadecimal number "14" (converters are available here: http://www.langenegg...hes/Hex_Dez.htm).
Or just use "()" and DSDT Editor and Patcher makes the rest.
Important: Disbale GraphicsEnabler with Chameleon Wizard when you use the DSDT injection.
Brightness control:
Add the following device:
Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}

For brightness control now use Roll and Pause (without FN). You can use tools if you want to change this.

Thermal zone changes:
Just from another nearly similar Notebook edited DSDT but it works...

thermal zone (THM0)
{
Method (_CRT, 0, NotSerialized)
{
Return (TCRT)
}
Method (_PSV, 0, NotSerialized)
{
Return (TPSV)
}
Method (_TC1, 0, NotSerialized)
{
Return (TTC1)
}
Method (_TC2, 0, NotSerialized)
{
Return (TTC2)
}
Method (_TSP, 0, NotSerialized)
{
Return (TTSP)
}
Method (_PSL, 0, NotSerialized)
{
If (And (ppm F, 0x01000000))
{
If (alpha tested (PNHM, 0x000106E0))
{
Return (0x08 package ()
{
\ _PR.CPU0,
\ _PR.CPU1,
\ _PR.CPU2,
\ _PR.CPU3,
\ _PR.CPU4,
\ _PR.CPU5,
\ _PR.CPU6,
\ _PR.CPU7
})
}
Else
{
Return (0x04 package ()
{
\ _PR.CPU0,
\ _PR.CPU1,
\ _PR.CPU2,
\ _PR.CPU3
})
}
}
Return (0x01 package ()
{
\ _PR.CPU0
})
}
Method (_TMP, 0, NotSerialized)
{
If (H8DR)
{
Store (\ _SB.PCI0.LPC.EC.TMP0, Local0)
Store (\ _SB.PCI0.LPC.EC.TSL2, Local1)
Store (\ _SB.PCI0.LPC.EC.TSL3, Local2)
}
Else
{
Store (RBEC (0x78), Local0)
Store (And (RBEC (0x8A), 0x7F), Local1)
Store (And (RBEC (0x8B), 0x7F), Local2)
}
If (alpha tested (Local0, 0x80))
{
Store (0x30, Local0)
}
If (Local2)
{
Return (C2K (0x80))
}
If (LNot (\ _SB.PCI0.LPC.EC.HKEY.DHKC))
{
If (Local1)
{
Return (C2K (0x80))
}
}
Return (C2K (Local0))
}
}
Now you can use FakeSMC with the following plugins:
- IntelCPUMonitor.kext
- NVClockX.kext
The current version should be googled quickly. Just install with Kext Wizard and it should look like this (adjusted):

Fan control and display via DSDT + ACPIMonitor.kext
We first need to install ACPIMonitor.kext (http://www.projectos...?showtopic=1643 (Revision 493rd Made by mojodojo)).
. Before we install the kext we have to change an entry in the info.plist of ACPIMonitor.kext:

Add the following entry to DSDT:

Field (ECOR, ByteAcc, nolock, Preserve)
{
Offset (0x84)
HFN1, 16
}
After that the following (my AUTO fan setting):

Device (SMCD)
{
Name (_HID, "MONITOR")
Method (FAN0, 0, NotSerialized)
{
Store (^ ^ EC.HFN1, Local0)
Return (Local0)
}
Method (TCPU, 0, NotSerialized)
{
Store (^ ^ EC.TMP0, Local0)
Return (Local0)
}
}Here you can adjust the fan control. For me personally, the AUTO mode is already nearly perfect (for me) and I've put a "turbo-FAN-Mode" on the ThinkVantage button.
Method (TCPU, 0, NotSerialized) / / Temperature Fan CPU Heatsink fashion Accordind
{
Store (\ _SB.PCI0.LPC.EC.TMP0, Local0)
If (LLessEqual (Local0, 0x32)) / / CPU temp is <50C =
{
Store (Zero, \ _SB.PCI0.LPC.EC.HFSP) / / Set FAN Off
}
If (LGreaterEqual (Local0, 0x55)) / / CPU temp is> 85C =
{
Store (0x40, \ _SB.PCI0.LPC.EC.HFSP) / / Set Fan Mode Disengaged - Total Maximum
}
Else {
If (LGreaterEqual (Local0, 0x4B)) / / CPU temp is> 75C =
{
Store (0x07, \ _SB.PCI0.LPC.EC.HFSP) / / Set Fan Mode 7 - Maximum Speed
}
Else {
If (LGreaterEqual (Local0, 0x46)) / / CPU temp is> 70C =
{
Store (0x04, \ _SB.PCI0.LPC.EC.HFSP) / / Set Fan Mode 4 - Medium Speed
}
Else {
If (LGreaterEqual (Local0, 0x41)) / / CPU temp is> 65C =
{
Store (0x02, \ _SB.PCI0.LPC.EC.HFSP) / / Set Fan Mode 2
}
Else {
If (LGreaterEqual (Local0, 0x3D)) / / CPU temp is> 61C =
{
Store (0x01, \ _SB.PCI0.LPC.EC.HFSP) / / set mode 1 FAN - Lowest Speed
}
}
}
}
}
Return (Local0)
}
As you can see the whole thing up here is designed so that the number "(Local0, 0x 3D)" for example is the 61 (Hex -> Dec converter see above). When the CPU now reaches 61 degrees or more, the fan goes "store (0x 01,\ _SB.PCI0.LPC.EC.HFSP)" in the mode 1 (here as a normal number). If I get it right it looks like this on W520:
Fan-Mode:
1 = 2100 rpm
2 = 2200 rpm
3 = 2900 rpm
4 +5 = 3500 rpm
6 +7 = 4050 rpm
"Turbo" = 4700 rpm
If you want you can adjust the entry now or use the AUTO-Mode like me.

Operating System Check:
The following code must be added after the "Windows" entries and before "If (LGreaterEqual (_REV, 0x02))."
Store (One, WNTF) Store (One, WXPF) Store (0x02, WSPV) Store (One, WVIS)

AppleHDA:
Set AppleHDA off and no need to delete AppleHDA.kext anymore after a system update.
/ * Fix - Disable auto loading AppleHDA.kext to use VoodooHDA.kext
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Name (_S3D, 0x03)
Name (RID, zero)
Name (_PRW, Package (0x02)
{
0x05,
0x04
})
Method (_PSW, 1, NotSerialized)
{
Noop
}
}
Fix End *
Find and replace.
ThinkVantage button as turbo-fan (optional):
Search the DSDT for "_Q19" and modify the entry as follows:

Scope (PCI0.LPC.EC)
{
Method (_Q19, 0, NotSerialized)
{
Name (FANS, One)
Store (HFSP, FANS)
XOr (FANS, 0x40, Local0)
If (Local0)
{
LED (0xFF, 0x80)
Store (0x40, HFSP)
}
Else
{
LED (0xFF, 0x80)
Store (0x80, HFSP)
}
}
}The "0x40" stand for the turbo-fan mode, and the "0x80" for the AUTO mode. The formula can of course be adjusted with other things if you want.
The fan control is based on the Heatsink A-value and not the CPU (A, B, C, D)-temparatures.
WLAN card exchange:
The whole thing must be done under Windows.
First we need a BIOS without a whitelist. The latest I've found (1.34):
http://www.sendspace.com/file/dx2hho
NOTE: It should be clear that the device CAN brick, for me it has worked fine, but it is probably always a minimal risk!
Download the 1.34 BIOS-Update from Lenovo for the W520 (not the bootable. ISO)

Then run the .exe but don't flash now.

Click Finish and go to this folder:

Replace the downloaded F1-file with the one inside the 8BET54WW-folder.
After that patch environment.dll (with a hex editor):
Code:
83 C4 14 89 45 E0 83 7D E0 00 74 31
by
83 C4 14 89 45 E0 83 7D E0 00 EB 31
to suppress "Fail to authenticate image!" error
Save and run the BIOS-update (WINUPTP.EXE) and follow the setup.
Then install the wireless card with HWMM (Hardware Maintenance Manual from Lenovo) (plug in the black + gray antenna cable)

in OS X, the card should now be recognized. To get AirDrop working type the following into terminal:
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
In DSDT we add the following entry under "Name (_ADR, zero)" in "Device (EXP2)" to:

Device (ARPT)
{
Name (_ADR, zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0A)
{
"AAPL slot-name"
Buffer (0x08)
{
"AirPort"
}
"Device_type"
Buffer (0x08)
{
"AirPort"
}
"Model",
Buffer (0x33)
{
"9281 Atheros 802.11 b / g / n Wireless Network Adapter"
}
"Subsystem-id",
Buffer (0x04)
{
0x8F, 0x00, 0x00, 0x00
}
"Subsystem-vendor-id",
Buffer (0x04)
{
0x6B, 0x10, 0x00, 0x00
}
}, Local0)
DTGP (arg0, arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}Now the card should be recognized as an Apple Airport Extreme (cause of the changed SubsysIDs). Depending on the wireless card the entry can / must be changed.

Greeting
If you have any questions feel free to ask!



Sign In
Create Account











