Jump to content
K0gen

Lenovo ThinkPad T420 with UEFI Only

4,739 posts in this topic

Recommended Posts

Advertisement

@timewalker75a - wow that was easy. fantastic. just curious how do you/we know 1312 is the right max?!

 

@zhangqq - interesting. does this make  shutdown work (period) - meaning it did not work at all - or that is makes shutdown work better (ie not hang)?

1312 is the maximum PNLF (Apple's Display Panel) can handle. And this is the value it defaults to after sleep, as in.. the brightness cap increases after sleep from 0710 to 1312.

 

Re: reset address and values - this fix was originally discovered by fassl and was needed for older hardware where FACP table didn't contain this data, so restart was not functional. Bootloaders are now altering this table and increasing it's length for platforms where FACP doesn't include this data. If you dump your native ACPI tables from clover by pressing F4 in GUI and then open up your FACP table from /EFI/CLOVER/ACPI/origin you'll see that this data is already in there .. and it only affects restart, which is done through PS/2 controller, which is a part of Embedded controller... so shutdown was fixed by SLPE, not this... this doesn't even need to be there.  

[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
[004h 0004   4]                 Table Length : 000000F4
[008h 0008   1]                     Revision : 03
[009h 0009   1]                     Checksum : E6
[00Ah 0010   6]                       Oem ID : "DELL  "
[010h 0016   8]                 Oem Table ID : "QA09   "
[018h 0024   4]                 Oem Revision : 00000002
[01Ch 0028   4]              Asl Compiler ID : "PTL "
[020h 0032   4]        Asl Compiler Revision : 00000002
....

[074h 0116  12]               Reset Register : [Generic Address Structure]
[074h 0116   1]                     Space ID : 01 [SystemIO]
[075h 0117   1]                    Bit Width : 08
[076h 0118   1]                   Bit Offset : 00
[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
[078h 0120   8]                      Address : 0000000000000064

[080h 0128   1]         Value to cause reset : FE

Share this post


Link to post
Share on other sites

Hi guys-

This is not important of course, but aiming to a perfect laptop running OS X...

The wifi light is not on, even if the wifi is enabled. Any easy fix that could correct this?

 

Thanks,

AJ

Share this post


Link to post
Share on other sites

TimeWalker - thanks that is great information.

 

well the FACP table shows this info - which according to the WIKI,Clover will read and use. in this case the PCI bus. agree with that for the T420 - the reset values do not need to specified in the config.plist

 

 

 

[074h 0116  12]               Reset Register : [Generic Address Structure]
[074h 0116   1]                     Space ID : 01 [systemIO]
[075h 0117   1]                    Bit Width : 08
[076h 0118   1]                   Bit Offset : 00
[077h 0119   1]         Encoded Access Width : 00 [undefined/Legacy]
[078h 0120   8]                      Address : 0000000000000CF9
 
[080h 0128   1]         Value to cause reset : 06
[081h 0129   3]                     Reserved : 000000
[084h 0132   8]                 FACS Address : 00000000DAF2D000
[08Ch 0140   8]                 DSDT Address : 00000000DAFEB000
 
@AJ - will look at this later to see if i can figure out which LED lights that up. there is a DSDt function called SI that i used to reset the power and sleep LEDs. may be manual since OSX may not have this?

Share this post


Link to post
Share on other sites

 

@okcakep (get blank monitor if you're using custom EDID in config.plist)

then make this change in red (delete or change)

InjectEDID to false is enought if your EDID is not the good one it would become the good one in newer system

------------------

 

good edid can be found this thisattachicon.gifgenEDID_3c.zip

 

unzip drag & drop genEDID.sh on Terminal.app window, key name of screen for example LCD

 

tetonne$ /Users/tetonne/Desktop/genEDID.sh LCD press enter
 
result  in terminal
Collecting some data...
Detected Vendor ID: 0x6af (hex) 1711 (dec)
Detected Product ID: 0x313c (hex) 12604 (dec)
Flipbyted Vendor ID: 0xaf06 (hex) 44806 (dec)
Detected EDID: 00ffffffffffff0006af3c310000000000140103801f11780a10b597585792261e505400000001010101010101010101010101010101121b5646500023302616360035ad100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231343058573033205631200a0029
Encoded EDID: AP///////wAGrzwxAAAAAAAUAQOAHxF4ChC1l1hXkiYeUFQAAAABAQEBAQEBAQEB
AQEBAQEBEhtWRlAAIzAmFjYANa0QAAAYAAAADwAAAAAAAAAAAAAAAAAgAAAA/gBB
VU8KICAgICAgICAgAAAA/gBCMTQwWFcwMyBWMSAKACk=
Job done!
 
report that green number in OEMConfig
Graphic CustomEDID data (in XML part)
00ffffffffffff0006af3c310000000000140103801f11780a10b597585792261e505400000001010101010101010101010101010101121b5646500023302616360035ad100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231343058573033205631200a0029
 
you'll seen Encoded EDID: AP///////wAGrzwxAAAAAAAUAQOAHxF4ChC1l1hXkiYeUFQAAAABAQEBAQEBAQEB
AQEBAQEBEhtWRlAAIzAmFjYANa0QAAAYAAAADwAAAAAAAAAAAAAAAAAgAAAA/gBB
VU8KICAgICAgICAgAAAA/gBCMTQwWFcwMyBWMSAKACk=
there

set InjectEDID to true

 
result on destop :
put the created folder DisplayVendorID-6af (example) in S/L/Display/Overrides
repair permissons

 

Tetonne....amazing...work....!!!

Thank you....

Share this post


Link to post
Share on other sites

@okcakep : you're welcome :)

@all could you please add your signature ;)

 

feed back about  T420_UEFI_Clover-b2236_10.8.5_10.9.0_16-Oct-2013

As usual great work :) brightness is equal as before sleep

I add tluck's pack url in my signature (a way say :thanks_speechbubble: )

 

@timewalker75a : thanks for your contribution too

@tluck : thanks for the great pack you provide each time 

Share this post


Link to post
Share on other sites

I want to install OS X Mavericks on Thinkpad T420s, how can I patch my own dsdt based on your patched files?

 

I also want to use ultrabay to replace my dvd drive by a hdd, I saw some posts long ago said that the system can only boot to internal drive Clover without it, is it fixed yet?

Share this post


Link to post
Share on other sites

I also want to use ultrabay to replace my dvd drive by a hdd, I saw some posts long ago said that the system can only boot to internal drive Clover without it, is it fixed yet?

Use shell from within Clover (new revision preferably) and add bcfg boot entry pointing to your optibay (utrabay?) drive. The entry will then appear under F12 boot menu..

Share this post


Link to post
Share on other sites

@pokenguyen - there is dsdt.aml and dsdt.dsl (source with change comments) for any T420 - ready for use in the zip bundle. otherwise i don't understand your question. 

Share this post


Link to post
Share on other sites

@pokenguyen - there is dsdt.aml and dsdt.dsl (source with change comments) for any T420 - ready for use in the zip bundle. otherwise i don't understand your question.

T420s model can't use the same dsdt, but I think it will be very similar. I want to know which patches you applied to your dsdt so I can patch it myself.

Share this post


Link to post
Share on other sites

@pokenguyen - there is dsdt.aml and dsdt.dsl (source with change comments) for any T420 - ready for use in the zip bundle. otherwise i don't understand your question.

T420s model can't use the same dsdt, but I think it will be very similar. I want to know which patches you applied to your dsdt so I can patch it myself.

Share this post


Link to post
Share on other sites

I don't have a 420 to confirm, but gendalo and I have different t430's and it turns out that the dsdt's are identical. Likely it is true of 420's as well.

Share this post


Link to post
Share on other sites

I don't have a 420 to confirm, but gendalo and I have different t430's and it turns out that the dsdt's are identical. Likely it is true of 420's as well.

I will give it a try, thank you for confirm.

Share this post


Link to post
Share on other sites

@Tluck now im using 10.8.5 with your package. work !!!. i must be reconfigure Athereos WiFi to pci168c,2b

Sound work perfect...thanks...!!!

@Tetone your EDID work...but i still get glich sometime :)

 

Update...

Suddenly no sound in internal speaker,

Headphone ok

Share this post


Link to post
Share on other sites

            If (LEqual (Arg0, 0x05))


            {


                TRAP ()


                AWON (0x05)


                Store (Zero, SLPE)


                Sleep (0x10)


           


 


I guess store(zero,SLPE) should be store(one, SLPE). (I won't use the tags for shutdown now.)


I also add Store (One, SLPE) and Sleep (0x10) to arg0 = 0x01 0x03 0x04.


Then I add Store (Zero, SLPE) and Sleep (0x10) ad the beginning of _WAK and _INI.


 


The shutdown and sleep work fine till now.

Share this post


Link to post
Share on other sites

 

            If (LEqual (Arg0, 0x05))

            {

                TRAP ()

                AWON (0x05)

                Store (Zero, SLPE)

                Sleep (0x10)

           

 

I guess store(zero,SLPE) should be store(one, SLPE). (I won't use the tags for shutdown now.)

I also add Store (One, SLPE) and Sleep (0x10) to arg0 = 0x01 0x03 0x04.

Then I add Store (Zero, SLPE) and Sleep (0x10) ad the beginning of _WAK and _INI.

 

The shutdown and sleep work fine till now.

 

That's right - you GUESS, while Intel STATES:

4Clbb.png

Every state passed as the argument to _PTS is a sleep state, be it suspend type (0x1 and 0x3), lid 0x4 or soft-off (0x5).

Share this post


Link to post
Share on other sites

@pokenguyen - misunderstood your model is a T420S and not plain T420. here is a zip of the original dsdt and current dsdt.dsl (with comments) - you can diff them to see what was add/changed. 

 

t420_dsdt.zip

 

@okcakep

 

1) the sound loss from laptop speaker is known to be result of changes in 10.8.5 v1.8 AppleACPIPlatform.kext. laptop will lose speaker after wake from sleep. if you rollback to 10.8.4 v1.7 AppleACPIPlatform.kext this will not happen. 

 

2) EDID and glitches. is your native EDID different than the one Tetonne provided. is it v1.3? look for 0103 string vs 0104 string. i am injecting a different EDID (v1.3 seems work) than what was native/built-in to fix the glitches. 

 

in reality i never figured out why one EDID worked and another didn't. here were 2 v1.3 EDIDs for LCD 1600x900 - one was native (from windows) - i suspect it is the diff in detail clocking timings info? works is 96 Mhz and the glitchy one is 110 Mhz

 

works:

 

Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   30 e4 e2 02 00 00 00 00 00 14
version:         01 03
basic params:    80 1f 11 78 0a
chroma info:     43 45 97 59 57 8e 28 21 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    80 25 40 80 60 84 1a 30 30 20 35 00 36 ae 10 00 00 19
descriptor 2:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
descriptor 3:    00 00 00 fe 00 4c 47 20 44 69 73 70 6c 61 79 0a 20 20
descriptor 4:    00 00 00 fe 00 4c 50 31 34 30 57 44 32 2d 54 4c 42 31
extensions:      00
checksum:        38
 
Manufacturer: LGD Model 2e2 Serial Number 0
Made week 0 of 2010
EDID version: 1.3
Digital display
Maximum image size: 31 cm x 17 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 96.000 MHz, 310 mm x 174 mm
               1600 1648 1680 1728 hborder 0
                900  903  908  926 vborder 0
               -hsync -vsync 
 

 

 

glitches:

 

Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   30 ae a1 40 00 00 00 00 01 14
version:         01 03
basic params:    80 1f 11 78 ea
chroma info:     cc ce 99 58 50 8e 26 24 4b 53
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    f8 2a 40 9a 61 84 0c 30 40 2a 33 00 35 ae 10 00 00 18
descriptor 2:    cf 23 40 9a 61 84 0c 30 40 2a 33 00 35 ae 10 00 00 18
descriptor 3:    00 00 00 0f 00 a9 09 32 a9 09 32 19 09 00 06 af 56 31
descriptor 4:    00 00 00 fe 00 42 31 34 30 52 57 30 32 20 56 31 20 0a
extensions:      00
checksum:        7b
 
Manufacturer: LEN Model 40a1 Serial Number 0
Made week 1 of 2010
EDID version: 1.3
Digital display
Maximum image size: 31 cm x 17 cm
Gamma: 2.20
DPMS levels: Standby Suspend Off
Supported color formats: RGB 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 110.000 MHz, 309 mm x 174 mm
               1600 1664 1706 2010 hborder 0
                900  903  906  912 vborder 0
               -hsync -vsync 
Detailed mode: Clock 91.670 MHz, 309 mm x 174 mm
               1600 1664 1706 2010 hborder 0
                900  903  906  912 vborder 0
               -hsync -vsync 

Share this post


Link to post
Share on other sites

 

@pokenguyen - misunderstood your model is a T420S and not plain T420. here is a zip of the original dsdt and current dsdt.dsl (with comments) - you can diff them to see what was add/changed. 

 

attachicon.gift420_dsdt.zip

 

 

Thank you very much, I'm new to Thinkpad and waiting my caddy to arrive before installing. I will give it a look.

Btw, I think you should replace VboxHFS-64.efi by HFSPlus.efi for better OSX Install support. With the drivers, you can create install usb for 10.8 by restoring InstallESD.dmg, or use createmediainstall tool for 10.9. Very easy.

Share this post


Link to post
Share on other sites

I just studied P8Z68-V PRO's dsdt  and found something interesting.

 

                Name (SMCR, 0x0430)

 

                OperationRegion (SLPR, SystemIO, SMCR, 0x08)
                Field (SLPR, ByteAcc, NoLock, Preserve)
                {
                        ,   4,
                    SLPE,   1,
                        ,   31,
                    SLPX,   1
                }

 

 

                Method (SWAK, 1, NotSerialized)
                {
                    Store (Zero, SLPE)
                    If (LNot (RTCS))
                    {
                        Notify (PWRB, 0x02)
                    }
                }

 

    Method (_PTS, 1, NotSerialized)
    {
        Store (Zero, P80D)
        P8XH (Zero, Arg0)
        If (Arg0)
        {
            Store (One, \_SB.PCI0.LPCB.SLPX)   <==I think this is another one we missed.
            Store (One, \_SB.PCI0.LPCB.SLPE)  <== ASUS put SLPE here, it is the same as our SLPE.
            If (LAnd (LGreater (Arg0, 0x03), LLess (Arg0, 0x06)))
            {
                Store (Arg0, \_SB.SMIC)
                Store (One, GP27)
            }
        }
    }
    Method (_WAK, 1, Serialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        \_SB.PCI0.LPCB.SWAK (Arg0)
        Store (Zero, \_SB.PCI0.LPCB.PLED)
        Return (Package (0x02)
        {
            Zero,
            Zero
        })
    }
}


I found the follow combination worked.

 

1) SlpSmiAtWake => true

2) Add SLPE = 0  to _WAK  and SLPE = 1 to _PTS(arg0 = 1,3,4,5)

Share this post


Link to post
Share on other sites

And yet Asus board have HAD this shutdown bug in UEFI boot until endless figured out that it has to write 0 and not 1 to SLP_SMI_EN register (which is SLPE) .. whats SLPX - nobody knows and it's not even documented in chipset specification, while PM30+4 bit register is.

 

SlpSmiAtWake was my request to slice, and it's actually broken and is poorly implemented, all it does is makes a change to your DSDT to unconditionally write 1 to SLPE when _WAK is called. On Tiano firmware this results in broken wake, when the laptop has been put to sleep by closing the lid.

Share this post


Link to post
Share on other sites

@pokenguyen - great.  glad to have another voice and platform on this thread

 

HFSPlus.efi (i have an HFSPlus-64.efi) ... but sure i can give that a try- what does that do better that Vbox?

i made my 10.8 and 10.9 installers using this approach - basically put "BaseSystem" on the USB. made it more like "regular OS" so was more intuitive to me. These are my notes on how i do it:


format USB GUID with 1 or 2 partitions
expand and show all files in downloaded installer app
 
find and open/mount InstallESD.dmg in Contents/SharedSupport
extract BaseSystem.dmg (will be hidden)
restore this image to USB using Disk Utility
remove /Volume/USB/System/Installation/Package (link file)
cp -rp Packages (from installer InstallESD.dmg) to /Volume/USB/System/Installation/
extract (pacifist) mach_kernel from Packages/BaseSystemBinaries.pkg and put in USB/
 
TIPS:
turn on Disk Utility debug mode - you can see hidden partitions 
run:
defaults write com.apple.DiskUtility DUDebugMenuEnabled 1
 
if your usb is disk 2 
 
$ diskutil list
 
mount your ESP manually:
sudo mkdir /Volumes/ESP_USB
sudo mount -t msdos /dev/disk2s1 /Volumes/ESP_USB
 
unzip bundle (say in  Downloads)
 
cp -rp ~/Downloads/EFI /Volumes/ESP_USB
cd /Volumes/ESP_USB/EFI/CLOVER
mv OEM OEM.NU
 
 
@zhangqq - well interesting and this stuff may work on a different Mobo/embedded controller. but, for me i am not keen on testing as i don't want to brick my box! anyway,  i am happy with the restart and shutdown function currently. 

Share this post


Link to post
Share on other sites

 

@pokenguyen - great.  glad to have another voice and platform on this thread

 

HFSPlus.efi (i have an HFSPlus-64.efi) ... but sure i can give that a try- what does that do better that Vbox?

i made my 10.8 and 10.9 installers using this approach - basically put "BaseSystem" on the USB. made it more like "regular OS" so was more intuitive to me. These are my notes on how i do it:

format USB GUID with 1 or 2 partitions
expand and show all files in downloaded installer app
 
find and open/mount InstallESD.dmg in Contents/SharedSupport
extract BaseSystem.dmg (will be hidden)
restore this image to USB using Disk Utility
remove /Volume/USB/System/Installation/Package (link file)
cp -rp Packages (from installer InstallESD.dmg) to /Volume/USB/System/Installation/
extract (pacifist) mach_kernel from Packages/BaseSystemBinaries.pkg and put in USB/
 
@zhangqq - well interesting and this stuff may work on a different Mobo/embedded controller. but, for me i am not keen on testing as i don't want to brick my box! anyway,  i am happy with the restart and shutdown function currently. 

 

Using HFSPlus.efi can boot to special Install USB, which can create Recovery HD after installing. Creating Install USB is much easier than your method:

10.8: Restore InstallESD.dmg to flash drive

10.9: Run the following command:

sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction

Share this post


Link to post
Share on other sites

@timewalker - here is what i get in the logs... on 10.9 no sound from speaker after sleep/wake (2 cycles) below:

 

Oct 17 14:11:44 toms-mac com.apple.kextd[14]: WARNING - Invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/Users/tluck/Downloads/CodecCommander.kext"

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander::init: Initializing

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander::init: make Lenovo

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander::probe: Probing

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander::start: Starting

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander: command 1470c02 written to ICW register

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander: status of ICB field changed to 1

Oct 17 14:11:45 toms-mac kernel[0]: CodecCommander: get status of IRV field

Oct 17 14:24:43 toms-mac kernel[0]: CodecCommander::power: is off

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: command 1470c02 written to ICW register

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: status of ICB field changed to 1

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: get status of IRV field

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: response latched in IRR register, IRV returned valid status 2

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: command failed, IRV returned invalid status 2

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander: IRV field cleared, ready for next command

Oct 17 14:24:51 toms-mac kernel[0]: CodecCommander::power: is on

Oct 17 14:28:39 toms-mac kernel[0]: CodecCommander::power: is off

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: command 1470c02 written to ICW register

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: status of ICB field changed to 1

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: get status of IRV field

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: response latched in IRR register, IRV returned valid status 2

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: command failed, IRV returned invalid status 2

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander: IRV field cleared, ready for next command

Oct 17 14:28:44 toms-mac kernel[0]: CodecCommander::power: is on

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   1 member

  • Similar Content

    • By ludufre
      Installing macOS Catalina 10.15.2 on Lenovo ThinkPad L440

       
      There are two version of this laptop:
      - 20AS = Chipset QM87, without Express Card (mine).
      - 20AT = Chipset HM86, with Express Card.
      I strong believe is the same thing...
       

      Changelog:
       
      12/11/2019 04:24h GMT-0
      - Added 10.15.2 update instructions.
      - Replaced IntelMausiEthernet.kext with IntelMausi.kext.
       
      11/08/2019 20:30h GMT-0
      - Added instructions to swap Command with Option keys in VoodooPS2Controller.kext.
      - Added additional FileVault 2 UEFI drivers be more practical.
       
      10/30/2019 01:42h GMT-0
      - Added 10.15.1 update instructions.
      - Replaced AppleALC.kext with VoodooHDA.kext
      - No more issues after sleep or misconfiguration with jack sense.
       
      10/29/2019 18:18h GMT-0
      - Replaced the config.plist with AppleIntelCPUPM = true.
       
      10/27/2019 05:37h GMT-0
      - Replaced the DW1560 wireless card with BCM94360CS2.
       
      10/20/2019 20:47h GMT-0
      - Removed AppleBacklightFixup.kext.
      - WhateaverGreen now implements backlight since 1.2.5.
       
      10/20/2019 18:10h GMT-0
      - First version.
       
      What works and what does not
       
      - Processor: Intel Core i5-4300M ->  Work. All SpeedStep stages.
      - Video Card: Intel HD4600 ->  Work. QE/CI and Metal.
      - Chipset: Intel QM87 ->  Work.
      - Mini DisplayPort ->  Work. But no audio, yet.
      - VGA ->  Not work. Normal.
      - Audio: ALC292 ->  Work.
      - WiFi/Bluetooth: Intel AC 7260 ->  Not work. Replaced with DW1560 BCM94360CS2 (need whitelist removal).
      - Ethernet: Intel I217-LM ->  Work.
      - Card Reader: Realtek RTS5227 ->  Not work.
      - Keyboard and Touchpad ->  Work.
      - Webcam ->  Work.
      - Fingerprint Reader ->  Not work. Normal.
      - USB3.0 ->  Work.
      - Sleep ->  Work.
      - Airdrop, Handoff and Continuity ->  Work after replaced wireless.
      - Instant Hotspot ->  Not work.
       
       
      Extras
       
      - FullHD 1920x1080 display upgrade: 
      Replaced with AU Optronics B140HAN01.1 30pin eDP (B140HAN01.2 and B140HAN01.3 also compatible).
      Apparently same screen as Dell Latitude E6440, E7440, Lenovo Ideapad U430 and E129.
       
      - CPU upgrade:
      Replaced the stock Intel Core i5 4300M 2.6Ghz (3.3Ghz turbo) 6M cache with Intel Core i7 4700MQ 2.4Ghz (3.4Ghz turbo) 6MB.
      I initially had problems with overheating. The processor ran at full load above 90 degrees.
      After using a quality thermal paste I can work between 70 and 80 degrees.
      Acceptable taking into consideration that the new processor has 47TDP versus 37TDP which is recommended.
      I also had no problem consuming the battery while charging. The original 65W source seems to have figured out.
       
      - Touchpad upgrade:
      Replaced the stock with T460 touchpad.
      This is serious: you have to do it! It should be stock. Touchpad with precision and absurd quality!
      Just do it!
       
      - RAM upgrade:
      16GB (2x8GB). No mistery here. Just upgade.
       
      - Wireless upgrade:
      Previously I have the DW1560 working almost perfectly, now replaced with BCM94360CS2 that is full native supported. 
      More info below.
       
      Todo
       
      - Make DP audio work.
      - Make Card Reader work.
      - Make trackpad appear in System Preferences
      - Make Instant Hotspot work.
       
       
      What you need to install

      - Running install of macOS
      - One USB flash drive of 8GB or bigger
      - macOS Catalina install app
      - Clover EFI
      - Clover Configurator
      - Some KEXTs and SSDT patches


      How create create the install flash drive
       
      Prepare install flash drive

      Format the flash drive with GUID partition mapping and name it "Install".

      - Open Disk Utility.
      - Click in View, then "Show All Devices".
      - Select the destination flash drive, then Erase.
      - Name: Install, Format: Mac OS Extended (Journaled) and Scheme: GUID Partition Map
       
      Create install flash drive

      Open terminal and run this command:
      sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/Install --nointeraction This will take about 30 minutes.
       


      Install bootloader

      Download the CloverEFI from official repository (used 5097) and install only with these options on "Install macOS Catalina":
       
      - Install for UEFI booting only
      - Install Clover in the ESP
      - UEFI Drivers - Recommended Drivers - AudioDxe (Just to have nice sound on boot)
      - UEFI Drivers - Recommended Drivers - FSInject (I still don't know if it's really necessary)
      - UEFI Drivers - File System drivers - ApfsDriverLoader (Support to APFS partitions)
      - UEFI Drivers - File System drivers - VBoxHfs (Support HFS/HFS+ partitions)
      - UEFI Drivers - Memory fix drivers - AptioMemoryFix (Fix the memory management of de UEFI/BIOS)
       
      FileVault 2
       
      If you plan to use FileVault 2, you need to download additional drivers, since what comes with Clover is not up to date and use VirtualSMC instead of FakeSMC.
      Follow instructions bellow:
       
      From current Clover installation, check these options to USB keyboard/mouse work on password screen:
      - UEFI Drivers - Human Interface Devices - UsbKbDxe
      - UEFI Drivers - Human Interface Devices - UsbMouseDxe
       
      After Clover install will be created a partition named EFI and mounted in Desktop. Usually the path is /Volumes/EFI/.
       
      Download the versions 2.1.0 and 2.0.9 of AppleSupportPkg from: https://github.com/acidanthera/AppleSupportPkg/releases
      We need the last version of AppleGenericInput.efi that is inside 2.1.0 and last version of AppleUiSupport.efi that is inside 2.0.9.
      OR download attached bellow.
       
      Put in /Volumes/EFI/EFI/CLOVER/drivers/UEFI/
       
      That's it! FileVault 2 will work without problems.
       
       

       
       
      Make things works
       
      After Clover install will be created a partition named EFI and mounted in Desktop. Usually the path is /Volumes/EFI/.
       
      - Replace the /Volumes/EFI/EFI/CLOVER/config.plist with mine attached below
      - Put SSDT-L440.aml attached below in /Volumes/EFI/EFI/CLOVER/ACPI/patched/
       
      Generate your Serial, MLB and SmUUID
       
      - Open the replaced config.plist with Clover Configurator (used 5.6.2.0)
      - Go to SMBIOS, click few times in "Generate New" in Serial Number and SmUUID.
       
      Copy the Clover Configurator to flash drive because you will need later.
       
      Download those Kexts and put in /EFI/CLOVER/kexts/Other/
       
      - Download the VirtualSMC from here. I used all Kexts and UEFI driver (put VirutalSmc.efi inside /Volumes/EFI/EFI/drivers/UEFI/) from version 1.0.8 (If you followed the steps to enable FileVault 2 above, skip to the next item).
      - Download the Lilu.kext from here. I used the version 1.3.8.
      - Download the VoodooPS2Controller.kext from here. I used version 2.0.4.
      - Download the IntelMausi.kext from here. I used the version 1.0.2.
      - Download the VoodooHDA.kext from here. I used the version 2.9.2. (Need to turn up the volume on Info.plist, more instructions below)
      - Download the WhateverGreen.kext from here. I used the version 1.3.3.
      - Download the USBInjectAll.kext from here. I used the version 2018-1108.
       
      Important! If you are coming from my previous Mojave guide, please note that I am using some kexts from other repositories / authors.
       
       
      Audio volume adjustment
       
      - Open the Info.plist inside VoodooHDA.kext/Contents/ with TextEdit.app or any text editor of your choice.
      - Change:
      <key>PCM</key> <integer>90</integer> to:
      <key>PCM</key> <integer>140</integer> Or, download the versions 2.9.2 attached bellow.
       
       
      Keyboard swap Command with Option (optional)
       
      - If you prefer, you can swap Command and Option keys, to map Win Key - Command and Alt - Option.
      - Change /Volumes/EFI/EFI/CLOVER/OEM/S400CA/UEFI/kexts/10.15/VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext/Contents/Info.plist:
      <key>Swap command and option</key> <true/> to:
      <key>Swap command and option</key> <false/> Or, download the version 2.0.4 already adjusted attached bellow.
       
       
      Wifi and Bluetooth (BCM94360CS2 + M2 NGFF adapter)
       
      Recently I replaced the DW1560 with BCM94360CS2. Now I have fully wireless and bluetooth working (including Instant Hotspot) without any kexts.
       
      See: 
       
       
      Wifi and Bluetooth (DW1560 / BCM94352Z)
       
      Unfortunately, some notebook manufacturers are currently blocking the replacement of wireless cards. They want you to only use the models sold by them. And of course, none of them from Lenovo for this notebook model is compatible with MacOS.
       
      If you try to start with an unauthorized wifi card for them, you will receive a screen error:
      1802: Unauthorized network card is plugged in - Power off and remove the network card. Since this check is done directly in the BIOS, the only solution is to modify it.
      But since nothing is easy in this life, there is one small big problem:
      - The BIOS update procedure does not allow you to use modded files as it used to be.
      - You will need to physically reach your BIOS on the motherboard and make use of a USB BIOS reader/writer.
       
      So what you need to do:
      1. Disassembly your laptop;
      2. Dump your BIOS with an USB BIOS reader with SOIC8 clip (to not desolder from the motherboard);
      3. Patch it (Ask on UEFI hack forums over there to someone patch for you. Every dump is unique, so mine don't work to you.);
      4. Fix RSA signature;
      5. Reflash BIOS;
      6. Replace wireless card;
      7. Remount your laptop;
      8. Done.
       
      To fix a Modded BIOS to remove the 5 beeps on boot, you need this guide: https://www.insanelymac.com/forum/topic/337333-guide-fix-insyde-h2o-bios-signature-5-beeps-on-lenovo (traduzido: pt-BR)
       
       
      After replaced the wireless card. Download those Kexts and put in /Volumes/EFI/EFI/CLOVER/kexts/10.15/
       
      - Download the AirportBrcmFixup.kext from here. I used the version 2.0.3. (To enable Wireless)
      - Download the BrcmBluetoothInjector.kext, BrcmFirmwareRepo.kext and BrcmPatchRAM3.kext from here. I used the version 2019-10-17. (To enable Bluetooth)
      - Download the BT4LEContinuityFixup.kext from here. I used the version 1.1.4. (To enable Handoff and Continuity)
       
      Keep in mind that the bluetooth kexts are currently in development and the official releases will be available in future in the repository: https://github.com/acidanthera/BrcmPatchRAM/releases
       
       
      Now you can start the installation without problem (I guess).
       
       
      How install
       
      UEFI Setup Configuration and Installation

      UEFI configuration
       
      My BIOS is the latest: 1.93 (J4ET93WW) 

      - Shutdown and insert the flash drive.
      - Power on with F1 pressed to enter BIOS setup.
      - Change value: Config - Intel(R) AMT - Intel(R) AMT Control to DISABLED
      - Change value: Security - Security Chip to DISABLED
      - Change value: Security - Anti-Theft - Intel(R) AT Module Activation to DISABLED
      - Change value: Security - Anti-Theft - Computrace to DISABLED
      - Change value: Security - Secure Boot to DISABLED
      - Change value: Startup - UEFI/Legacy Boot to BOTH, Legacy First and CSM Support = Yes
      - Save & Exit Setup (F10)
       
      - Now, hold the F12
      - In the list, select your flash drive.
      - Choose the flash drive (white icon).
       
      The installer will start. 
      
      Format destination disk

      Format the disk with GUID partition mapping and name it "Macintosh".

      - Select Disk Utility in the list, then press Continue.
      - Click in View, then "Show All Devices".
      - Select the destination Disk, then Erase.
      - Name: HD, Format: APFS and Scheme: GUID Partition Map

      Close Disk Utility.
      
      Select "Install macOS", then Continue.
      Follow instructions in screen.

      After install
       
      After first part install the system will reboot. Maybe you have to press F12 again and select the flash drive.
       
      Choose the internal disk (gray hdd icon) if not already selected.

      The second part of the installation will begin. This will take 16 minutes.

       

      Post installation
       
      When the second part of install finish, the system will reboot again.

      After performing the user initial setup and go to the desktop, you need to make the system disk bootable.

      Open the Clover Configurator from flash drive that you copied before.

      Mount and open the flash drive EFI partition. (Inside Clover Configurator, Mount EFI -> Select flash drive in Efi Partitions list -> Mount Partition -> Open Partition)
       
      Copy the EFI folder to desktop.
       
      Go back to Clover Configurator, unmount the EFI partition of the flash drive and mount and open the EFI partition of internal disk.
       
      Move the EFI folder from Desktop to EFI partition of the internal disk.
       
      Eject the flash drive.
       
      Move all Kexts from EFI partition of internal disk to /Library/Extensions and make kext cache, with those commands in Terminal:
      sudo mv -R /Volumes/EFI/EFI/CLOVER/kexts/10.15/* /Library/Extensions/ sudo chmod -R 755 /Library/Extensions sudo chown -R root:wheel /Library/Extensions sudo kextcache -i / Restart the system.
       
       
      It's done!
       
       
      System Updates
       
      10.15.1
       
      Updated without changing or updating anything.
       

       
       
      10.15.2
       
      Before install, update the following kexts:
      - VirtualSMC.kext and all kexts and VirtualSmc.efi. I used version 1.0.9.
      - Lilu.kext. I used version 1.4.0.
      - WhateverGreen.kext. I used version 1.3.5.
      - AppleALC.kext. I used version 1.4.4.
      - VoodooPS2Controller.kext. I used version 2.1.0.
      (all download links above)
       
      Download the latest CLOVERX64.efi.zip build. I used version 5100.
      Mount EFI partition and unzip to:
      - /Volumes/EFI/EFI/CLOVER/CLOVERX64.efi
      - /Volumes/EFI/EFI/BOOT/BOOTX64.efi (rename the copy of CLOVERX64.efi to BOOTX64.efi
       
      Install update. Will reboot at least four time.
       
       

      And last but not least

      I would like to thank the following community members, by making these dream possible:
      @crushers, @snatch, @apianti, @blackosx, @blusseau, @dmazar, @slice2009, @autumnrain, @phpdev32, @EMlyDinEsH, @RehabMan, @Scellow, @mitch_de, @Shailua, @Andy Vandijck, @maxfierke, @ArturXXX, @LexHimself, @brumas, @"Sniki", @Mieze, @headkaze and all others members involved directly or indirectly.
       
       
      Attachments
       
       
      SSDT-L440.aml
      config.plist
      VoodooHDA.kext.zip
      VoodooPS2Controller.kext.zip
      Filevault 2 additional drivers.zip
    • By ajmcello
      The following files exist on the github:
       
      a) Clover.app-v1.11-5100.zip
      b) Clover_v2.5k_r5100.pkg
      c) CloverISO-5100.tar.lzma
      d) CloverV2-5100.zip
      e) CLOVERX64.efi.zip
       
       
      Is (a) for installing as an app on OSX? What is it for?
       
      What is (b) for, the .pkg? Not exactly familiar with .pkg. I've seen it used in UNIX, but I believe it's also a PKG format for installing packages on OSX. So, what is the difference between this (b), and (a)? (a) is labeled v1.11-5100, while (b) is labeled v2.5k_r5100.
      (c) contains only this file, Clover-v2.5k-5100-X64.iso, which I assume is a pre-bootloader.
      (d) looks like the NON ISO version, to build an ISO?
      (e) Contains CLOVERX64.efi, which is the same CloverX64.efi for Clover.app-v1.11-5100 and CloverV2-5100.zip
       
      Thanks for any explanations. 
       

       
       
       
       
    • By Dolamarv
      Hi all, I have been using an x240 thinkpad for more than 2 months as hackintosh and it is very stable. As of now I am in Catalina 10.15.1 and it’s running great until I updated it to the new clover build r5100. My laptop won’t automatically sleep when I close the lid down now. I reverted back to 5099 and close-lid automatic sleep works. I don’t know what caused the problem but I think 5100 fixed a dsdt patching of some sort that that conflicted with my config plist? Thanks in advance!
×