Jump to content
bisk

HD4000 video challenges on Lenovo ThinkPad T430

3 posts in this topic

Recommended Posts

Hey all,

 

I have a nearly perfect Sierra 10.12.6 Lenovo ThinkPad T430 which I am ready to upgrade but would like to solve my last outstanding issue first.

 

Credit here goes to a guide over on the Tomato site by user ThiagoSchetini.

 

However, what confuses me is that this guide claims that the external DP video works while the ig-platform-id recommended for use is 0x01660004.

 

Well 0x01660004 only supports 1 framebuffer for the internal LVDS. So how then can the external DP be reported as working ?

 

If I change ig-platform-id to the more popular mobile setting of 0x01660003 then the external DP does work perfectly but now the internal display goes low res, spreads wide and turns purple like a big bruise !

 

I do have a 1600x900 display and did try DualLink so that ain't it. Plus the LCD looks great with ig-platform-id = 0x01660004.

 

I have tried all possible mobile ig-platform-id settings for the HD4000 and only 0x01660003 and 0x01660004 provide any display on the LCD with only 0x01660004 being usable. And again, only 0x01660003 opens up the external port.

 

I threw a Hail Mary and installed Lilu and IntelGraphicsFixup but, unfortunately, these were of no help.

 

I generated several IORegistry listings and only noticed one difference between 0003 and 0004.

 

There were differences in the hextable for the AppleIntelFramebuffer@0->startup-timing property.

 

Should I be trying to reset this via DSDT or am I just spinning my wheels here ?

 

Any ideas would be so appreciated.

 

I am on the latest BIOS v2.76 and there is no ability to manually set internal graphics memory values.

 

 

 

Edited by bisk
Posted link by mistake

Share this post


Link to post
Share on other sites
Advertisement

OK cool,

 

Solved this one myself.

 

Turns out that only a simple patch to AppleIntelFramebufferCapri.kext is needed.

 

Since my internal display was fine with ig-platform 0x01660004, I simply needed to modify the internal (LVDS) framebuffer for ig-platform 0x01660003 to match it.

 

A hex search of AppleIntelFramebufferCapri for framebuffer0 of 0x1660004 yields:

 

<05030000 02000000 30020000>

 

while the same search for framebuffer0 of 0x1660003 yields:

 

<05030000 02000000 30000000>

 

Patching the second pattern with the first fixes the internal display for ig-platform 0x01660003 and so allows us to open up additional framebuffers to get that external DP alive and kicking.

 

This will likely work for anyone who has a clean HD4000 internal display under ig-platform 0x01660004 but NOT under ig-platform 0x01660003. Of course, 0x0166003 is necessary to get an external display. 0x01660004 is a single display platform only.

 

I am now guessing that, for the Lenovo ThinkPad T430, this mod must only be necessary for units with the high resolution display (1600x900). I make this assumption since so many configs for these systems seem to use ig-platform 0x01660003 with no published complaints of a corrupted LCD display. So I guess that the low res display (1366x768) is OK under ig-platform 0x01660003 without this framebuffer mod..

 

I enclose the mod in plist format for convenience.

 

Hope this helps somebody :)

 

T430HiRes2PortFix.plist

Edited by bisk

Share this post


Link to post
Share on other sites

Hello InsanelyMac Protégé

 

I wish to enable the mini displayport on the same configuration of T430 and found discrepancies when editing my config.plist in Clover Configurator. Let me explain. Your T430HiRes2PortFix.plist has the following lines.

 

    <key>Graphics</key>
    <dict>
        <key>#ig-platform-id</key>
        <string>0x01660004</string>

        <key>DualLink</key>
        <integer>0</integer>
        <key>Inject</key>
        <dict>
            <key>ATI</key>
            <false/>
            <key>Intel</key>
            <true/>
            <key>NVidia</key>
            <false/>
        </dict>
        <key>ig-platform-id</key>
        <string>0x01660003</string>

    </dict>
 

When I edit my config.plist with your values in CC I get something similar but missing the first set of ig-platform-id statements:

        <key>#ig-platform-id</key>
        <string>0x01660004</string>

 

Two questions:

Did you edit config.plist manually with a text editor or Clover Configurator because CC only gives the last two ig-platform-id with 0x01660003 lines.

Why is there #ig-platform-id instead of ig-platform-id without the "#".

Is the first set of #ig-platform-id with 0x01660004 necessary.

 

My intuition says the first set of #ig-platform-id is unnecessary but I want to be certain before saving to EFI.

 

 

Many thanks,

 Art

 

 

 

 

 

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   0 members

    No registered users viewing this page.

×