Jump to content

Lenovo ThinkPad T420 with UEFI Only


K0gen
 Share

5,271 posts in this topic

Recommended Posts

@ag6952563 - If you are using Clover r1597 in old folder structure, this can only mean that developers made Clover backwards compatible - interesting.

Anyways if you plan to still use chameleon - keep your kexts in /S/L/E (cause those injected by Clover won't be loaded). But I suggest you to move all your custom kexts from /S/L/E to /E/E and use myHack to deal with installing custom kexts, rebuilding system and kernel caches, fixing permissions etc.

I'm guessing that tluck is using "CLOVER/kexts/10.8" folder to share his custom kexts with others but he still have them installed in /S/L/E, cause not all kexts can be injected by Clover (and work). As for default partition for booting you can set it just like on normal mac using System preferences > Startup disk but for this to work nvram.plist file is needed cause we are using EmuVariableUefi-64.efi driver for settings storage (just install clover rc-scripts).

I'll soon finish my latest Clover custom build that will install config files compatible with our lenovos, themes, drivers, rc-scripts, etc. Stay tuned.

 

@all - I was thinking about adding custom OEM folders. For those that have HD (not HD+) displays that need DualLink = 0 or t420s series that have USB3 or maybe other models like x220, t520 etc. I just need people with supported hardware to step in and share details about their setup (what is different from t420, what needs to be added/removed). We could make one Combo EFI package that will work for all UEFI enabled ThinkPads.

 

UPDATE: I have just finished my custom build mentioned above (no OEM folders yet -actualy there is one for 4180A32 that includes dsdt and ssdt from tluck). This one is based on Clover r1625 and has all the stuff Lenovo UEFI user needs. This one is enabled to install to ESP by default with ThinkPad Theme and RC scripts. User has choice to install Clover Preference PaneI and Optional RC scripts. I have modified touchpad driver default pseudo-multigestures actions as follows:

4 fingers down - shows desktop (F11)

4 fingers up - shows mission control (Ctrl + Up)

4 fingers right - shows widgets (Ctr + Left)

4 fingers left - shows fullscrean apps (Ctrl + Right)

Again this one is for HD+ LCD by default - so HD (low res.) users change DualLink from 1 to 0 in config.plist

post-112035-0-29947700-1368404003_thumb.pngpost-112035-0-53522000-1368404018_thumb.pngpost-112035-0-60204500-1368404031_thumb.pngpost-112035-0-56752300-1368404042_thumb.png

Clover_v2_r1625k0.pkg.zip

Edited by Kogen Mantis
  • Like 1
Link to comment
Share on other sites

Hey guys! Clover sounds amazing, especially with the elimination of graphics hangs. I actually have a couple of questions regarding how to get a working Clover + 10.8.3 working. Right now I'm using Chameleon and 10.8.3 with tluck's kext pack. Does booting with UEFI decrease boot time? Does Clover use kexts? If I were to do a clean install with Clover, will using a UniB34st USB work (instead of a Lion DiskMaker USB)? Actually, is anyone willing to type up very detailed step-by-step instructions on how to do this from the beginning? I'm just a bit confused as to where to place all the files you guys have kindly uploaded. Lastly, is there some sort of updated pack for all of this? The Combo EFI package Kogen describes sounds great. Thanks for working on all of this, everyone.

Link to comment
Share on other sites

regarding directory structure. Clover expects to find stuff in /EFI/CLOVER as of build 1287 or something close to that. i would try to make that work as that is consistent with the installer etc.

/EFI/BOOT

/EFI/CLOVER

/EFI/Microsoft

 

 

Personally, I just kept the same structure as i had with chameleon - so i put custom kexts in /S/L/E as i dont use the myHack method of merging /E/E and /S/L/E . Clover does not use or read anything from /Extra. but i can see the merit of the myhack method. but yes you want to have the custom kexts in OSX (i.e. /S/L/E) vs EFI so you can boot from the cached versions. Clover is a faster boot - from Clover GUI to login prompt is like 15-20 seconds.

 

clover looks for /EFI/CLOVER/OEM/<PRODUCTMODEL> for your model specific files: config.plist and other stuff like dsdt.aml ssdt.aml etc.

if it cant find OEM, then it uses /EFI/CLOVER/config.plist. kogen is correct. i keep a copy of the custom kexts in /EFI/CLOVER/kexts/10.8.

This allows it to boot a vanilla install of 10.8.3 (this config.plist has extra options - WithKexts NoCaches) clover injects these (custom) kexts from the EFI partition in first and then any dupes in /S/L/E are ignored. since this very slow booting - i dont use these options for my production OSX.

 

@honeywell. it is really pretty simple frankly given you have a working hack on chameleon.

 

make sure bios is set to use UEFI boot.

format disk GUID

install or copy OSX to disk0s2 (2nd partition).

install clover stuff in EFI (1st partition). kogens installer is very easy to use. however, his dsdt.aml did not work for me. so i just used what i was using before.

 

Note: i have packaged and posted my /EFI/CLOVER folder - see #115 to offer some alternatives - which include tweaks to config.plist that i found make my box work better. i find that clover does not compute C-states or clockspeed for my box well. so i reverted to ssdt.aml and override busspeed etc.

Link to comment
Share on other sites

@honeywell - we won't support software you are mentioning so I suggest you use Lion DiskMaker (it's nice and easy - just like on real mac). I'll update first post soon to reflect changes and interesting info found in this thread. But in general the steps you need to take is:

1. Create install media using Lion DiskMaker

2. Use my custom Clover pkg to install Clover on install media

3. Boot from prepared pen-drive and install OS X

4. Repeat step 2 this time pointing to your hard drive

5. Start making your CLOVER/OEM/<PRODUCTMODEL> based on 4180A32

6. Install missing kexts using myHack (Sound, Battery, ACPI-1.3.5 and others if you need them)

 

@tluck - actually the new installer includes your dsdt and ssdt. I didn't have time to touch my dsdt and because yours works for others I've decided to use it :)

Link to comment
Share on other sites

regarding directory structure. Clover expects to find stuff in /EFI/CLOVER as of build 1287 or something close to that. i would try to make that work as that is consistent with the installer etc.

/EFI/BOOT

/EFI/CLOVER

/EFI/Microsoft

 

 

Personally, I just kept the same structure as i had with chameleon - so i put custom kexts in /S/L/E as i dont use the myHack method of merging /E/E and /S/L/E . Clover does not use or read anything from /Extra. but i can see the merit of the myhack method. but yes you want to have the custom kexts in OSX (i.e. /S/L/E) vs EFI so you can boot from the cached versions. Clover is a faster boot - from Clover GUI to login prompt is like 15-20 seconds.

 

clover looks for /EFI/CLOVER/OEM/<PRODUCTMODEL> for your model specific files: config.plist and other stuff like dsdt.aml ssdt.aml etc.

if it cant find OEM, then it uses /EFI/CLOVER/config.plist. kogen is correct. i keep a copy of the custom kexts in /EFI/CLOVER/kexts/10.8.

This allows it to boot a vanilla install of 10.8.3 (this config.plist has extra options - WithKexts NoCaches) clover injects these (custom) kexts from the EFI partition in first and then any dupes in /S/L/E are ignored. since this very slow booting - i dont use these options for my production OSX.

 

@honeywell. it is really pretty simple frankly given you have a working hack on chameleon.

 

make sure bios is set to use UEFI boot.

format disk GUID

install or copy OSX to disk0s2 (2nd partition).

install clover stuff in EFI (1st partition). kogens installer is very easy to use. however, his dsdt.aml did not work for me. so i just used what i was using before.

 

Note: i have packaged and posted my /EFI/CLOVER folder - see #115 to offer some alternatives - which include tweaks to config.plist that i found make my box work better. i find that clover does not compute C-states or clockspeed for my box well. so i reverted to ssdt.aml and override busspeed etc.

 

Thanks tluck, Kogen.

You are right about the structure, the new release is looking into /EFI/CLOVER. Since I tried different things, I ended up installing an older version of CLOVER, and that's why it was using the old file structure. I reinstalled the latest version, and indeed, it looks at /EFI/CLOVER.

 

Regards,

AJ

Link to comment
Share on other sites

Hello I have install on my Lenovo T420 with 1366x768 pixel screen (Product ID: 4236JY2) OS X 10.8.3

I have use your last tutorial @Kogen message : #155

I Have rename my /EFI/CLOVER/OEM/4236JY2 and i have changed DualLink from 1 to 0 in config.plist

All work except I have a screen problem (i have 4 Screen on the desktop)

Did you have a solution ?

 

Sorry for my English i'm French

Link to comment
Share on other sites

@360game360

 

do you know to edit the dsdt.aml? the one packaged has DualLink set to 1

 

change 0x01 to 0x00 or remove this section in red.

 

 

Device (IGPU)

{

Name (_ADR, 0x00020000)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x0C)

{

"AAPL00,DualLink",

Buffer (0x04)

{

0x01, 0x00, 0x00, 0x00

},

PS votre anglais est plus meilleur que mon français!

 

 

@kogen - perhaps DualLink should be removed from dsdt.aml, and let people set this config.plist?

  • Like 1
Link to comment
Share on other sites

@360game360

 

do you know to edit the dsdt.aml? the one packaged has DualLink set to 1

 

change 0x01 to 0x00 or remove this section in red.

 

 

Device (IGPU)

{

Name (_ADR, 0x00020000)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x0C)

{

"AAPL00,DualLink",

Buffer (0x04)

{

0x01, 0x00, 0x00, 0x00

},

PS votre anglais est plus meilleur que mon français!

 

 

@kogen - perhaps DualLink should be removed from dsdt.aml, and let people set this config.plist?

tluck dsdt.aml with duallink to 0

can be found here :

 

 

<key>DualLink</key>

<string>0</string> in config

all thnaks to tluck

 

some OEM

may be use by

Kogen Mantis' installer :)

 

dsdt.aml is tluck production :)

Link to comment
Share on other sites

@tluck - Yes I was thinking about the same thing. Now that Clover is doing DualLink patching for us we don't need it in dsdt.aml. I'll change that in the next release.

 

BTW: how should we call the Installer?

 

- ThinkPad EFI Pack

- Clover for ThinkPads

- Clover ThinkPad Edition

- other? (add your suggestions)

Link to comment
Share on other sites

Good Idea for

Clover EFI ThinkPad Edition

 

 

Thanks to @Kogen,@Tluck and Tetonne my screen work good now

I've install Kext Blutooth by Tetonne with Kext Wizard But my Bluetooth doesn't work :/ I can't activate with Fn + F5 and i didn't show on the panel bluetooth :/

 

and my Imessage doesn't work too i have a connection impossible

 

My config.plist on EFI/Clover/OEM/4236JY2 :

 

 

 

<dict>

<key>BiosReleaseDate</key>

<string>04/22/11</string>

<key>BiosVendor</key>

<string>Apple Inc.</string>

<key>BiosVersion</key>

<string>MBP81.88Z.0047.B0E.1104221557</string>

<key>BoardSerialNumber</key>

<string>CMX77JGTPUT354126</string>

<key>Manufacturer</key>

<string>Apple Inc.</string>

<key>ProductName</key>

<string>MacBookPro8,1</string>

<key>SerialNumber</key>

<string>CMX77JGTPUT354126</string>

<key>Version</key>

<string>1.0</string>

</dict>

<key>SystemParameters</key>

<dict>

 

Thank you in advance I shall like I can pay you a beer so much your help is precious

Link to comment
Share on other sites

@360game360 - bluetooth works OOB you just need to activate it using Linux or Windows. I have used latest ubuntu for that.

As for iMessage make sure your ethernet is en0 also try adding MLB full (17 digit) number in RtVariables to config.plist

 

@all - slightly updated first post.

Link to comment
Share on other sites

Hi Kogen-

What do the RC scripts do if you install them with Clover?

 

Thanks,

AJ

RC scripts are quite important, especially for us UEFI users. Essential are:

rc.local - is responsible for saving boot.log and mounting EFI partition

rc.shutdown.local deals with storing nvram settings

 

You can add your custom scripts with actions like: fixing permissions, patching kexts like AppleHDA, etc

Link to comment
Share on other sites

Thanks Kogen.

 

One more question, when upgrading Clover, I normally just copy to my EFI partition the BOOT folder. Should I also replace other files or folders? Like CLOVERIA32.efi, CLOVERX64.efi, and folders like drivers64UEFI, etc?

Link to comment
Share on other sites

@ag6952563- Clover installer will automatically install what it needs in your EFI system partition (ESP). it will mount /Volumes/ESP and copy the stuff in if you select the checkbox at the top. (Note: i uncheck themes since i use ThinkPad)

 

i then remove *32* from /EFI/BOOT and /EFI/CLOVER /EFI/CLOVER/tools

 

i use these options:

post-954945-0-91942100-1370356432_thumb.png

 

then if i look at /Volumes/ESP i have this:

 

 

$ cd /Volumes/ESP/EFI

$ ls -1 .

 

APPLE

BOOT

CLOVER

Microsoft

 

 

$ ls -1 BOOT CLOVER

BOOT:

BOOTX64.efi

 

CLOVER:

ACPI

CLOVERX64.efi

OEM

config.plist

doc

drivers64UEFI

kexts

misc

refit-default.conf

refit.conf

themes

tools

Link to comment
Share on other sites

@AJ -

 

i just hid the thunderbolt FW upgrade - there isn't an SMC to actually update!

 

@all -

 

btw, if anyone moves up to the Clover ~1654+, they merged refit.conf into config.plist and the theme settings.conf became theme.plist.

 

Note: GUI section in config.plist for OEM\<product> - and then theme.plist for ThinkPad.

 

this is example for i5-2520m and 1600x900 LCD (injects EDID)

- change speeds freqs, as well the name of your default Volume.

if you have low res LCD remove/replace the EDID and change DualLink to 0.

 

See post #174

  • Like 2
Link to comment
Share on other sites

Hi guys-

I still have some issues with sleep/shutdown with my new UEFI setup.

Sometimes, the laptop does not go to sleep or even shutdown. For shutdown, since I have verbose boot, I see the daemons are killed, the cpu halted, but the power button stays on and the bluetooth light is also on... and it doesn't shut down. I assume it is the same issue when going to sleep.

Also, when it does go to sleep, I have noticed the touchpad is not working after resuming... but I guess this is a different issue.

 

Any ideas?

 

Thanks,

AJ

Link to comment
Share on other sites

@AJ - i have seen this same thing from time to time. sometimes the system will shutdown cleanly all the way to everything off. and sometimes it will shutdown OSX and then the laptop has a blackscreen with powerlight on.

 

@tetonne - i updated to r1690 and tried the genconfig. pretty cool. shows a lot of keys that one may not know about!

 

 

Note: Now that I trust Clover ;) I replaced the AppleRTC.kext and AppleIntelCPUPowerManagement.kext with the vanilla versions and let clover do the work! i still have other some other modified kexts in /S/L/E but that is 2 less to worry about!

 

here is what i am using now... I trimmed out some of the extra variables so its easier to see what is set and what is not.

OEM/4236AT9 config.plist:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
       <key>ACPI</key>
       <dict>
               <key>DropOemSSDT</key>
               <true/>
               <key>FixDsdtMask</key>
               <string>0x0000</string>
               <key>GenerateCStates</key>
               <false/>
               <key>GeneratePStates</key>
               <false/>
       </dict>
       <key>CPU</key>
       <dict>
               <key>BusSpeedkHz</key>
               <string>99700</string>
               <key>Comment</key>
               <string>i5 2520m</string>
               <key>CpuFrequencyMHz</key>
               <string>2500</string>
               <key>Turbo</key>
               <true/>
       </dict>
       <key>GUI</key>
       <dict>
               <key>DefaultBootVolume</key>
               <string>OSX+</string>
               <key>Mouse</key>
               <dict>
                       <key>DoubleClick</key>
                       <integer>500</integer>
                       <key>Enabled</key>
                       <true/>
                       <key>Speed</key>
                       <integer>8</integer>
               </dict>
               <key>ScreenResolution</key>
               <string>960x600</string>
               <key>Theme</key>
               <string>ThinkPad</string>
               <key>Timeout</key>
               <integer>8</integer>
               <key>Volumes</key>
               <dict>
                       <key>Legacy</key>
                       <false/>
               </dict>
       </dict>
       <key>Graphics</key>
       <dict>
               <key>Comment</key>
               <string>LCD 1600x900</string>
               <key>CustomEDID</key>
               <data>
               AP///////wAw5OICAAAAAAAUAQOAHxF4CkNFl1lXjighUFQAAAABAQEBAQEB
               AQEBAQEBAQEBgCVAgGCEGjAwIDUANq4QAAAZAAAAAAAAAAAAAAAAAAAAAAAA
               AAAA/gBMRyBEaXNwbGF5CiAgAAAA/gBMUDE0MFdEMi1UTEIxADg=
               </data>
               <key>DualLink</key>
               <string>1</string>
               <key>GraphicsInjector</key>
               <true/>
               <key>InjectEDID</key>
               <true/>
       </dict>
       <key>KernelAndKextPatches</key>
       <dict>
               <key>AppleRTC</key>
               <true/>
               <key>AsusAICPUPM</key>
               <true/>
               <key>Debug</key>
               <false/>
               <key>Comment</key>
               <string>Replace 4th port with VGA</string>
               <key>KextsToPatch</key>
               <array>
                       <dict>
                               <key>Find</key>
                               <data>
                               AQIEABAHAAAQBwAABQMAAAIAAAAwAAAAAgUAAAAEAAAH
                               AAAAAwQAAAAEAAAJAAAABAYAAAAEAAAJAAAA
                               </data>
                               <key>Name</key>
                               <string>AppleIntelSNBGraphicsFB</string>
                               <key>Replace</key>
                               <data>
                               AQIEABAHAAAQBwAABQMAAAIAAAAwAAAAAgUAAAAEAAAH
                               AAAAAwQAAAAEAAAJAAAABgIAABAAAAAJAAAA
                               </data>
                       </dict>
               </array>
       </dict>
       <key>PCI</key>
       <dict>
               <key>InjectClockID</key>
               <true/>
               <key>USBFixOwnership</key>
               <true/>
               <key>USBInjection</key>
               <true/>
       </dict>
       <key>SMBIOS</key>
       <dict>
               <key>Trust</key>
               <true/>
       </dict>
       <key>SystemParameters</key>
       <dict>
               <key>InjectSystemID</key>
               <true/>
               <key>boot-args</key>
               <string>slide=0</string>
               <key>prev-lang:kbd</key>
               <string>en:0</string>
       </dict>
</dict>
</plist>

Link to comment
Share on other sites

Thansk tluck. Can you please post the 2 Vanilla kexts? I only have the patched ones, and I cannot find them in the 10.8.2 or 10.8.3 combo updates... I guess they have not changed.

Or, do you know where I can get them?

 

Update: I guess in the 10.8 install iso if they have not changed. Sorry, you can see how the mind of a amateur works... how I make important deductions with the passing of time... hehe

Link to comment
Share on other sites

 Share

×
×
  • Create New...