Jump to content

[GUIDE] OS X Lion on ThinkPad W520

- - - - -

  • Please log in to reply
86 replies to this topic

#1
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
OS X Lion on ThinkPad W520:

In my case a NY424GE

Posted Image

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

Posted Image

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.

Posted Image

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:

Posted Image

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.

Posted Image

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

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

Posted Image

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

Posted Image

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:
Posted Image

Posted Image

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.

Posted Image

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:

Posted Image
Posted Image

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:

Posted Image
Posted Image

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

Posted Image

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:

Posted Image

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

Posted Image

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

Posted Image

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.

Posted Image

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)

Posted Image

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.

Posted Image

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

Posted Image

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

Posted Image


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

Posted Image

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

Posted Image

Thermal zone changes:

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

Posted Image


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

Posted Image

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:

Posted Image

Add the following entry to DSDT:

Posted Image

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

After that the following (my AUTO fan setting):

Posted Image


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.


Posted Image

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)

Posted Image

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:

Posted Image



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)


Posted Image

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

Posted Image

Click Finish and go to this folder:

Posted Image

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)

Posted Image

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:

Posted Image



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.

Posted Image

Greeting

If you have any questions feel free to ask!

Attached Files



#2
neckcutta

neckcutta

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
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!

#3
neckcutta

neckcutta

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
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?

#4
neckcutta

neckcutta

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts
S / L / E looks like this....
Posted Image

#5
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
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.

#6
blunts84

blunts84

    InsanelyMac Protégé

  • Members
  • Pip
  • 6 posts
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.

#7
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
Hey,

i just replied to your PM and added a screenshot in the guide. I hope it helps.

#8
neckcutta

neckcutta

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts

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?

#9
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria

upload your DSDT.



#10
Juraj

Juraj

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
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!

#11
JamesLittler

JamesLittler

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,022 posts
  • Gender:Male
  • Location:Portsmouth, England
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).

#12
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
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.

#13
Juraj

Juraj

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts

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.

#14
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria

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

#15
neckcutta

neckcutta

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts

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)
Posted Image
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, 25 December 2011 - 02:39 PM.


#16
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
hmmm... did you changed the Graphic Card entry to your 1000M in DSDT?

You can try:
http://osxdaily.com/...kes-from-sleep/

Maybe you can find something.

UPDATE: Nice to hear :wink2:

#17
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
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
Attached File  Lenovo-T510-dsdt.aml.zip   26.78KB   20 downloads

And here is raw dsdt with only errors/warnings fixed
Attached File  dsdt-v1.48-raw-noerrors-01 2.dsl.zip   49.64KB   2 downloads

Thank you!

#18
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria
sry, for me it worked without any tweaks. You can try Evoreboot.kext.

#19
devfom

devfom

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts
  • Gender:Male
  • Location:Russia
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 ##### 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.

#20
gothic860

gothic860

    InsanelyMac Protégé

  • Members
  • PipPip
  • 83 posts
  • Gender:Male
  • Location:Germany, Bavaria

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 ##### 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?





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy