Jump to content
InsanelyMac Forum
gothic860

[GUIDE] OS X Lion on ThinkPad W520

Recommended Posts

OS X Lion on ThinkPad W520:

 

In my case a NY424GE

 

29530kopie.jpg

 

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 :king: .

 

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)

- [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] Lion Edition (http://www.tonymacx8...forum.php?f=125)

- rBoot LE

- [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url]

- 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 [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] 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 [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] 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 [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] 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)

 

bildschirmfoto20111106u.png

 

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.

 

bildschirmfoto20111106uq.png

 

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:

 

bildschirmfoto20111205u.png

 

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.

 

bildschirmfoto20111106u.png

 

Finally, open the Finder, and create the folder "Extra" at "/".

 

Put the created "org.chameleon.Boot.plist" and "smbios.plist" inside this folder.

 

bildschirmfoto20111106uu.png

 

Now go further with [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] and check the following -> install:

 

bildschirmfoto20111106u.png

 

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:

bildschirmfoto20111107u.png

 

bildschirmfoto20111107u.png

 

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.

 

bildschirmfoto20111209u.png

 

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:

 

bildschirmfoto20111209u.png

bildschirmfoto20111117u.png

 

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:

 

bildschirmfoto20111106uo.png

bildschirmfoto20111106u.png

 

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

 

bildschirmfoto20111107u.png

 

AppleIntelCPUPowerManagement.kext Patching

In this case we have to patch the kext with Speedstepper.

http://www.insanelym...%20stepper&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:

 

bildschirmfoto20111106uu.png

 

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!)

 

bildschirmfoto20120105u.png

 

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

 

bildschirmfoto20111209u.png

 

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.

 

bildschirmfoto20111216ua.png

 

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)

 

bildschirmfoto20111114u.png

 

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.

 

bildschirmfoto20111208u.png

 

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":

 

bildschirmfoto20111202u.png

 

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

 

bildschirmfoto20111202u.png

 

  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)
	 }

 

bildschirmfoto20111202u.png

 

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

 

bildschirmfoto20111212u.png

 

Thermal zone changes:

 

Just from another nearly similar Notebook edited DSDT but it works...

 

bildschirmfoto20111202u.png

 


 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):

 

bildschirmfoto20111202uu.png

 

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:

 

bildschirmfoto20111208uj.png

 

Add the following entry to DSDT:

 

bildschirmfoto20111208u.png

 

Field (ECOR, ByteAcc, nolock, Preserve)
				 {
							 Offset (0x84)
					 HFN1, 16
				 }

 

After that the following (my AUTO fan setting):

 

bildschirmfoto20111208u.png

 

  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.

 

bildschirmfoto20111208un.png

 

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)

 

bildschirmfoto20111213u.png

 

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:

 

bildschirmfoto20111208uo.png

 

 

  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)

 

bildschirmfoto20120110u.png

 

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

 

bildschirmfoto20120110uh.png

 

Click Finish and go to this folder:

 

bildschirmfoto20120110u.png

 

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)

 

img0137he.jpg

 

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:

 

bildschirmfoto20111216uw.png

 

 

  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.

 

bildschirmfoto20111216u.png

 

Greeting

 

If you have any questions feel free to ask!

dsdt.aml.zip

Share this post


Link to post
Share on other sites
Advertisement

YES, YES, YES. Gothic, I love you (no homo) =)

i tried messing with the google translated version last night & decided there were way too many variables (between me being a newb & some communication getting lost in translation)

 

Will be giving this a try later tonight!

Share this post


Link to post
Share on other sites

Hey Gothic, thanks again for an excellent guide! I used your DSDT.aml at the end of your post. Worked like a charm. ScrLk/Pause for brightness = awesome! Play/pause/skip buttons work, etc. I had an issue with getting the comp to sleep. I've followed everything in

 

"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

"

but when I hit FN+F4, the comp starts going to sleep (the power button blinks) & in about 40 seconds, the computer restarts. I've double checked by extracting my current DSDT & verifying:

 

"

Device

(

RTC

)

{

Name (_HID, EisaId ("PNP0B00"))

Name (_CRS, ResourceTemplate ()

{

IO (Decode16,

0x0070, // Range Minimum

0x0070, // Range Maximum

0x00, // Alignment

0x02, // Length

)

})

}

"..... mine is

 

Device (RTC)

{

Name (_HID, EisaId ("PNP0B00"))

Name (_CRS, ResourceTemplate ()

{

IO (Decode16,

0x0070, // Range Minimum

0x0070, // Range Maximum

0x00, // Alignment

0x02, // Length

)

})

}

 

They look identical. What do you think may be the problem?

Oh, PS: the second line of terminal sudo code didn't prompt me for a password, is that normal?

Share this post


Link to post
Share on other sites

Please upload your DSDT. Maybe i can find something.

 

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

 

Should ask for password... if you haven't entered it before.

Share this post


Link to post
Share on other sites

Hey gothic you may ignore the pm i sent you earlier if you read this first since I figured out why I couldn't reply here (those tricky tests) :).

First of all I installed and tweaked my w520 solely with your guide and I would like to thank you for all the work you must have put into it. I must admit that few places got me stuck but in the end everything worked out or almost can't seem to get the track point working and my battery won't show anything but a battery icon and says there is no battery installed but those are minor hick-ups and I'm sure after some more reading it will all work out. Now i haven't gotten the wireless working yet because I just ordered the card but I have a question on the part where you pointed us to download 1.34 NON bootable .iso from lenovo . com's site but i could not find such iso on there the only versions they have on the us site is a bootable iso 8buj12uc.iso is the name and i was wondering if you can tell me if that's the correct one or if not can you please provide me with a link to the correct non-bootable iso. Tnx, Daniel.

Share this post


Link to post
Share on other sites

Please upload your DSDT. Maybe i can find something.

 

 

 

Should ask for password... if you haven't entered it before.

 

tried it again. it did prompt me for a password this time. still restarts after about 15-20 seconds of going to "sleep". any ideas?

Share this post


Link to post
Share on other sites

Hey guys! No need to force nvidia, Intel sandy bridge graphics also works. Even in optimus mode!

 

I was getting screen corruption with it until I applied the Duallink DSDT patch from this site:

 

http://olarila.com/forum/patches.php

 

BTW graphics acceleration still works in Optimus mode! (on Intel, I think). And in system report you can see two graphics cards (although both named untitled - Chameleon doesn't know how to inject when in optimus mode). It seems that with an easy DSDT fix we could get dual graphics working, and perhaps be able to switch with gfxcardstatus!

Share this post


Link to post
Share on other sites

Nice little guide you've written here, well done.

 

Just a suggestion:

1. Move all kexts in E/E to S/L/E.

2. Create your mkext using the following in terminal:

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext -z /System/Library/Extensions/

3. Delete the mkext and backup from Extra.

4. In your org.chameleon.boot.plist, set the following under kernel flags:

UseKernelCache=Yes

 

This will allow Lion to boot using caches (but will not use mkext in Extra), it will speed boot time quite a lot.

I also had USB issues until I did this (different hardware but still relevant).

Share this post


Link to post
Share on other sites

Hey,

thanks for the ideas.

I don't use /E/E, but with KernelCache i get GPU problems (lagging GUI, low Cinebench...). I don't know why but it isn't working for me.

 

for 3000HD:

I tried a lot of things with different SMBIOS.plist, changed DSDT stuff etc. but all the time i get Kernel Panic. For me its ok to use 2000M Quadro all the time because its 99% in dockingstations, but it would be nice to know how or if its possible.

Share this post


Link to post
Share on other sites

for 3000HD:

I tried a lot of things with different SMBIOS.plist, changed DSDT stuff etc. but all the time i get Kernel Panic. For me its ok to use 2000M Quadro all the time because its 99% in dockingstations, but it would be nice to know how or if its possible.

 

Really? Okay, I admit I was lazy and used iATKOS L2. I'll try to set up vanilla and figure out if possible what is needed to make 3000HD work. BTW you should try anyway the Duallink DSDT fix, as I couldn't get acceleration even with nVidia without it.

Share this post


Link to post
Share on other sites
try anyway the Duallink DSDT fix, as I couldn't get acceleration even with nVidia without it.

 

Works fine without, i will try some other stuff later today or tomorrow with HD3000 and 2000M maybe we can get it to work.

 

UPDATE: I get it working to see the 2 Cards in SystemInfo, but i don't think its possible to switch between them (gfxcardstatus tested).

Share this post


Link to post
Share on other sites

upload your DSDT.

i've replaced mine with the DSDT.aml.zip you attached at the end of the guide.

 

 

here's what happens (right after I back up AppleRTC.kext.orig)

nfiu7s.jpg

if i restart, it lets me put in the commands just fine (& asks me for password like it's supposed to)

but still, no sleep. it wakes itself up & reboots in about 20 seconds.

 

UPDATE: decided to fix my speedstep/turboboost in the meanwhile & followed all of your steps / deleted NullCPUPowerManagment.kext - now sleep works as well. Again, Gothic, killer guide!!!!!!

Edited by neckcutta

Share this post


Link to post
Share on other sites

Hello gothic860! I used your guide to fix some parts of my Lion installation on Lenovo T510 machine. But only one annoying thing is important for me - I can't complete shutdown it, fans continue spinning after display and all leds dimmed.

 

Can you try to deal with it? Is your W520 shutdown works perfect?

 

Here is my dsdt after fixing it with most of your patches in topic

Lenovo-T510-dsdt.aml.zip

 

And here is raw dsdt with only errors/warnings fixed

dsdt-v1.48-raw-noerrors-01 2.dsl.zip

 

Thank you!

Share this post


Link to post
Share on other sites

Hi gothic860, first of all thanks for you guide, and the seconds - I have some issues and I need some help.

 

I complete first step from your guide(I've formated my HDD as GUID, make 3 partitions, and on the one of them I've installed 10.7, in the next step installed bottolader and other kexts before first reboot), but after it I can't boot from HDD, without any errors I got Lenovo boot devices list.

 

Also, I don't have battery indication and I'm not sure about it work.

 

Did you check the "Laptop install" under [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] options?

 

And the last - I got working video(at least menu bar is transparent), but it's not so fast and is luggy.

 

Thank you for any help, and sorry for my English.

Share this post


Link to post
Share on other sites
make 3 partitions, and on the one of them I've installed 10.7, in the next step installed bottolader and other kexts before first reboot), but after it I can't boot from HDD, without any errors I got Lenovo boot devices list.

 

When you want to boot from GUID you need the rBoot LE DVD/CD.

 

Also, I don't have battery indication and I'm not sure about it work.

 

Maybe a part for the DSDT stuff. I don't know since i made the DSDT first and then installed this kext (i used VoodooBattery before but it wasn't working with iStats).

 

Did you check the "Laptop install" under [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] options?

 

Yes

 

And the last - I got working video(at least menu bar is transparent), but it's not so fast and is luggy.

 

GraphicsEnabler = Yes or DSDT? Changed the IDs for your 1000M in AGPM.kext?

Share this post


Link to post
Share on other sites

So I got MacOS to work.

 

Thanks for solution with GPT style partition I've patched installer and install Mac on MBR.

 

I've fixed GPU - so now it works fine, and I added it to DSDT.

 

I just have last issues: I don't have working battery(in this time I installed only AppleSmartBateryManager.kext and iStats always promt me "Charged" and system always think what I'm working from the battery. May be do you now what I must fix into DSDT?

 

And VoodoHDA always reset "SSE2" mark and sound is a bit laggy.

Share this post


Link to post
Share on other sites
I just have last issues: I don't have working battery(in this time I installed only AppleSmartBateryManager.kext and iStats always promt me "Charged" and system always think what I'm working from the battery. May be do you now what I must fix into DSDT?

 

It should look like:

bildschirmfoto20120105uj.png

(in Dockingstation / with power supply)

 

Just follow the DSDT stuff if it doesn't look like this.

 

And VoodoHDA always reset "SSE2" mark and sound is a bit laggy.

 

Yes thats normal. http://tonymacx86.co...hp?f=16&t=29436 (try it myself later)

Make sure you selected:

bildschirmfoto20120105u.png

 

(for me this is working fine)

Share this post


Link to post
Share on other sites

Just follow the DSDT stuff if it doesn't look like this.

 

I've followed your guide include DSDT sutff, but I did not see anything about battery on it.

 

Can you check my DSDT or write which part of "DSDT stuff" I must complete?

 

My DSDT.aml you can download here-> http://min.us/mbitIxLTop

Share this post


Link to post
Share on other sites

I don't changed anything for battery in DSDT so... i don't know why it isn't working for you sry.

 

EDIT: You used this:

 

bildschirmfoto20120106u.png

 

and installed it correctly with Kext Wizard?

Share this post


Link to post
Share on other sites

Yes, I've used this version and installed it with Kext Utility(for many times it works fine).

 

Also, in the first post you can add what VGA port also works fine, but I also got this situation: http://www.insanelymac.com/forum/index.php?showtopic=274268 and thinking about how to fix it.

 

And last question: do you know about some works with default Wi-Fi and card reader?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



×