Jump to content

Lenovo ThinkPad T420 with UEFI Only


K0gen
 Share

5,273 posts in this topic

Recommended Posts

First and foremost happy new year! I hope everyone had a good time. I'm happy to see the progress everyone's made on this so far. I've read through the new posts and it looks like there have been some edits suggested for tluck's dsdt to fix hardware volume buttons. I also generated the ssdt from the script and everything is going well so far. Just a couple questions --- @tluck, does your new pack contain Manwe's dsdt fixes, and do those changes fix the hardware buttons? Also, has anyone been able to fix the logging in to the App Store/iBook Store issues?

Link to comment
Share on other sites

@honeywell - 

 

yes the new pack does contain a new DSDT. it contains manwe150's recent updates etc. so it does fix the built-in speaker loss after sleep problem - meaning it stays working after sleep! Sadly for me, the attempts/fixes to address UEFI problems are not effective but these are included nonetheless. Note: I boot clover from my MBR USB (instead of via UEFI from my HD) and have zero issues -- hw buttons work, no freeze/hangs, sleep/wake good, shutdown good,  volume levels stay in sync, mute works and does not hose the system. now with updated SSDT, its nearly perfect! 

 

oh.. what is the issue you have with App store?  I am not familiar with that.

Link to comment
Share on other sites

My solution of speaker no sound after sleep. (I can only use the Fn key and the power button to activate my W520. )

 

        Method (_L1D, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
        {
            Store (B1B2 (\_SB.PCI0.LPC.EC.HWK0, \_SB.PCI0.LPC.EC.HWK1), Local0)
            Store (Local0, RRBF)
            Sleep (0x0A)
            If (And (Local0, 0x02)) {}
            If (And (Local0, 0x04))
            {
                Notify (\_SB.LID, 0x02)
                Notify (\_SB.PCI0.HDEF, 0x02)  // Add this line
            }
            If (And (Local0, 0x08))
            {
                Notify (\_SB.SLPB, 0x02)
                Notify (\_SB.PCI0.HDEF, 0x02)  // Add this line
            }
            If (And (Local0, 0x10))
            {
                Notify (\_SB.SLPB, 0x02)
                Notify (\_SB.PCI0.HDEF, 0x02)  // Add this line
            }
            If (And (Local0, 0x40)) {}
            If (And (Local0, 0x80))
            {
                Notify (\_SB.SLPB, 0x02)
                Notify (\_SB.PCI0.HDEF, 0x02)  // Add this line
            }
        }
 

Edited by zhangqq
Link to comment
Share on other sites

@zhangqq - thanks for sharing your method - you may want to look at the dsdt in the zip which fixes the speaker (and other stuff) by _WAK fixes.

 

mavericks does not seem to supply the right sleep state via arg0 in _WAK - but we can provide it by getting it from what was set in _PTS and make sure sure arg0 is properly set in _WAK.

Link to comment
Share on other sites

Hey guys. So tluck's new pack is working great, but two things still don't work for me: sleep and mute. When I try to put my system to sleep, the screen goes blank and power button light flashes rapidly but the system never sleeps (and therefore is unable to wake). The other thing is mute - whenever I hit the mute button, my system freezes and I have to do a hard reset. Have there been any fixes for these yet? 

Link to comment
Share on other sites

@honeywell - Yup these are some of the UEFI issues that have plagued us all along. Booting from an MBR formatted USB stick has been rock-solid for me over the last few months.  Note: I will update the kext pack shortly with Rehabman's recent updates.

  • Like 2
Link to comment
Share on other sites

Hey guys,

Still having bad luck to install Clover on MBR. Using 10.8 with chameleon now.

Can someone give a clue where I might be wrong.

 

#1. I create two partition in USB drive with MBR partition table. 1 - 200MB msdos, 2 - what's remaining for the image.

#2. I download Clover_v2k_r2428 and install it to the 200MB partition changing only a single thing - "Install boot0af in MBR"

#3. I copy EFI directory from tluck's provided ZIP and overwrite everything inside the 200mb partition.

#4  I "install" os x using this command to the bigger partition: sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Mavericks.app —nointeraction

#5 I get "b1f init error". I managed to to clover once (randomly playing but can recreate this build). Even when I got there Mac OS installer wouldn't boot throwing plenty of errors this SMCreaderror.

 

Anyone can shed a light where I'm wrong.

 

Thanks!!

Link to comment
Share on other sites

i have not done an MBR based installer using the "mavericks method". but you may need to install clover after you create the USB content on the partition so it does not wipe out boot loader stuff clover puts there.

Link to comment
Share on other sites

Hi,

 

I'm trying to install this on W520. I have a few beginner questions:

1. What should I use for the 1920x1080 panel?

2. Should I use UEFI or MBR? Which one is more reliable? I have a separate hard drive for OS X, so I don't need to dual-boot Win 7, I can just select from BIOS / F12.

 

Link to comment
Share on other sites

@zsero -

if you take 1366x768 configuration - these do not have the custom EDID for 1600x900 - these might be best for your panel.  you will need to change/set DualLink=1 

 

i would start with UEFI  - i.e. create a GPT disk and install clover in the ESP. if you do have issues, the USB using MBR may be a workaround for the T520 too. 

 

clover does a nice job handling multiple boot environments whether on the same disk or separate.

 

just my opinions!

Link to comment
Share on other sites

whoops look i renamed the script to _kext-install-SLE.bash

it is in the kext/10.9 folder. 

 

you run like this:

 

cd ~/Downloads/T420/EFI/CLOVER/kexts/10.9 

./_kexts-install-SLE.bash

 

the script is simple -  looks for all the kexts in current folder and moves anything out of /S/L/E to /Extra/SLE-orig and then copies the kext to /S/L/E.

 

the idea is/was to aid in putting the files in the right folders in /System/Library/Extensions - especially the Bluetooth and eternet which are Plugins. 

 

The Kext Utility.app is good at installing the full kext such as FakeSMC or VoodooPS2...  or installing other misc 3rd party or upgrade kexts etc.

  • Like 1
Link to comment
Share on other sites

whoops look i renamed the script to _kext-install-SLE.bash

it is in the kext/10.9 folder.

 

the idea is/was to aid in putting the files in the right folders in /System/Library/Extensions - especially the Bluetooth and eternet which are Plugins. 

 

The Kext Utility.app is good at installing the full kext such as FakeSMC or VoodooPS2...  or installing other misc 3rd party or upgrade kexts etc.

Oups i did not pay attention for this

i only update 10.8.x HD not 10.9.x

great

for Bluetooth and eternet plugs I used to use a symbolic link

Your solution is better cos it takes permissions :)

thanks for this great extra ;)

Link to comment
Share on other sites

Hello

 

So, I decided to give 10.9 / UEFI a go on my Thinkpad.  It's an x220 (i5-2520M @ 2.5GHz).  Thanks to this thread in general, and to tluck's exceptionally helpful guide, I've got as far as a working 10.9 install using clover and the "generic" config.plist.  Everything (that's expected to) appears to work.  So far, so good.

 

However, going the "step further" to booting off the hard disk isn't going anywhere.  I've installed the latest Clover (r2482) and figured I'd give it a shot with tluck's T420 set.

 

Now, my x220 has a 1366x768 screen, so I renamed OEM/ProductID.1366x768 to OEM/4290CE3, slapped the various kexts into S/L/E using _kext-install-SLE.bash, created and installed my custom ssdt, synced, pulled the USB sticks, rebooted, and prayed.

 

Startup got as far as the Apple logo with spinning indicator, but crashed / hung with a black screen at the point windowserver was trying to come up.  Booting with -v got me no further, it was crashing / hanging at the point it stopped showing me anything.  Rebooting with the install stic's Clover was fine, nothing particularly useful in /var/log *except* a pile of cryptic WindowServer crashlogs.

 

So.  Figured it was either an extension or something in config.plist (dsdt.aml is identical between the "stock" and "OEM" setups, and I'd tried without my ssdt.aml).  Eventually, it was to do with the "Graphics" section in config.plist.

 

"Generic" config.plist

	<key>Graphics</key>
	<dict>
		<key>DualLink</key>
		<string>0</string>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>
	</dict>

from config.plist for the biggerer, betterer screen (OEM/ProductID.1600x900/config.plist)

	<key>Graphics</key>
	<dict>
		<key>Comment</key>
		<string>LCD 1600x900</string>
		<key>CustomEDID</key>
		<data>
		AP///////wAw5OICAAAAAAEUAQOAHxF46jOFmVZVkScXUFQAAAABAQEBAQEB
		AQEBAQEBAQEBgCVAgGCEGjAwIDUANq4QAAAYQB9AgGCEGjAwIDUANq4QAAAY
		AAAA/gBMZW5vdm8KICAgICAgAAAA/gAxNjAweDkwMAogICAgAMc=
		</data>
		<key>DualLink</key>
		<string>1</string>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>
		<key>InjectEDID</key>
		<true/>
	</dict>

And finally, from OEM/ProductID.1366x768/config.plist

	<key>Graphics</key>
	<dict>
		<key>Comment</key>
		<string>LCD 1366x768</string>
		<key>CustomEDID</key>
		<data>
		</data>
		<key>DualLink</key>
		<string>0</string>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>
		<key>InjectEDID</key>
		<true/>
	</dict>

Oh dear.  We appear to be trying to inject a null EDID.  Removing the CustomEDID and InjectEDID entries gets me booting.

 

I'm not sure if this is a complete fix.  I had troubles copying / merging the S/L/Displays/Overrides stuff when I was trying a 10.8 install, (and, in fact, haven't done it at all on this install) so I might be missing something obvious.  But a null EDID screams "trouble" to me.  Any idea how I'd go about generating a "proper" one?

 

Simon

Link to comment
Share on other sites

Strictly speaking, you shouldn't need one. I've never had issues with my monitor returning the wrong or invalid EDID, so I never needed to inject a patched one.

 

Never use a DSDT from a system that doesn't match your hardware (this thread is for any T420). You'll need to build your own (or find one for x220) from the list of DSDT patches (I made a thread for T420 a while back which you can try working from). You can get fairly close by using a dsdt from a similar system, but the random failure cases are unpredictable and generally fatal.

Link to comment
Share on other sites

@tufty

 

- sorry about the bogus entries in the low-res config.plist. i have fixed that and reposted the bundle

 

The Display overrides  I include, match a few known T420 monitor devices. especially the T420 1600x900 LCD that has a real EDID override as the built-in EDID not valid). As Manewe150 says, you may not need to replace your EDID unless you have problems. 

Certainly, you can take the Display files and change the Vendor/product IDs to match your LCD if you like. - just remove the EDID inside.

 

@T420 Users

 

I was waiting to post a new bundle as soon as 10.9.2 is out, but i have updated the bundle now with some kext and Clover updates....

 

 

Clover UEFI on T420 Guide

 

20-Jan-2014

  • updated to Clover b2482
  • cleaned up config.plist for low-res monitor
  • updated RehabMan's kexts - FakeSMC, VoodooPS2Controller, ACPIBatteryManager
  • Like 1
Link to comment
Share on other sites

hello and happy new year to all ,

 

@tufty i have the same laptop with 1366x768 screen (not ips), you can try or view inside my dsdt which has my EDID

here i upload my dsdt and ssdt look at them and see my previous posts generally for this laptop, i use clover with bios mbr not uefi and works good.

 

 
has a lot of info too
Link to comment
Share on other sites

@tufty i have the same laptop with 1366x768 screen (not ips), you can try or view inside my dsdt which has my EDID

here i upload my dsdt and ssdt look at them and see my previous posts generally for this laptop, i use clover with bios mbr not uefi and works good.

Thanks

 

Do you happen to know what patches you applied to your DSDT?

 

Simon

Link to comment
Share on other sites

i dont remember all the edits but i have the latest bios see thinkpads forum link last post... the best way is to update bios to this version then take your vanilla dsdt from windows and text compare it with mine , you'll see all the edits, a summary is irq edits for RTC , HPET etc.. battery edits for Rehabman kexts , IGPU edits for hd 3000 agpm power management with EDID , and all fixes compared to tluck dsdt , i think its the best dsdt for x220 :) you can find and all works ok , try with chameleon too cause in general i found that it works a little better with this particular laptop ( in general if you search you can find all the info you need for x220 hackintosh in all those threads (i posted a lot of experimental posts too) , you need time to read and understand what does what and to know what you are doing )

Link to comment
Share on other sites

i dont remember all the edits but i have the latest bios see thinkpads forum link last post... the best way is to update bios to this version then take your vanilla dsdt from windows and text compare it with mine , you'll see all the edits, a summary is irq edits for RTC , HPET etc.. battery edits for Rehabman kexts , IGPU edits for hd 3000 agpm power management with EDID , and all fixes compared to tluck dsdt , i think its the best dsdt for x220 :) you can find and all works ok , try with chameleon too cause in general i found that it works a little better with this particular laptop ( in general if you search you can find all the info you need for x220 hackintosh in all those threads (i posted a lot of experimental posts too) , you need time to read and understand what does what and to know what you are doing )

 

Windows?  Ain't no steenkin' Windows here :)  ... which is causing me a slight headache, actually; I'm going to need to de-whitelist my BIOS and the only patched version of 1.39 I can find (*ahem* yours *ahem*) requires Windows to update.

 

Your dsdt works impeccably on my machine, though.  Cheers

 

Simon

Link to comment
Share on other sites

i said win cause you need to extract a clean dsdt for comparison but it can be done with clover too ,anyway i always say the way i done it , good it works ok , i like my hackintosh's and the community, its a more personal way of computing i suppose :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...