Jump to content

[GUIDE] Lenovo ThinkPad T510/510i (plus T410 and W510) 10.6-10.7-10.8-10.9 all working OK! 2013.11.12 Update


joshhh
 Share

499 posts in this topic

Recommended Posts

So, Mountain Lion GM is out and basic guide to get it working on T510/510i (and some T410/410i with little modifications)

Basically most is same

We have basic part of kexts that doesn't change

-System monitoring

ACPISensors.kext

FakeSMC.kext

IntelCPUMonitor.kext

NVClockX.kext

-Laptop devices

AppleACPIPS2Nub.kext

VoodooPS2Controller.kext

AppleIntelE1000e.kext

ThinkpadUltraNav.kext

VoodooBattery.kext

 

And part that may change from update to update

AppleACPIPlatform.kext

AppleGraphicsPowerManagement.kext

AppleIntelCPUPowerManagement.kext

AppleLPC.kext

AppleRTC.kext

So part that changes

 

AppleLPC

Add string

<string>pci8086,3b07</string>

to Info.plist in section IOKitPersonalities - AppleLPC - IONameMatch

 

AppleRTC

Make binary patch to get rid of CMOS reset after every sleep

In Terminal run

sudo perl -pi -e 's|\x75\x30\x89\xd8|\xeb\x30\x89\xd8|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC

 

AppleintelCPUPowermanagement

Make binary patch to get speedster and turbo boost working well

 

perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement --patch

AppleHDA

Make patch for Conexant Cx20585 codec

sudo perl -pi -e 's|\x84\x19\xd4\x11|\x69\x50\xf1\x14|g' AppleHDA

and then replace layout12.xml.zlib and Platforms.xml.zlib in Resources

also we need to replace Info.plist in AppleHDAHardwareConfigDriver.kext in /Plugins folder

AppleGraphicsPowerManagement

In section MacBookPro6,2 duplicate one of following sections with 10de vendor and rename it to Vendor10deDevice0a6с

 

AppleACPIPlatform

Needs to be replaced with version 1.3.5 from Snow Leopard to get sleep and USB after sleep working correct

ALSO

Whitelisted BIOS v1.51

Also I've patched latest BIOS to remove whitelist for WLAN/WWAN cards

And new updated DSDT extracted from 1.51 bios to come

Kext pack, whitelisted BIOS and DSDT will be little later

See ya!

  • Like 2
Link to comment
Share on other sites

So folks I need to get answer - Do you need a single patch file that could be run and perform all fixes on each system updates?

 

Now it takes about 10-15 minutes to patch and fix all files on each system update, with patch file it will be only few seconds

  • Like 2
Link to comment
Share on other sites

So folks I need to get answer - Do you need a single patch file that could be run and perform all fixes on each system updates?

 

Now it takes about 10-15 minutes to patch and fix all files on each system update, with patch file it will be only few seconds

I think it would be great if you will post both: one patch for all (installer) and files, which we can install and patch by ourselves =)

Link to comment
Share on other sites

A patcher in form of a installer who installs the bootloader, the nessesary kexts and the dsdt would be the perfect solution. If this takes more time, it never mind.

 

Everybody do the same and nobody forget something to patch or modify, so its easier to fix problems.

 

I thinks thats a advantage of a installer

 

So we have to install and boot the ML with a future release of ###### and apply your installer to have a fully working OSX86 ThinkBook.

Link to comment
Share on other sites

Thats true, but the installer can also be a shell script, that shouldn't be as complex as a installer app.

Oh no, the scripts sometimes are very hard to make =)

I'm telling it as unix engineer =)))

Link to comment
Share on other sites

Yeah, I stopped on shell script patch as easiest way to patch some system files

Installer is good idea, but it takes too much time to test all possible situations with it

Link to comment
Share on other sites

Short installation guide for OSX 10.8 Mountain Lion

 

As [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] and usb-flash installation methods is too difficult for most users, there is one easy method

 

What do we need:

Install OS X Mountain Lion.app from AppStore

One empty partition on hdd or usb flash

 

Step 0:

 

Prepare partition for installation. Should have GUID partition table.

For example our partition name is Mountain Lion

 

Step 1:

 

Open Install OS X Mountain Lion.app with Show Package Contents

Go to Contents/SharedSupport/ folder

Mount InstallESD.dmg image

 

Step 2:

 

Now we got Mounted removable drive Mac OS X Install ESD

 

Open Terminal and run the following commands

 

sudo installer -verbose -pkg "/Volumes/Mac OS X Install ESD/Packages/OSInstall.mpkg" -tgt /Volumes/Mountain Lion

 

Mountain Lion is our installation partition

 

Installation takes some time, about 10-20 minutes depending on drive speed

 

Step 3:

 

On Installed system drive

Remove Kext caches from /System/Library/Caches

Copy Extra folder with dsdt and Kexts to /System/Library/Extensions

Install Chameleon boot loader if drive is single and you planning to use it without your working system

 

Reboot to new system

 

Step 4:

 

In new system repare permissions from terminal or with Kext Utility

Reboot one more time after that

 

It's done

  • Like 1
Link to comment
Share on other sites

Thank you, joshhh. Now ML is on my T510.

 

Your AppleIntelE1000e.kext is 1.6.2, and it should be replaced by new 2.0 one. My netcard can't reconnect if I plug out the cable. New kext fixes the problem.

 

Almost everything else works well. Only one thing bothers me: I can not save the brightness setting.

My display is too bright with 100% value. It will be great if the brightness defaults to 20%.

 

I know how to adjust the default brightness with my old DSDT.aml file, but it doesn't work on the new one you posted above. Can you tell me how to do it?

Link to comment
Share on other sites

Ok I'll update Intel Lan driver today

 

About brightness

 

Lets show how ACPI subsystem control brightness

 

In DSDT we got few methods that define default levels

 

Scope (PCI0.LPC.EC)
    {
	    Name (BRTW, Package (0x17)
	    {
		    0x50,
		    0x32,
		    Zero,
		    0x05,
		    0x0A,
		    0x0F,
		    0x14,
		    0x19,
		    0x1E,
		    0x23,
		    0x28,
		    0x2D,
		    0x32,
		    0x37,
		    0x3C,
		    0x41,
		    0x46,
		    0x4B,
		    0x50,
		    0x55,
		    0x5A,
		    0x5F,
		    0x64
	    })

 

First two values is default brightness levels for AC and battery connected

 

0x50,

0x32,

 

other values is brightness levels when we move slider or press buttons

 

The problem with max level may occur because I've changed levels and replaced it with levels from macbook pro 6.2

 

Lenovo T510 DSDT had different levels

 

Scope (PCI0.LPC.EC)
    {
	    Name (BRTW, Package (0x12)
	    {
		    0x14,
		    0x14,
		    One,
		    0x02,
		    0x03,
		    0x04,
		    0x05,
		    0x07,
		    0x0A,
		    0x0D,
		    0x11,
		    0x16,
		    0x1D,
		    0x26,
		    0x31,
		    0x3F,
		    0x50,
		    0x64
	    })

 

So you can try to change your levels to previous array and set default levels from x64=100% to x14=20%

 

So final section is

 

Scope (PCI0.LPC.EC)
    {
	    Name (BRTW, Package (0x12)
	    {
		    0x64,
		    0x64,
		    One,
		    0x02,
		    0x03,
		    0x04,
		    0x05,
		    0x07,
		    0x0A,
		    0x0D,
		    0x11,
		    0x16,
		    0x1D,
		    0x26,
		    0x31,
		    0x3F,
		    0x50,
		    0x64
	    })

 

And the last - ML has bug with brightness levels on some laptops and it may cause it to ours

 

 

Thank you, joshhh. Now ML is on my T510.

 

Your AppleIntelE1000e.kext is 1.6.2, and it should be replaced by new 2.0 one. My netcard can't reconnect if I plug out the cable. New kext fixes the problem.

 

Almost everything else works well. Only one thing bothers me: I can not save the brightness setting.

My display is too bright with 100% value. It will be great if the brightness defaults to 20%.

 

I know how to adjust the default brightness with my old DSDT.aml file, but it doesn't work on the new one you posted above. Can you tell me how to do it?

 

 

 

I'll try to test all possible combinations of FN+Fxxx buttons that cause freezes and remove that methods from DSDT

 

About screen with external monitor, i have some possible ways to solve this but don't have much time to implement and test

 

 

 

Looks very awesome! ML runs very well on my T510.

 

Some founded bugs:

  • FN+F7 = Freeze
  • Docking Headphone Jacks doesn't work
  • If I'm using a external monitor and the notebook is closed, the internal display don't deactivate

Link to comment
Share on other sites

joshhh, I got no luck with your code. I tried the value x14 with both your T510 and macbook pro 6.2 DSDTs, but nothing changed, and the brightness was fixed at 100%.

 

Here is a block code from my old DSDT.aml file. I can adjust the default brightness value by changing the last line of "@0,NVMT" section (/* 0058 */). I have been trying migrating following code to your DSDT.aml, but because I know little about DSDT, I haven't have any luck do it right. Will this method work?

 

Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x08)
                           {
                               "AAPL,backlight-control", 
                               Buffer (0x04)
                               {
                                   0x01, 0x00, 0x00, 0x00
                               }, 
                               "@0,NVMT", 
                               Buffer (0x60)
                               {
                                   /* 0000 */    0x0B, 0x03, 0xFF, 0x20, 0x06, 0x10, 0x90, 0x9C, 
                                   /* 0008 */    0x00, 0x05, 0x20, 0x03, 0x8F, 0x05, 0x30, 0x05, 
                                   /* 0010 */    0x50, 0x05, 0x00, 0x00, 0x4E, 0x03, 0x23, 0x03, 
                                   /* 0018 */    0x29, 0x03, 0x00, 0x00, 0x20, 0x43, 0x52, 0x04, 
                                   /* 0020 */    0x00, 0x00, 0x01, 0x01, 0xE0, 0x00, 0x00, 0x00, 
                                   /* 0028 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0030 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0038 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0040 */    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 
                                   /* 0048 */    0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x10, 0x05, 
                                   /* 0050 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0058 */    0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00
                               }, 
                               "@0,backlight-control", 
                               Buffer (0x04)
                               {
                                   0x01, 0x00, 0x00, 0x00
                               }, 
                               "@0,pwm-info", 
                               Buffer (0x14)
                               {
                                   /* 0000 */    0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00, 
                                   /* 0008 */    0x1C, 0x02, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 
                                   /* 0010 */    0x00, 0x04, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }

Link to comment
Share on other sites

That is pretty simple and I can help you with dsdt edits

 

What values you set in last line to get proper brightness? And how to define and calculate my own for example? I think 10.8 has a real bug with brightness levels restoration after reboot

 

 

joshhh, I got no luck with your code. I tried the value x14 with both your T510 and macbook pro 6.2 DSDTs, but nothing changed, and the brightness was fixed at 100%.

 

Here is a block code from my old DSDT.aml file. I can adjust the default brightness value by changing the last line of "@0,NVMT" section (/* 0058 */). I have been trying migrating following code to your DSDT.aml, but because I know little about DSDT, I haven't have any luck do it right. Will this method work?

 

Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"AAPL,backlight-control",
							Buffer (0x04)
							{
								0x01, 0x00, 0x00, 0x00
							},
							"@0,NVMT",
							Buffer (0x60)
							{
								/* 0000 */	0x0B, 0x03, 0xFF, 0x20, 0x06, 0x10, 0x90, 0x9C,
								/* 0008 */	0x00, 0x05, 0x20, 0x03, 0x8F, 0x05, 0x30, 0x05,
								/* 0010 */	0x50, 0x05, 0x00, 0x00, 0x4E, 0x03, 0x23, 0x03,
								/* 0018 */	0x29, 0x03, 0x00, 0x00, 0x20, 0x43, 0x52, 0x04,
								/* 0020 */	0x00, 0x00, 0x01, 0x01, 0xE0, 0x00, 0x00, 0x00,
								/* 0028 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
								/* 0030 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
								/* 0038 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
								/* 0040 */	0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
								/* 0048 */	0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x10, 0x05,
								/* 0050 */	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
								/* 0058 */	0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00
							},
							"@0,backlight-control",
							Buffer (0x04)
							{
								0x01, 0x00, 0x00, 0x00
							},
							"@0,pwm-info",
							Buffer (0x14)
							{
								/* 0000 */	0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
								/* 0008 */	0x1C, 0x02, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
								/* 0010 */	0x00, 0x04, 0x00, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

Link to comment
Share on other sites

It's said the last line can be one of these (from dark to bright):

 

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x03, 0x03
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x06, 0x06
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x09, 0x09
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x0C, 0x0C
0x00, 0x08, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00

 

The values I gave on my last post are what I used for my lion system. I think they should be ok.

 

There is no

"@0,NVMT"

block on your dsdt, and I have tried copy the block into it, but my laptop booted up Mountain Lion with a black screen with my modified dsdt file. I have no idea what was wrong.

Link to comment
Share on other sites

What exactly values this line is define?

 

 

I'll try to check new dsdt with NVMT codes today

 

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 - 100%?
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x03, 0x03 - 80%?
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x06, 0x06 -etc
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x09, 0x09 -etc
0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x0C, 0x0C -etc
0x00, 0x08, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00 -etc

 

It's said the last line can be one of these (from dark to bright):

 

*******

 

The values I gave on my last post are what I used for my lion system. I think they should be ok.

 

There is no

"@0,NVMT"

block on your dsdt, and I have tried copy the block into it, but my laptop booted up Mountain Lion with a black screen with my modified dsdt file. I have no idea what was wrong.

Link to comment
Share on other sites

Sorry. I know the code block may allow me adjust default brightness, but I don't know the details.

 

Some said it might work like this (he wasn't sure):

 

 

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 - level1

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x03, 0x03 - level2

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x06, 0x06 - level3

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x09, 0x09 - level4

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x0C, 0x0C - level5

0x00, 0x08, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00 - level6

 

I copy the code block from here, it is in Chinese. I translate the first post here:

 

 

How to set default brightness -- should work on all laptops that can adjust brightness

If there isn't @0,NVMT block, you need to add one. Its values are:

0B03FF20 0610909C 00052003 8F053005 50050000 4E032303 29030000 20435204 00000101 E0000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFF0000 00000000 40FF1005 01000000 00000000 00080000 80000000

 

The last value 80000000 is the value of AppleBacklightAtBoot in PNLF. I use the value of macbook air2,1. It is 80030000, which should be 0x380. After my modification, the brightness should be 0x80.

Link to comment
Share on other sites

Tried NVMT with my dsdt with no luck, brightness changes on reboot but after few seconds acreen blinks with strange back squares and after that goes to reboot

 

On weekend try to fix dsdt for native BCL and other brightness methods from real macs

 

Sorry. I know the code block may allow me adjust default brightness, but I don't know the details.

 

Some said it might work like this (he wasn't sure):

 

 

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 - level1

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x03, 0x03 - level2

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x06, 0x06 - level3

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x09, 0x09 - level4

0x00, 0x08, 0x00, 0x00, 0x30, 0x01, 0x0C, 0x0C - level5

0x00, 0x08, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00 - level6

 

I copy the code block from here, it is in Chinese. I translate the first post here:

 

 

How to set default brightness -- should work on all laptops that can adjust brightness

If there isn't @0,NVMT block, you need to add one. Its values are:

0B03FF20 0610909C 00052003 8F053005 50050000 4E032303 29030000 20435204 00000101 E0000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFF0000 00000000 40FF1005 01000000 00000000 00080000 80000000

 

The last value 80000000 is the value of AppleBacklightAtBoot in PNLF. I use the value of macbook air2,1. It is 80030000, which should be 0x380. After my modification, the brightness should be 0x80.

Link to comment
Share on other sites

Tried few dsdt methods to fix brightness, both works but computer reboots after 10-15 seconds on logon

 

That is something more dsdt specific in T/W series dsdts(man from another forum said - never seen so buggy dsdt) because other lentos does'n have this issues

 

Thats why we loose usb after sleep with native AppleACPIPlatform and still use one from Snow Leopard!

 

joshhh, have you tried it? Any good news?
Link to comment
Share on other sites

 Share

×
×
  • Create New...