Jump to content

Lenovo ThinkPad T420 with UEFI Only


K0gen
 Share

5,282 posts in this topic

Recommended Posts

Thanks tluck.

If I want to use 2 monitor, one primary (Laptop screen) one extend (Digital Port), how must I change ???

 

@parcox - well you could try my DSDT and then look for diffs.

 

@oxconan and trhoan - SNB patching.

 

you need to get a real Plist editor (for example, i use Plist Editor Pro - which is shareware) to translate the encoding. 

 

this what the kext patch in config.plist looks like in text. the red shows the 2 changes - 1) increased max brightness and in this case replace the 4th buffer to be VGA. so if you do not need VGA then just change the first line and leave the 4 buffers alone.

 

default -

(1) 0503 - LCD

(2) 0205 - DP on side

(3) 0304 - DP on dock

(4) 0406 - DVI on dock

 

 

original

01020400 10070000 10070000 

05030000 02000000 30000000 

02050000 00040000 07000000 

03040000 00040000 09000000 

04060000 00040000 09000000

 

patched

01020400 12130000 12130000 

05030000 02000000 30000000 

02050000 00040000 07000000 

03040000 00040000 09000000 

06020000 10000000 09000000

  • Like 1
Link to comment
Share on other sites

Thanks tluck! I changed to use DVI on dock, I can use two monitor

patched:

01020400 12130000 12130000 

05030000 02000000 30000000 

02050000 00040000 07000000 

03040000 00040000 09000000 

04060000 00040000 09000000

  • Like 1
Link to comment
Share on other sites

Thanks, it works. We could use PlistEditor Pro or Xcode to edit it

 

hoanf

 

@parcox - well you could try my DSDT and then look for diffs.

 

@oxconan and trhoan - SNB patching.

 

you need to get a real Plist editor (for example, i use Plist Editor Pro - which is shareware) to translate the encoding. 

 

this what the kext patch in config.plist looks like in text. the red shows the 2 changes - 1) increased max brightness and in this case replace the 4th buffer to be VGA. so if you do not need VGA then just change the first line and leave the 4 buffers alone.

 

default -

(1) 0503 - LCD

(2) 0205 - DP on side

(3) 0304 - DP on dock

(4) 0406 - DVI on dock

 

 

original

01020400 10070000 10070000 

05030000 02000000 30000000 

02050000 00040000 07000000 

03040000 00040000 09000000 

04060000 00040000 09000000

 

patched

01020400 12130000 12130000 

05030000 02000000 30000000 

02050000 00040000 07000000 

03040000 00040000 09000000 

06020000 10000000 09000000

Link to comment
Share on other sites

tluck (or anyone following this post)- Are you aware of any existing/modified VoodooSDHC.kext file that allows the card reader to work for the T420/X220? The reader is a model Ricoh R5C822.

Link to comment
Share on other sites

HI all,

 

I have a well working 10.8 installation in legacy BIOS mode on my W520 4270CTO. Since I just got new SSD, I decided to try a fresh install of Mavericks 10.9.3 and try to go UEFI only with CLOVER.

 

I created the installation USB Drive which boots fine to Clover in UEFI only mode, but I can't get to the GUI of the OSX Installer. Instead, I get a BLACK SCREEN. It also looks like the backlight is completely off. It's not hung, it seems to load fine, but the screen seems to shut off instead of displaying the OSX GUI. 

 

Can anyone provide me with a config.plist for clover that might work just to get me to the OSX Installer? Thanks.

Here are the systems' specs:

 

i7- 2.4 Ghz Quad

Nvidia Quadro 1000m

12GB Ram

Link to comment
Share on other sites

well since you have working install of 10.8, i might first get that working with a clover config on UEFI. then you can use that same config to get the mavericks installer working. if you get my zip bundle that may give you good starting point. replace the T420 DSDT with your DSDT. i have to wonder if the nvidia card is the issue here with the installer going to black screen?  did your try to turn that off for the installer and use the just the intel HD graphics?

Link to comment
Share on other sites

I have always had the system on Discrete graphics only, so didn't think to try the Intel GPU. My GPU is not injected in my DSDT, I use GraphicsEnabler=Yes in Chameleon which has never been a problem for me. Do you think I would need GPU injection in my DSDT to get Clover to work?

 

I'll try your zip bundle with my DSDT and maybe the Nvidia injection. Could you point me to the latest one?

Link to comment
Share on other sites

As you suggested, I was able to install using Integrated Graphics with the latest version of Clover and a very minimal config.plist. But when I switch back to dedicated graphics, I get the same problem, the system boots fine, but the screen shuts down when the OS should be coming on. The interesting part is that the OS seems to be functionning because the drive access led flashes and there seems to be a response to keyboard input. The other thing is if I boot with arg GraphicsInjector=No, instead of (seemignly) starting the OS, the system reboots. 

 

I really need to use dedicated graphics on this system. 

Link to comment
Share on other sites

@SimonLL - well sorry i can't be much help as i don't have an Optimus card.  

 

does chameleon patch the DSDT when you inject Graphics so you could extract and save the working dsdt from 10.8 or 10.9 with chameleon?

 

if there is gfx kext for the optimus, then i can only guess the problem is a dsdt config issue since it cannot bring up gfx mode (black screen) properly.  did you try some of the clover functions for NVDIA injection? 

 

this group thread might give some ideas as they discuss Optimus and Clover configurations.            #1            

Link to comment
Share on other sites

@SimonLL what mac model are you using? I recently ran into a similar issue with Clover on one hand and with the 10.9.3 update on another. Basically I was using a MacBookPro8,x which resulted in no gui with Clover and and only external monitor output after updating from 10.9.2 to 10.9.3 with Chameleon. It is worth noting that my configuration stayed basically the same since Lion. Anyway I tried an iMac model (iMac11,2 or iMac13,2) and it allowed me to get full graphics with Clover and with 10.9.3 with Chameleon.

Link to comment
Share on other sites

Clover seems to be using MacBookPro8,3 for SMBIOS. 

 

I got a little bit further. I can now boot to the desktop using the Discrete Graphics, but I get no acceleration, lots of screen flicker and a resolution of 1280x800. I was able to get there by rolling back the NVDA kexts to their 10.9.2 version. NVDAResman.kext is the problem I think. 

 

Now I am unsure how to tackle my problem, because I'm not sure why I get a bad resolution. My screen EDID is not being picked up by OSX. But I don't get any acceleration from the GPU, so I don't know which to try and fix first. I've tried Modifying the Overrides as per this post: http://www.insanelymac.com/forum/topic/208410-fixing-scrambledstretched-or-wrong-resolution-laptop-display-problems/

 

But it didn't change anything. I do have the CustomEDID and InjectEDID options enabled in Clover, but it doesn't change anything either. There seems to be a major problem with the way my Nvidia card is being handled with Clover. My 10.8.2 legacy Chameleon install has been working fine with GraphicsEnabler=Yes.

 

I can upload a DarwinDumper if it's useful to anyone.

 

Thanks a lot for the help!!

Link to comment
Share on other sites

Have you tried an iMac smbios? For me this was key to successfully boot to gui. Just FYI in the config.plist I have Duallink 1, Inject NVIDIA, InjectEDID true, LoadVBios true and VRAM set to 2048. CustomEDID wasn't necessary for my screen. You can also try to inject NVCAP, but that didn't make a difference for me.

 

Also if you don't get acceleration, I would think of incompatible kexts, so make sure you replaced them all (NVDA*/GeForce*) correctly. Or nvidia isn't injected properly.

Link to comment
Share on other sites

Thanks a lot Shikumo!!!!!! I seem to have acceleration, native resolution and stable graphics now. Is your W520 fully functional? Do you know what are the implications of using a SMBIOS that is not even close to the machine we have?

 

As I wanted to do a fresh install, I'm going to start playing with all the other functions that need to work, namely :

Speedstep,

Sound,

Sleep,

Brightness (which I lost on my 10.8.2 build)

 

Also, do you think I should try to install the Nvidia Web drivers? There is apparently a way to modify the installer so that you can install it on other machines (it's locked to MacPro SMBIOS).

 

Thanks again for all the help!

Link to comment
Share on other sites

@SimonLL

 

clover should be able to patch your dsdt the rest of the way to fix sleep , brightness and speedstep.  although i prefer to make my own ssdt ( see my guide for details on how to do that with the script ssdtPRgen-clover.command from the zip bundle).  you can look at the config.plist in my zip for some ideas on. even though i use a custom dsdt - the same config works without a dsdt and clover patches on the fly to about 95% of functions. 

 

Sound depends on your codec - what did you use in the past? what is your codec? voodooHDA is pretty good in general or there maybe a patched AppleHDA 

 

ah the MBP8,3 strikes again. yeah that model only has 1 frame buffer. thats why i put MBP8,1 in the clover config - good for HD 3000 graphics and external monitors.  there isn't any harm in using other SMBIOS models as this generally used to figure out graphics buffers and other power management matches. 

 

the imac11,2 model makes sense to me for your box -  as that is core i5 and i7 (HD graphics) + discrete (AMD) model. 

iMac12,1 is even a closer match - sandy bridge + gfx . but if you have it working already then good.

 

here is a partial list of models and frame buffers (6 of 8) . some are for use with discrete graphics and some with integrated. 

 

...

      MacBookPro8,1)
          let tableNumber=0
          ;;
      MacBookPro8,2)
          let tableNumber=1
          ;;
      MacBookPro8,3)
          let tableNumber=1
          ;;
 
      Macmini5,1)
          let tableNumber=2 
          ;;
      Macmini5,2)
          let tableNumber=2 
          ;;
      Macmini5,3) # Using GFX0 instead of IGPU
          let tableNumber=3
          ;;
      MacBookAir4,1)
          let tableNumber=4 
          ;;
 
      MacBookAir4,2)
          let tableNumber=4 
          ;;
      iMac12,1) # Using GFX0 instead of IGPU
          let tableNumber=5 
          ;;
      iMac12,2)
          let tableNumber=5 
 
there are 8 tables in the SNBGraphic buffer kext - only the first 2 has 0503 which means LCD 
 
0000000: 0102 0400 1007 0000 1007 0000  ............
000000c: 0503 0000 0200 0000 3000 0000  ........0...
0000018: 0205 0000 0004 0000 0700 0000  ............
0000024: 0304 0000 0004 0000 0900 0000  ............
0000030: 0406 0000 0004 0000 0900 0000  ............
 
000003c: 0102 0100 1007 0000 1007 0000  ............
0000048: 0503 0000 0200 0000 3000 0000  ........0...
0000054: 0000 0000 0100 0000 4000 0000  ........@...
0000060: 0000 0000 0100 0000 4000 0000  ........@...
000006c: 0000 0000 0100 0000 4000 0000  ........@...
 
0000078: 0002 0300 0000 0000 ffff ffff  ............
0000084: 0205 0000 0004 0000 0700 0000  ............
0000090: 0304 0000 0004 0000 0900 0000  ............
000009c: 0406 0000 0008 0000 0600 0000  ............
00000a8: 0000 0000 0100 0000 4000 0000  ........@...
 
00000b4: 0000 0000 0000 0000 0000 0000  ............
00000c0: 0000 0000 0100 0000 4000 0000  ........@...
00000cc: 0000 0000 0100 0000 4000 0000  ........@...
00000d8: 0000 0000 0100 0000 4000 0000  ........@...
00000e4: 0000 0000 0100 0000 4000 0000  ........@...
 
00000f0: 0102 0300 1007 0000 1007 0000  ............
00000fc: 0100 0000 0200 0000 3000 0000  ........0...
0000108: 0205 0000 0004 0000 0700 0000  ............
0000114: 0304 0000 0004 0000 0900 0000  ............
0000120: 0000 0000 0100 0000 4000 0000  ........@...
 
000012c: 0000 0000 0000 0000 0000 0000  ............
0000138: 0000 0000 0100 0000 4000 0000  ........@...
0000144: 0000 0000 0100 0000 4000 0000  ........@...
0000150: 0000 0000 0100 0000 4000 0000  ........@...
000015c: 0000 0000 0100 0000 4000 0000  ........@...
 
0000168: 0001 0000 0000 0000 0000 0000  ............
0000174: 0000 0000 0100 0000 4000 0000  ........@...
0000180: 0000 0000 0100 0000 4000 0000  ........@...
000018c: 0000 0000 0100 0000 4000 0000  ........@...
0000198: 0000 0000 0100 0000 4000 0000  ........@...
 
00001a4: 0103 0400 1007 0000 1007 0000  ............
00001b0: 0100 0000 0004 0000 3000 0000  ........0...
00001bc: 0205 0000 0004 0000 0700 0000  ............
00001c8: 0304 0000 0004 0000 0900 0000  ............
00001d4: 0406 0000 0008 0000 0600 0000  ............
Link to comment
Share on other sites

Thanks tluck.

 

For sound, I had good success with the patched AppleHDA.kext from Joshhhhh in this thread: http://www.insanelymac.com/forum/topic/274218-guide-lenovo-thinkpad-t510510i-plus-t410-and-w510-106-107-108-109-all-working-ok-20131112-update/page-6

 

My codec seems to be the same as the T420 which is: cx20590.

 

I'm still trying to wrap my head around how to work with DSDT and Clover. I put the dsdt.aml file in /EFI/CLOVER/ACPI/patched, then how do I tell Clover to use it? I don't mind starting a new DSDT from scratch on this install, but I'm not sure how the patches are handled. If I patch manually with MacIASL, I don't need to patch with Clover? Should I patch only with Clover and forget about patching manually? Is Clover able to do the right HDEF patch for sound (for my codec)? Basically, I'm a total noob regarding Clover's way to handle this and the documentation is not as clear as the Chameleon docs. Been on this for 2 days straight, the concepts are slowly making their way into my head ;-).

 

Thanks for the help!


Also, if the Graphics problem is in the SMBIOS, is it possible that it could be fixed by patching the AGPM kext?

Link to comment
Share on other sites

I have just used your script to generate an SSDT.aml which it has put in my ACPI/patched folder. But now, it seems like my CPU is running at Max Turbo all the time. I have disable Generate P and C states in Clover after putting the SSDT.aml in the patched folder. How can I get Clover to use it?

 

BTW I'm using Clover Configurator to modify my config.plist.

 

Thanks!

Link to comment
Share on other sites

@SimonLL -

 

well then try the AppleHDA from my zip which is cx20590 and has some improvements over joshhh version. support dock ports for example and auto switching + eapd 

 

if you put the DSDT in /EFI/.../patched, clover will use it by default. then depending on other settings in config.plist , it will then patch and fix it up depending on the FIX flags you set. 

 

clover got my dsdt about 95% - everything works but the battery - and yes it will fix up HDEF for audio - assuming the custom AppleHDA is place.

i boot DSDT-less and then  extracted it and  patched it up the rest of the way with maciasl. (manwe150 did much of the early work and then its been slowly improved) any way you can look at what i did for HDEF, HDMI, IGPU, PNLF.  the source dsdt.dsl with comments is in the zip too.

 

i attached config.plist that i used for DSDT-less boot. rename it config.plist. 

 

you may need to drop some tables for the new SSDT to work properly - again see my example.

config.nodsdt.plist.zip

Link to comment
Share on other sites

OK, going to bed after a very long day of fighting with this. I'm so close I can feel it, but not quite there yet.

 

Got SSDT sorted out through Clover generation, CPU is scaling well, idle at 800Mhz, Turbo at 3.2Ghz. It's fine with me.

 

Sound: I've installed the latest AppleHDA from @tluck in S/L/E with Kext Utility, patched my DSDT accordingly, but still no sound. Volume buttons show the volume bar with a forbidden sign under.

 

Brightness: I can see the slider in Sys Prefs, but moving it doesn't change anything. ScrLck shows the brightness pop-up, but nothing happens, Pause does nothing. That is with clover patching the PNLF and Displayfix. No manual patching of DSDT for PNLF. 

 

Sleep: The system seems to sleep for a couple seconds, then wakes up. I am using VoodooPS2. I could always revert back to UltraNav kext, but I'd rather not, since VoodooPS2 gives me middle click functionality on the trackpoint (woohoo! been waiting a long time for that). Also, all usb ports seem to wake from sleep ok... for now.

 

Battery: I've tried the kext provided in @tluck pack, but it won't detect my battery. VoodooBattery was working on my previous ML/Chameleon install, but would like to get a cleaner way if possible.

 

SMBIOS: If I can get everything else working, this minor annoyance won't matter, but it's still bugging me that I can't use the right one (MacbookPro8,2).

 

That's it for now. 

Good night!

Link to comment
Share on other sites

@SimonLL -

 

sound - what is your layoutID in the DSDT for sound? should be 12.

battery - you will need custom DSDT mods for ACPIBatteryManager to work. VoodooBattery may be a better choice until you make all  _BAT mods

sleep - did you do all the DSDT patches like in the config i posted?

SMBIOS - i would stick to a model that provides the proper frame buffers for your gfx cards.

 

on my system with that config.plist (nodsdt), it will boot "DSDT-less" (clover will patch it up) and then with the custom kext-set installed on SLE, everything works (sleep etc), except battery.

 

for you to use that config.plist, you might just have to tweak the SMBIOS model to iMac... and fix the gfx injection for nvidia?

Link to comment
Share on other sites

Here's my HDEF part of DSDT. I basically copied yours from the DSL:

Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_S3D, 0x03)
                Name (RID, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x04
                })
                Method (_PSW, 1, NotSerialized)
                {
                    Noop
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x0C)
                        {
                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }, 

                            "layout-id", 
                            Buffer (0x04)
                            {
                                0x0C, 0x00, 0x00, 0x00
                            }, 

                            "codec-id", 
                            Buffer (0x04)
                            {
                                0x6E, 0x50, 0xF1, 0x14
                            }, 

                            "device-type", 
                            Buffer (0x11)
                            {
                                "Conexant CX20590"
                            }, 

                            "MaximumBootBeepVolume", 
                            Buffer (One)
                            {
                                0x01
                            }, 

                            "PinConfigurations", 
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
        }

On my ML build this next one was working with Joshhh Patched AppleHDA:

Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_S3D, 0x03)
                Name (RID, Zero)
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x04
                })
                Method (_PSW, 1, NotSerialized)
                {
                    Noop
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                            "layout-id", 
                            Buffer (0x04)
                            {
                                0x0C, 0x00, 0x00, 0x00
                            }, 

                            "PinConfigurations", 
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
        }

Not sure what is the culprit here. I do have a couple of Sound assertion things pop-up in my verbose boot:

 

2014-06-21 11:40:32.000 AM kernel[0]: Sound assertion in AppleHDAEngine at line 17824
2014-06-21 11:40:32.000 AM kernel[0]: Sound assertion in AppleHDADriver at line 2859
2014-06-21 11:40:32.000 AM kernel[0]: Sound assertion in AppleHDADriver at line 209
2014-06-21 11:40:32.000 AM kernel[0]: Sound assertion in AppleHDADriver at line 1094
 
My conig.plist is pretty similar to yours except for the GFX and I also boot with npci=0x2000 and slide=0. I'm not 100% sure I need it though. The ACPI section has the only differences that I'm using Clover generated SSDT with Drop_OEM, maybe the wrong method, but seems to work...
 
Sleep seems to work, but I have a couple of small bugs: I patched the _PTS and _WAK sections of my DSDT, but the Sleep LEDs (little moon and power button LED) keep flashing after wake. Not the slow sleep pulse, a fast flash (2/sec).
Also, USB is VERY slow to wakeup. Which make the internet slow to wakeup since I have Wifi through USB adapter.
 
Is there any DSDT edits for brightness? Are they related to the screen or the GPU?
Link to comment
Share on other sites

I just noticed I have a bunch of audio devices from Adobe. It's very weird since I did not install Adobe suite yet. My system seems to see the Intel Audio device, but I don't get any sound. Really struggling with this.

 

How can I remove all those Adobe devices?

Audio_Devices.png

 

I also seem to have 2 devices relating to AppleHDAController in IOReg: My HDEF and Nvidia's HDAU. Could there be a conflict between the 2? The HDAU one is clearly injected by clover with the rest of the graphics card...

Link to comment
Share on other sites

OK

 

Got sound to work by booting Clover without caches. But if I boot normally, sound doesn't work. I have rebuilt caches using Kext Utility in tluck's pack multiple times, but it doesn't seem to affect clover. Is there something I'm missing here? I would love to boot with caches if possible for full speed boot... Although on a SSD loading all kexts is not that long... ;-)

 

Brightness is still a no go. But the slider is present, PNLF is in DSDT, it's just the GPU part of the dsdt I'm missing...

Link to comment
Share on other sites

 Share

×
×
  • Create New...