Jump to content

Lenovo ThinkPad T420 with UEFI Only


K0gen
 Share

5,271 posts in this topic

Recommended Posts

Don't have a real good fix - but I am pretty sure (based limited testing/run-time with alternatives) that it is VoodooPS2controller kexts causing problems with sleep - that is the blinking fast and keyboard/trackpad going away. if anyone has any thoughts on how to make VoodooPS2 behave, please share!

1) With Clover, I reverted to the set of PS2 kexts i was using in back in the 10.8.2 days, and the box ran ok - that is sleep/wake for the last day without issues. Of course, the ThinkpadUltraNav.kext is not as good as the one in VoodooPS2. but if sleep wake is important to you then this is a workaround. i asked RehabMan about Clover support, but he does have any experience etc.

2) With Chameleon - VoodooPS2 sleep/wakes fine with Chameleon. So this is an alternative is to boot via USB. but you have put back the kexts etc that is all the magic patching on kexts that Clover does.

In conjunction with this experiment, (I think) I learned how to inject a good EDID into the DSDT (whereas Clover was doing this as well). So no glitches with Clover or Chameleon boot.

EDID in dsdt:
 

            Device (IGPU)
            {
                Name (_ADR, 0x00020000)
// tjl-begin
// tjl - change VID to IGPU
// tjl - DualLink 1 for 1600x900
// tjl - EDID 1600x900 fix for glitch/hang
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package ()
                        {
                            "AAPL00,DualLink",
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL00,override-no-connect",
                            Buffer (0x80)
                            {
                                0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
                                0x30, 0xE4, 0xE2, 0x02, 0x00, 0x00, 0x00, 0x00,
                                0x00, 0x14, 0x01, 0x03, 0x80, 0x1F, 0x11, 0x78,
                                0x0A, 0x43, 0x45, 0x97, 0x59, 0x57, 0x8E, 0x28,
                                0x21, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
                                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x80, 0x25,
                                0x40, 0x80, 0x60, 0x84, 0x1A, 0x30, 0x30, 0x20,
                                0x35, 0x00, 0x36, 0xAE, 0x10, 0x00, 0x00, 0x19,
                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
                                0x47, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6C, 0x61,
                                0x79, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
                                0x00, 0x4C, 0x50, 0x31, 0x34, 0x30, 0x57, 0x44,
                                0x32, 0x2D, 0x54, 0x4C, 0x42, 0x31, 0x00, 0x38
                            },
                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            },
                            "model",
                            Buffer (0x17)
                            {
                                "Intel HD Graphics 3000"
                            },
                            "built-in", /*optional*/
                            Buffer (0x01)
                            {
                            0x00
                            },
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

 

  • Like 1
Link to comment
Share on other sites

@honeywell - exactly!!! this dsdt works with clover or chameleon for 1600x900 LCD with glitch or hangs. let me know if it works you. frankly, i have been booting my GUID disk with chameleon on USB for the last 3 or 4 days - so i can use voodoops2controller without the sleep/wake issues.

not sure what is going on with the white screen. perhaps you could try not patching SNBGraphics?

Link to comment
Share on other sites

Hey tluck - I figured out why I got the white screen. My EDID is actually different from yours... lol. Anyway, I went into the DSDT to edit the EDID. Here is the dsdt.dsl - I am unable to compile it with DSDTSE I get this error:

Error    4096 -																		  ^ syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK

 

I was hoping you could compile it for me... Thanks. https://dl.dropboxusercontent.com/u/66566087/dsdt.dsl

Link to comment
Share on other sites

@honeywell - interesting!!! so i tried your EDID from the dsdt you posted (which i presume you just replace the EDID block with your EDID.) well that seems to remove glitches/hangs too. so perhaps its about having a EDID defined at this level (IGPU vs Display ) and not so much a particular EDID that works.

 

your model is a bit different than mine. Vendor 6af Product 203e (vs mine is 213e) - so it would be looking for a display settings in

 

/System/Library/Displays/Overrides/DisplayVendorID-6af/DisplayProductID-203e

 

i attached zip with your dsdt (source and compiled) and your display stuff

 

this is iasl compiler that i used to compile the dsdt.dsl

the Display Override file for your product id (203e - is decimal 8254)

honeywell.zip

 

 

post-954945-0-32247000-1370876347_thumb.png

Link to comment
Share on other sites

hi.. my name is Cristian.. i'm italian and install os 10.8.3 in ThinkPad T420 (4236-3P9)

 

42363P9

 

i7-2620M(2.7GHz), 8GB RAM, 160GB Solid State Drive, 14in 1600x900 LCD, NVIDIA N12P-NS1 1GB, CDRW/DVDRW, Intel 802.11agn wireless, WWAN option, Bluetooth, modem, 1Gb Ethernet, UltraNav, Secure Chip, Camera, 6c Li-Ion, Win7 Pro 32

 

 

the os work perfect, with fusion i install win7 (for my work), but i have problem with audio and Bluetooth ( wireless not work but is ok), i try to install all kext of this post but nothing...

any idea for me? or kext?

Link to comment
Share on other sites

@vision7 - 

 

bluetooth should work - but you may need to turn it on. you can change the kext so it picks up your model in

/System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/BroadcomBluetoothHCIControllerUSBTransport.kext/Contents

edit Info.plist 

change 8532 to 8575 

 

the audio is looking for layout ID 12 - do you have that in your dsdt? also the AppleHDA modified for the T420 is expecting conexant 20590 codec id  as shown below

this is from HDEF device

 Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_S3D, 0x03)
                Name (RID, 0x00)
                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)
                }
            }
        }


 

  • Like 1
Link to comment
Share on other sites

Trying to attempt this on my T530, but running into problems when trying to boot off the USB with Clover - I'll get the initial boot menu, select the option to boot from the usb, and be prompted with the following screen:

 

install_zpsa04c8484.jpg

 

This is after attempting the "boot in safe mode" from the right click menu in Clover - previous attempts would lock up at the "root device uuid is..." prompt.

 

I've managed to get ML installed previously using the ##### method, but would much rather go the UEFI route with a clean install. I can boot into the previous ML installation with the Clover usb if I select the safe mode option, but otherwise it gets aways into loading drivers and then reboots.

 

Any suggestions?

Try again using my older custom package from post #117 and report back.

 

BTW: I guess I'll be switching from T420 to T430 soon. Right now I have both machines to decide witch one to sell. The T430 is a stronger model (i7) with optimus graphic card that I've always wanted to play with in OSX. To bad I still have very little time lately to do some serious hackintoshing, but I can report this about the new T430:

- I can boot successfully with older clover r1229 (I didn't had the time to investigate why Clover newer releases wont boot)

- USB3 works excellent OOB (booting from 32GB USB3 pen-driver - super fast)

- the NVIDIA NVS 5400M - works with graphic enabler (I have black screen with HD4000)

- too bad the whitelist bios can't be flashed to this device (no WiFI swapping for broadcome model) and I don't want to solder the eprom and flash it outside using phoenix flasher. - Can you guys suggest USB wifi that works OOB?

- T430 boots clover in full resolution (1600x900 and looks gorgeous) so I guess I'll update the ThinkPad theme background for high res in free time :)

  • Like 1
Link to comment
Share on other sites

 

@vision7 - 

 

bluetooth should work - but you may need to turn it on. you can change the kext so it picks up your model in

/System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/BroadcomBluetoothHCIControllerUSBTransport.kext/Contents

edit Info.plist 

change 8532 to 8575 

 

yes, i have turned on the switch.. 
i have tried to insert new 8575 but when i open the network in system preference i find a new ethernet but no a bluetooth...
 
this evening i try with the audio.. 
Link to comment
Share on other sites

@vision7 - 

osx does not support intel centrino wifi - so the internal wifi wont work. bluetooth should work as that is usually a separate broadcom device on 420s.

is your bluetooth light on - along the bottom of the LCD panel? does it show up in your "About This Mac" system report?


@kogen - for USB wifi, i have 2: Airlink101 and Asus N10. these 2 both use a RealTek chip (RTL8192S). got updated drivers from realtek's site.

Link to comment
Share on other sites

Hello!
 
I have same situation. I've got old T510 and new W530 and little stuck with W530 in case of nvidia gpu.
 
Boots fine with latest Clover without any trouble on both laptops. And even installed new 10.9 with clover with no problems)
 
About your T430 I have few suggestions:
 
1) Wi-Fi card can be replaced with AzureWare AW-NU706H it's in mPCIe form factor but instead of pci-e it use usb pins , based on USB chipset Ralink RT3070 which works fine in OSX with ralink drivers. Also some realtek usb cards may work well
 
2) HD4000 need's correct id injection, I think in T430 we've got same layout of outs on HD4000 and Nvidia NVS. HD4000 can only drive internal LCD, nvidia can drive LCD + all outs (VGA+DP+Dock outs)
In my case I use AAPL,ig-platform-id: 01660004, and HD4000 works fine with it
 

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0E)
                        {
                            "AAPL,ig-platform-id",
                            Buffer (0x04)
                            {
                                0x04, 0x00, 0x66, 0x01
                            },
                            "device-id",
                            Buffer (0x04)
                            {
                                0x66, 0x01, 0x00, 0x00
                            },
                            "vendor-id",
                            Buffer (0x04)
                            {
                                0x86, 0x80, 0x00, 0x00
                            },
                            "subsystem-vendor-id",
                            Buffer (0x04)
                            {
                                0x6B, 0x10, 0x00, 0x00
                            },
                            "subsystem-id",
                            Buffer (0x04)
                            {
                                0xEA, 0x00, 0x00, 0x00
                            },
                            "revision-id",
                            Buffer (0x04)
                            {
                                0x09, 0x00, 0x00, 0x00
                            },
                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

 
 But I've also have some differences:

 

USB3 works ooh but only with usb 3.0 devices - my seagate flex hdd and transcend card reader works in usb 3.0 ports but usb 2.0 devices doesn't.

 

Also I can't boot fine from usb devices, boot stuck after some time on wait for root device...

 

*** W530 specific

 

My nvidia gpu doesn't boot to gui and stuck in console. It's kepler based on gk107 chip as GT 650m in my retina mac but it simple doesn't work. All tries with no luck 

 

 

BTW: I guess I'll be switching from T420 to T430 soon. Right now I have both machines to decide witch one to sell. The T430 is a stronger model (i7) with optimus graphic card that I've always wanted to play with in OSX. To bad I still have very little time lately to do some serious hackintoshing, but I can report this about the new T430:
- I can boot successfully with older clover r1229 (I didn't had the time to investigate why Clover newer releases wont boot)
- USB3 works excellent OOB (booting from 32GB USB3 pen-driver - super fast)
- the NVIDIA NVS 5400M - works with graphic enabler (I have black screen with HD4000)
- too bad the whitelist bios can't be flashed to this device (no WiFI swapping for broadcome model) and I don't want to solder the eprom and flash it outside using phoenix flasher. - Can you guys suggest USB wifi that works OOB?
- T430 boots clover in full resolution (1600x900 and looks gorgeous) so I guess I'll update the ThinkPad theme background for high res in free time :)

Link to comment
Share on other sites

@joshhh - Thanks for suggestions - I'll try to find some spare time and dig in a bit more into T430 + OSX. Please share your W530 kexts, dsdt and config.plist.

Ohh and You are right about the USB3 ports - I just didn't have time to put anything eles than my USB3 pen-drive. It seems that USB2 devices are not deferred to EHC controller thus no other driver takes over them. Use GenericUSBXHCI driver from this thread. - I wonder if we could fix it in DSDT?

Link to comment
Share on other sites

10.8.4 below

10.8.5 here

 

Updated 29-August-2013

 

Revised the attached zip file with...

  • Updated to Clover b1974
  • Updated ethernet driver AppleIntelE1000e.kext to v2.4.14
  • Updated to Rehabman's FakeSMC.kext + Sensors to v5.2.772
  • Updated to Rehabman's VoodooPS2Controller.kext to v1.8.6 
  • Replaced VoodooBattery.kext with Rehabman's AppleSmartBatteryManager.kext
  • Replaced v1.3.5 AppleACPIPlatform.kext with ErmaC's patched ML (v.1.7) version

Cuts boot time in half - the rotating thing only goes round and round about 5 times now vs 12+ !!!

Sleep/wake seems to work just as good as with the snow leopard ACPI kext ... note: the "moon" icon takes a little longer to light up!

 

Updated 31-July-2013

  • updated generic config.plist to remove boot args WithKexts NoCaches and added them in SystemParameters section
  • updated to Clover 1942

Updated 22-July-2013

  • Updated to Clover b1928 
  • Updated VoodooPS2Controller.kext to v1.8.5 (RehabMan version)
  • Updated FakeSMC.kext to v5.2.724 (RehabMan version with sensors - adding Plugins for ACPI and CPU only)
  • Streamlined DSDT
  • Slight mods to OEM config.plist ( not sure if it made a difference! for sleep ) 

Updated 19-June-2013 

  • Fixed OEM config.plist to inject the EDID (sorry i had removed for some testing  but forgot to put it back!)
  • Replaced OEM dsdt.aml with same EDID
  • Updated to Clover b1888
  • change generic config.plist to be more "generic" compared to OEM/<yourproduct>/config.plist

 

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

 

T420 users:

 

Attached is a current full /EFI pack for T420 on Clover and OSX 10.8.4

 

Notes:

there are 3 kext folders 

10.8 (which are good for vanilla boot) before using OEM folder and/or modified kexts are in place.

  • FakeSMC.kext v5.2.772 - core hack mechanism + plugins -  Follow link to download full package - so you can install HWMonitor.app etc (just select Plugins ACPI and CPU)
  • VoodooPS2Controller.kext v1.8.5 v1.8.6 - Keyboad/Trackpad -   Follow link to get full package and installation instructions to install daemon Note: may still be subject to random sleep/wake issues... versions 1.8.5+ are proving to be more reliable.
  • AppleIntelE1000e.kext v2.2.14 v2.4.14- gigE - goes in /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns

10.8-SLE which can be combined with above and will replace your /S/L/E versions.

  • IOAHCIBlockStorageInjector.kext -  makes DVD an internal device so iDVD player works.
  • AppleHDA.kext (patched 10.8.4)- for full audio support - note: requires matching DSDT sections using Conexant Codec and layoutID 12.
  • AppleACPIPlatform.kext (v1.7) - upgraded to ErmaC's Patched ML kext for sleep/wake + battery
  • AppleSmartBatteryManager (v1.33) VoodooBattery.kext - using Rehabman's kext configured for v3 ACPI per his instructions to show/track battery info on menu bar - requires rollback AppleACPIPlatform.kext

​10.8-Chameleon - extra patched kexts in /S/L/E for use with Chameleon 

  • AppleCPUPM, AppleRTC and AppleSNBGraphicsFB - are not really necessary to install/replace with clover since it does the patching. Install for Chameleon compatibility. 

 

The DSDT (in OEM) has some new mods in the IGPU are that seem to remove glitches/hangs on either Clover or Chameleon - go figure?! And there is generic dsdt for non-1600x900 users to try.

 

Basic instructions and notes:

  1. install vanilla 10.8.4 to GUID formated disk - use USB or other method
  2. install standard Clover b1888 b1928 b1942 b1974 into ESP - use link to download from sourceforge.
  3. replace /Volume/ESP/EFI with contents in zip
  4. boot up vanilla 10.8.4 with clover - this will use the kexts and "top" level config.plist
  5. now install kexts from ESP or zip to boot drive into /S/L/E (from /EFI/CLOVER/kexts/10.8 and 10.8-SLE) or use myhack method. see notes above
  6. here is the tricky part - fix OEM folder to match your system 
  7. DO NOT just hastily rename the folder OEM/4236AT9 to match your productID -  you may need to modify some things to make it compatible with your specific model details.  If you have a 2.5 Ghz CPU and 1600x900 LCD, you can probably just use items as is - that is rename 4236AT9 to match your product name. 

- the OEM/4236AT9/ACPI/patched/ssdt.aml is CPU specific - dont use unless you have i5-2520 (or similar)

- the OEM/4236AT9/config.plist is CPU and display specific. 

 

OTHERWISE, If you do NOT have 1600x900 LCD:

- replace OEM config.plist with config.no-edid.plist

- edit and change config.plist Graphics section - set DualLink to 0

- replace (move/rename) the generic-dsdt.aml file to  OEM/<4236AT9/ACPI/patched/dsdt.aml

 (this one does not have DualLink or EDID definitions)

 

If you do NOT have same speed/type CPU (i5 2520) then do these 3 things:

- remove ssdt.aml - may not work for your CPU 

- edit and change config.plist ACPI section - change generate P/C states to true - clover may do a good job for your CPU.

- edit and change config.plist CPU section - fix speeds (or remove CPU section) to match your CPU. 

T420-EFI-Clover-b1972.zip

Edited by tluck
  • Like 6
Link to comment
Share on other sites

T420 users:

 

attached is a current full EFI pack for T420 on Clover v1858 and OSX 10.8.4

 

Notes:

there are 2 kext folders 

10.8 (which are good for vanilla boot) before using OEM folder and/or modified kexts are in place.

10.8-SLE which can be combined with above and will replace your SLE versions.

 

- VoodooPS2Controller seems still cause random sleep issues.

- AppleCPUPM, AppleRTC and AppleSNBGraphicsFB are not really necessary to install/replace as clover does the patching.

 

The DSDT (in OEM) has some new mods in the IGPU are that seem to remove glitches/hangs on either Clover or Chameleon - go figure?! And there is generic dsdt for non-1600x900 users to try.

everything is ok here with this new pack (generic dsdt is ok too)

thanks a lot

updated to 1888 ;)

Link to comment
Share on other sites

Today we had some fun with @k3nny about the OSX Mavericks icon in ThinkPad theme and we came up with this. (just in case you were wondering who is making the Mavericks)

 

post-112035-0-68830900-1371941487_thumb.jpg

 

I think this Mavericks icon will be the official 10.9 Developer Preview icon in ThinkPad theme :)

Here is the file: os_mav.icons.zip

  • Like 2
Link to comment
Share on other sites

Hey guys... still frustrated with the graphics glitches in my 1600x900 T420 (HD3000 only). Injected EDID with the DSDT, still no changes. Anyone know what I can do to understand what is causing the problem and fix it? Using tluck's pack and using my own EDID in the DSDT.

Link to comment
Share on other sites

@dnr

 

- i suggest you first install with the standard clover installer (pkg) then you can replace the /EFI/CLOVER layers+items in stages.

- the generic config.plist + kexts should be able to boot up - not all things will work but it should be good to get running.

- the OEM directory name needs to match your product ID and then further you may need to modify config.plist to adjust speeds to match your CPU.

this then has the custom DSDT to get the rest of things working (as they did on chameleon)

Link to comment
Share on other sites

I tried to install with standrd clover installer, I can boot up.

Then I replaced /EFI/CLOVER folder on EFI partition, and I can't boot.

 

P.S: I also changed product id in EFI/CLOVER/OEM/ folder to my product ID: 4236W63

Link to comment
Share on other sites

@dnr - 

 

where does it get stuck? using that OEM folder presumes you moved all the kexts from /EFI/CLOVER/kexts to your system in /S/L/E. just checking.


@honeywell

 

when I  Kogen's EDID - i get rid 99.99% glitches and hangs. but besides EDID, i did upgrade to BIOS 1.44 and i shut off VT-d virtualization. even when using my old dsdt .... tried to recreat the problem but now i barely get glitches or hangs, compared to what i used to get (had to use quartz debug to turn off 2d acell  it was so painful). 

Link to comment
Share on other sites

@tluck

 

I forgot to put kexts to /S/L/E, now I done this with "kext drop" and can boot up. Thank you for you help!

 

@honeywell

 

in ThinkPad bios:
Security > Intel ® VT-d Feature [Disabled]
 

Link to comment
Share on other sites

 Share

×
×
  • Create New...