Jump to content

Lenovo ThinkPad T420 with UEFI Only


K0gen
 Share

5,271 posts in this topic

Recommended Posts

Hi there!

 

Since you guys are using EmuVariableUefi driver when using Clover, please test new version. Details here: http://www.projectos...indpost&p=28411

 

Thanks.

 

Hi there,

 

The EmuVariableUefi driver seems to be working alright on my X220 but the CLOVERX64 driver made the whole boot really slow with lots of error messages. I couldn't get passed a white screen at the end after some fatal error related to SuperIODevice (I couldn't copy).

 

So I'm keeping only the EmuVariableUefi and discarding the other. UPDATE: this file is also causing the same problems as the cloverx64 driver; slow boot, lots of errors and the trackpad doesn't work after completing the boot (around 5 minutes...).

 

My system is now working more or less properly :thumbsup_anim: I have to recognise my utter dumbness: I wasn't placing the modified DSDT on the Patched folder but on the ACPI one, so nothing made sense and none of the changes applied on the dsdt worked.

 

The internal WWAN card is recognised and works with a valid SIM card on 3G networks, very fast and convenient. To connect I use this script:

http://www.mydellmin...module-osx.html

The setup is pretty straightforward if you know your service provider settings.

 

USB 3.0 works perfectly with the code added to the info.plist file suggested by Kogen Mantis on post #70.

 

I have sound working with the latest kext used by tluck (previous post). I have a slight sound distortion on higher volume outputs not present in Linux. Any idea of what values can be modified so I can play a little?

 

Bluetooth does not work because it is associated to the WLAN card. I'm still thinking about flashing the BIOS, I'm scared I'll brick my system :worried_anim: Do you need windows running to flash the BIOS? at the moment I only have OS X.

 

In my case the two finger scroll was working in the opposite direction, that can be changed setting the MultiFingerVerticalDivisor line to -1 found on the VoodooPS2Controller.kext->Contents->Plugins->VoodoooPS2Trackpad.kext->Contents->Info.plist

 

Brightness works adding the PNLF code on the DSDT. But it is too high :thumbsdown_anim: , the minimum setting is way higher than the minimum in Linux and it kills the battery. It's particularly annoying in a very dark room. Any ideas? I can't find the BNC, BNL and BNQ methods in my dsdt, where would you place them? Should I modify something on the info.plist?

 

The fingerprint reader works perfectly using the TrueSuite software from Authentec (http://support.authe.../TrueSuite.aspx).

  • Like 2
Link to comment
Share on other sites

i just switched over to Clover yesterday. i have dual boot osx and win7 (native uefi).

there is a learning curve for sure!!!

 

i am currently using b1208. i tried the b1316 (with the new directory layout ) but shows 12 GB of memory instead of 8GB so i backed off. + the b1316 shell crashes.

 

btw, what does emuvariableuefi do exactly?! - i have in place but was just curious as to what it fixes.

definitely needs the osxaptioFixDrv or the boot just hung after reading the kernel cache!

 

@k0gen - thanks!

Link to comment
Share on other sites

It's been awhile since my last post. Just wanted to let everyone know that thanks to cayspekko's donation I'm back and running with my T420 LCD screen replaced to a new one. Thank You again cayspekko!

 

It is good to see that people are progressing with the UEFI setup. Because I have lost all my previous work with the mSATA that is waiting to be found in my house - somewhere :) - I'll start from the beginning using my internal HDD. I'm not sure yet if I want to keep the windows by preparing dualboot setup but for sure I'll experiment a bit on my new motherboard original/older UEFI Bios (83ET65WW - 1.35 - no whitelist).

 

... btw, what does emuvariableuefi do exactly?! - i have in place but was just curious as to what it fixes.

definitely needs the osxaptioFixDrv or the boot just hung after reading the kernel cache!

 

@k0gen - thanks!

 

 

I'm not an expert - I guess dmazar should answer that - but if I understand it correctly the EmuVariableRuntimeDxe is essential for us (Phoenix UEFI users) to avoid long bootup time because of no runtime services are being present.

So instead of real NVRAM variables from the firmware we use emulated runtime variables from the memory to speed up the boot up time proces.

Link to comment
Share on other sites

I'm using clover 1344

tluck's dsdt.aml & AppleIntelSNBGraphicsFB.kext

DualLink to 0

i've 4 screens on my LCD (like i use to had in the past before using DualLink to 0)

 

CAN someone help please

issue is gone when AppleIntelSNBGraphicsFB.kext is get out /S/L/E but no acceleration and resolution is 1024x768 only

Link to comment
Share on other sites

I'm using clover 1344

tluck's dsdt.aml & AppleIntelSNBGraphicsFB.kext

DualLink to 0

i've 4 screens on my LCD (like i use to had in the past before using DualLink to 0)

 

CAN someone help please

issue is gone when AppleIntelSNBGraphicsFB.kext is get out /S/L/E but no acceleration and resolution is 1024x768 only

Change tluck dsdt.aml to DualLink 0 aswell

Link to comment
Share on other sites

hmm. for a 1600x900 resolution LCD (like mine) it needs DualLink 1 (default now apparently in clover now) otherwise it's very wide.

AppleInteSNBGraphicsFB.kext must be in /S/L/E (or put the patched ones in /EFI/Clover/kexts.) otherwise you wont get any display buffers.

 

i'm on clover 1208 currently. will try 1344 later today. Note: i had problems with 1316 - memory was reported as 12GB and the shell was crashing.

 

i think i figured out the sleep issue for some using clover - dont set AsusAICPUPM in the config.plist. i am using a patched AppleIntelCPUPowerManagement.kext and the rollback v1.3.5 (aka snowleopard) AppleACPIPlatform.kext instead. will report other findings as they crop up. To keep it simple and backward compatible, kept all the patched kexts as with chameleon. just booting with clover efi.

Link to comment
Share on other sites

@k0gen - glad you are back up and running.

 

i tried b1344 and it still reports 12GB of memory instead of 8GB. and the Shell crashes. not sure where to report these bugs/issues? i will stay on b1208 until i see this items fixed.

Link to comment
Share on other sites

@k0gen - glad you are back up and running.

 

i tried b1344 and it still reports 12GB of memory instead of 8GB. and the Shell crashes. not sure where to report these bugs/issues? i will stay on b1208 until i see this items fixed.

I'm under 1344, no issue with my 4Gb here. but the 2 last releases gave me a lot of work in fact.

Everything is ok now, but now i'll wait a bit to see if the next release are stables or not lol

Link to comment
Share on other sites

@k0gen - glad you are back up and running.

 

i tried b1344 and it still reports 12GB of memory instead of 8GB. and the Shell crashes. not sure where to report these bugs/issues? i will stay on b1208 until i see this items fixed.

Yes I have same thing on b1346:

post-112035-0-44147000-1366505497_thumb.png

I see apianti is doing all the memory changes, try contacting him on projectosx.

Link to comment
Share on other sites

@tetonne - that dsdt snippet is for a different codec than in my - some T420s may have cx20672 vs cs20590 codec. i dont know how different the pinouts. but it seems like someone had a x220 with that codec and got AppleHDA working now. dont really understand how the cached kexts loose sound? weird.

you are welcome.

 

@k0gen - well glad its not just me with the memory report of 12 vs 8GB.

 

clock question. i am still learning and adjusting to Clover... but i have a question for you and others:

 

does your box lose time? my date clock is off - it runs slow. after a few hours its off by several minutes when i boot with Clover. When i boot the same disk with Chameleon the clock stays accurate? i created a clean installation and ran it for a few hours and it was off by a lot.

  • Like 1
Link to comment
Share on other sites

@tetonne - that dsdt snippet is for a different codec than in my - some T420s may have cx20672 vs cs20590 codec. i dont know how different the pinouts. but it seems like someone had a x220 with that codec and got AppleHDA working now. dont really understand how the cached kexts loose sound? weird.

you are welcome.

 

@k0gen - well glad its not just me with the memory report of 12 vs 8GB.

 

clock question. i am still learning and adjusting to Clover... but i have a question for you and others:

 

does your box lose time? my date clock is off - it runs slow. after a few hours its off by several minutes when i boot with Clover. When i boot the same disk with Chameleon the clock stays accurate? i created a clean installation and ran it for a few hours and it was off by a lot.

 

tluck can you try adding:


<key>SMBIOS</key>
<dict>
<key>Trust</key>
<string>No</string>
</dict>

to your Clover config.plist and test out if the memory is still reporting 12GB?

I don't have a access to my t420 at the moment to test it out, but I guess this will fix the problem.

Also do share your working EFI folder - I'll start from the point your in, cause I still use 1050 that works best for me.

As for time I'm just guessing this might be the TSC sync causing all the mess - is your CPU reporting 2.51GHz or 2.5GHz?

Link to comment
Share on other sites

@k0gen

here is my /EFI that i am using with b1597 - the config.plist is the key to making it all work!!! i had to specify CpuFrequencyMhz and BusSpeedkHz as clover does not compute a speed of 2.50 GHz and the clock would not stay accurate - BusSpeed is key to getting my clock to stay on track.
 

<key>ACPI</key>
  <dict>
  <key>DropOemSSDT</key>
  <string>Yes</string>
  <key>FixDsdtMask</key>
  <string>0x0000</string>
  <key>GenerateCStates</key>
  <string>No</string>
  <key>GeneratePStates</key>
  <string>No</string>
</dict>

<key>CPU</key>
  <dict>
  <key>BusSpeedkHz</key>
  <string>99700</string>
  <key>CpuFrequencyMHz</key>
  <string>2500</string>
  <key>Turbo</key>
  <string>Yes</string>
</dict>

Note: I added the Microsoft EFI boot loader and can directly boot the Windows7 with EFI - did not have to reinstall. just had to fiddle with BCD to find the windows volume.

UPDATED: May-10-2013 - revised zip to include ssdt.aml from verleihnix (thanks!) and updated config.plist to NOT generate P/C states. (this fixed some wake from sleep issues for me)

 

UPDATED: see #202 for newer bundle for newer Clover.

Link to comment
Share on other sites

@tluck

Yes the config.plist customization is the key to perfect setup. But right now I'm trying to make a solution for all Lenovo UEFI users to have a easy way of installing the system. Then point them in the right direction to tweak their Clover config for a specific lenovo model and share their OEM folders here for others to follow.

 

You can use my Clover custom build based on 1229 - the last one that was not broken by the SMBIOS memory detection and alocation changes. I have also regressed the CPU TSC Sync calculation, so try it without defining the CpuFrequencyMHz and BusSpeedkHz.

The package will install all the necessary efi drivers, FakeSMC, ethernet and PS2 devices kexts. The config file is also fine tuned to run without any DSDT. So if anybody needs easy way to make recovery pen-drive just point the installer to correct media and you are ready to boot.

 

NOTE: Users with low resolution should edit config.plist and change DualLink from 1 to 0

post-112035-0-80583800-1366765469_thumb.png

  • Like 1
Link to comment
Share on other sites

I'm on 1306 on my T420, it's working great for me (apart from the sleep problem mentioned at: http://www.insanelymac.com/forum/topic/268280-guide-thinkpad-t420-with-mountain-lion/page__st__280#entry1910057, which also happened with old Clover) with the correct amount of memory reported with the SMBIOS Trust=No config setting mentioned above (I've got 8Gb and I was also getting 12Gb reported without that setting).

 

My config.plist is at:

https://www.dropbox.com/s/1wwwk3tvi6tp41a/config.plist

Link to comment
Share on other sites

@k0gen

Thank you for this guide. I have followed your instructions for my T420. I had to change model number to mine which is 4180AF6 Running stock BIOS version 1.44 and screen is 1600x900. Hard disk is OCZ-AGILITY3 (60GB SSD) which is recognised correctly with link speed of 6 Gigabit (SATA III) which I'm very happy about.

 

My main issue is that I have no sound. Please confirm that your set-up supports sound? and advise what might be wrong? Do I have to install VoodooHDA. Another issue is that I am still booting off USB - I did copy UFI folder to primary disk using your instructions but system does not even start to boot beyond Lenovo BIOS. I can select primary disk to boot but just comes flashes and returns to same UEFI/BIOS screen.

 

Regarding your post #117 should I install Clover_v2_r1229k0.zip?

 

Please forgive any mistakes in this my first post.

 

Enjoying OS X 10.8.3 so far on my T420 and hope I can get sound and WiFi in due course. (Have Dell DW1510 but think I need BIOS with no whitelist for it to work)

 

Now booting off primary!

 

Just double checked EFI partition and I had copied files into a sub EFI folder so moved them up one level. (there is already an APPLE folder here too)

 

Anyway now able to boot off system - USB stick not required. :-)

 

Now onto SOUND - please advise what logs I can review to try and determine issue or post here.

 

thanks

Link to comment
Share on other sites

Now onto SOUND - please advise what logs I can review to try and determine issue or post here.

 

thanks

 

AppleHDA.kext should work. You don't need VodooHDA. Which DSDT file are you using? Try placing the attached AppleHDA kext on the Extras folder, repair permissions, and check you have this lines on your dsdt file. You also have to remove the original AppleHDA kext placed on System/Library/Extensions/

 

Device (HDEF)
				 {
						 Name (_ADR, 0x001B0000)
						 Name (_S3D, 0x03)
						 Name (RID, Zero)
						 Name (_PRW, Package (0x02)
						 {
								 0x0D,
								 0x04
						 })
						 Method (_PSW, 1, NotSerialized)
						 {
								 Noop
						 }
					 Method (_DSM, 4, NotSerialized)
						 {
								 Store (Package (0x0A)
										 {
												 "codec-id",
												 Buffer (0x04)
												 {
													 0x6E, 0x50, 0xF1, 0x14
												 },
												 "layout-id",
												 Buffer (0x04)
												 {
												 // for 10.8.x use layout12
													 0x0C, 0x00, 0x00, 0x00
												 // 0x6E, 0x50, 0x00, 0x00
												 },
												 "PinConfigurations",
												 Buffer (Zero) {},
												 "hda-gfx",
												 Buffer (0x0A)
												 {
														 "onboard-1"
												 },
												 "device-type",
												 Buffer (0x11)
												 {
														 "Conexant CX20590"
												 }
										 }, Local0)
								 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
								 Return (Local0)
						 }
				 }

 

Credit for this goes to tluck (http://www.insanelym...n/page__st__160) I'm just pasting ^_^

AppleHDA.kext.zip

Link to comment
Share on other sites

@espamac - thanks! - btw, what laptop/codec do you have?

 

@wavelets - if you are on 10.8.3, then there is a slightly newer kext pack that has an updated 10.8.3 AppleHDA patched for CX20590.

what sound codec do you have - some T420s might have a different chip now.

 

see post #238 - just replace all the kexts in /S/L/E - but you know that!

 

i have a copy of these in my /EFI/kexts also. Note: the dsdt.aml goes in /EFI/CLOVER/ACPI/patched

and the HDEF section (per above) needs to match for ID 12.

 

@kogen

i am on Clover B1360 now... will try your package on my test disk later today. pretty cool.

so what do you mean exactly by regressing the TSC calculation? the logs show it calculates 2507 or 2508 MHz and then bus speed is around 100270 kHz. (which does not work for my system)

 

i need to use this to lower the bus speed or i get a lot of time drift:

 

 

<key>CPU</key>
<dict>
<key>BusSpeedkHz</key>
<string>99700</string>
<key>CpuFrequencyMHz</key>
<string>2500</string>
<key>Turbo</key>
<string>Yes</string>
</dict>

Link to comment
Share on other sites

@wavelets - Yes my setup supports sound but I admit that the first post is a bit outdated and needs some clarifications about getting the sound to work + extra knowledge from wonderful people like tluck, espamac, Tetonne and others. I'll try to find some free time this weekend and update the first post. (suggestions are welcomed)

1. You need whitelist to use Dell DW1510

2. Sure you can update to newer Clover but this won't fix the sound issue. Just folow Espamacs and tlucks instructions.

 

@tluck - by regressing I mean reverting to method used in Clover r1059 and earlier. Cause I have observed that in r1060 and newer my CPU is reported as 2.51GHz (out of sync) causing AppleHDA to behave strange - the sound after one second was flaky (rendering strange noise). I have never observed the actual clock time (there is no space for time within your mind :)) - but I guess this will also be out of sync. Just try my custom build and report if you still need to define the CPU parameters in config.plist

 

To all: I recommend using OEM folder when mastering your Clover config.plist, dsdt.aml, kexts whatever. This way you always have a minimal config that will let you boot to the system and fix things you have messed up in the OEM setup specific for your model. In that case you only need to boot to the EFI Shell and rename your OEM folder to someting else, for example:

EFI\OEM\4180A32 to EFI\OEM\4180A32-bad

or in new world Clover

EFI\CLOVER\OEM\4180A32 to EFI\CLOVER\OEM\4180A32-bad

This way Clover will ignore your OEM folder and boot from the main/default config.

  • Like 1
Link to comment
Share on other sites

@espamac, @tluck, @kogen

 

Thanks for the feedback. I did manage to get sound working just fine but no mic? Then I tried a few other things and managed to break sound.

 

@kogen My sound codec is Conexant 20672

 

Still on a steep learning curve with regards UEFI, Clover, kexts, dsdt etc. please bear with me - lots more reading/researching required!

 

@kogen if you do manage to find time to update guide I would really appreciate it and will be happy to test it out for you and feedback any results. Happy to start from scratch on my system as using as a learning exercise. I have spare disks so can re-test install if needed.

 

cheers

Link to comment
Share on other sites

@kogen - gotcha. i tested your package and it works fine. i put OEM/4236AT9 for my model specific stuff dsdt.aml and config.plist. clover will find this and use it over he generic top level config.plist (which i set up for running the OS installer - added kexts and options that wont kp!)

 

but the problem remained around clock speed - it set the bus to 100000 kHz and this causes problems for me. (these values can been seen in the Clover GUI by going to the Options/CPU tuning sub-menu). so i will continue to set the CPU values specifically to 2500/99700.

 

Anyway, i went ahead with and installed the more recent b1378 and that works fine too.

 

since the shell in these newer builds crashes, i copy over the b1208 shell. i put all the custom kexts in EFI so i can load them when needed for installation etc.

Link to comment
Share on other sites

...

but the problem remained around clock speed - it set the bus to 100000 kHz and this causes problems for me. (these values can been seen in the Clover GUI by going to the Options/CPU tuning sub-menu). so i will continue to set the CPU values specifically to 2500/99700.

 

Anyway, i went ahead with and installed the more recent b1378 and that works fine too.

...

Strange. Am I the only one that can't use newer Clover builds? The system is booting and hangs on:

macx_swapon SUCCESS

All works excelent on builds 1229 and earlyer. We share almost identical configuration (I don't have fingerprint reader) and I don't suffer the clock problems you describe on my build 1229. Any extra steps to replicate it?

Link to comment
Share on other sites

@kogen -

 

thats odd. i am using all the same kexts and dsdt.aml that I used to use for chameleon - no changes so i can still boot with a usb i-boot for emergency.

you can see my config.plist above - did you try that? although your config.plist its almost identical except for kext patching and graphics injection?

 

here are efi drivers i have in place

 

 

tluck@mac /EFI/CLOVER

 

Update: removed this first folder.

 

$ ls -1 drivers*

drivers64:

FSInject-64.efi

Ps2MouseDxe-64.efi

UsbMouseDxe-64.efi

 

drivers64UEFI:

EmuVariableUefi-64.efi

FSInject-64.efi

OsxAptioFixDrv-64.efi

OsxFatBinaryDrv-64.efi

VboxHfs-64.efi

Link to comment
Share on other sites

 Share

×
×
  • Create New...