Jump to content

Intel HD Graphics (0x00468086) QE/CI on Lenovo X201


alexanita
 Share

44 posts in this topic

Recommended Posts

Hi, All,

Just showing the processes on Lenovo X201 Mountain Lion screen.Still thinking how this happening and hope that there something can be shared on this.
The OS Version is Mountain Lion 10.8.2.Screen Saving and VCL can working, so the QE/CI shall be wokring already.
The issue for the moment is when loading AppleIntelHDGraphicsFB.kext,laptop internal display become black.
It can only access my system via vnc/remote desktop sharing.Thanks all for those sharing/working on osx86.


Here is something for your reference...

Operation System: Mountain Lion 10.8.2

1. Install system from Niresh12495 Mountain Lion 10.8
10.8 Mountain Lion Niresh12495
- Boot Loader
|- Chameleon
- Graphics
|- Remove Graphics Kexts
|- Brightness Control
- Audio
|- Common
|- VoodooHDA-2.72
- Network
|- Ethernet
|- AppleIntelE1000
- Extra
|- SMBIOS
|- MacPro 3,x SMBIOS (Un-Check)
|- MacBookPro 8,x SMBIOS
|- Boot Kexts (Chipset Drivers)
|- Fixed Kexts (Chipset Drivers)
|- ShutDown and Restart Fix
|- PS 2
|- PS2 KB Mouse and Trackpad
|- Chameleon Boot Commands
|- Wake UP Fix For Lion (Dark Wake)
|- UseKernelCache
|- Ethernet Built In
|- USBBusFix

2. Install BugFix 10.8 Niresh12495.pkg for permission issue

3. Install OSXUpdCombo10.8.2.dmg for upgrade to 10.8.2

[Nov. 02, 2012]
For the moment, I guess that I'm using Natit.kext and GraphicsEnabler/Graphics Mode key for this.
1. Add/Install Natit.kext
This kext including AAPL, os-info injection.

2. Add following key into org.chameleon.Boot.plist
<key>GraphicsEnabler</key>
<string>yes</string>
<key>Graphics Mode</key>
<string>1280x800x32</string>

(Graphics Mode cannot use 1024x768x32, will fail QE/CI support)

This is what I though that how I enable the QE/CI for Intel HD Graphic for the moment.

[Nov. 23, 2012]
For the moment, I'm using DSDT Injection for "AAPL,os-info" and Graphics Mode key for this.
By this way, it can work on "Snow Leopard" (10.6.8) and "Mountain Lion" (10.8.2) for QE/CI Enabled on External LCD.

1. Add/Install DSDT Injection for following key

"AAPL,os-info",
Buffer (0x14)
{
0x30, 0x49, 0x00, 0x14, 0x14, 0x14, 0x08, 0x04, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
}
I have tried some os-info values and can get QE/CI from this.
This AAPL,os-info can get QE/CI enable and get my external LCD (ViewPanel VE150m) work.
But the screen will crash if I modify Display Resolution/Rate.
Still try to find out more information on this injection for my internal LCD (LEN 4011) and External VGA Monitor.

2. Add following key into org.chameleon.Boot.plist
<key>Graphics Mode</key>
<string>1280x800x32</string>

(Graphics Mode cannot use 1024x768x32, will fail QE/CI support)

[Apr 3rd, 2013]
Thanks for all the help and advice. My X201 get working internal screen with QE/CI now.
It can work on Niresh12495 Mountain Lion and iATKOS Mountain Lion (10.8.2 and 10.8.3).

--== AAPL,os-info ==--
I have found 4 kinds of AAPL, os-info from web.
You may inject this into the system by DSDT or Natit.kext os-info option.
When you use DSDT and Natit.kext in the same time, Natit os-info will overwrite DSDT.

1. MBP6.1
30 49 01 11 01 10 08 00 00 01 00 00 00 00 00 00 FF FF FF FF

2. This one can active my external LCD if I connected with VGA port when booting.
If not connect with VGA port when booting, it still can get active QE/CI internal LCD screen.
30 49 00 14 14 14 08 04 00 00 00 00 00 00 00 00 FF FF FF FF

3.
30 49 01 01 01 00 08 00 00 00 00 00 00 00 00 00 FF FF FF FF

4. MBP8.1
30 49 01 11 11 11 08 00 00 01 f0 1f 01 00 00 00 10 07 00 00

You may compile DSDT with different DSDT filename for these different type DSDT.
For example, boot flag: DSDT=/Extra/2.aml (refer to attached 2.aml.zip file)

You may check if your QE/CI active or not, if you have injected AAPL,os-info correctly.
Check the injection by ioreg -l | grep -e "os-info" and make sure we setup the right one for us.

And check the Desktop/ScreenSaver through VNC remote connection.

--== EDID Injection ==--
As I don't have working internal display when using QE/CI function,
I need to inject the EDID information into my DSDT.
I am not sure if I need all these injection, but these are what I used for the moment.

"AAPL00,IODisplayEDID"
"@0,override-no-edid",
"AAPL01,override-no-edid",
"AAPL00,override-no-edid"


Thanks for @hellozx advice.

--== AppleIntelHDGraphicsFB Patched ==--
AppleIntelHDGraphicsFB Patcher (patches SL 10.6.8 and ML 10.8.2 kexts) by @verteks
(Refer to http://www.insanelym...-fixed-sl-1068/)

When I using the AppleIntelHDGraphics_DualLink I will got black screen.
Not sure if this is the reason that we got black screen issue.

This is the solution for my internal laptop problem. Thanks @verteks.

1. Get the Screen Information
Under Linux, type this: sudo intel_reg_dumper

Now look for these lines:
FDI_RXA_CTL: 0xb0022050 (enable, train pattern not train, port width X1, ...)
PCH_LVDS: 0x80308302 (enabled, pipe A, 18 bit, 1 channel)

In the FDI_RXA_CTL line:
- 'port width X1' is the link width.

In the PCH_LVDS line:
- 'disabled' means your laptop's panel is connected through eDP instead of LVDS.
- If you see '2 channels' instead of '1 channel', use DualLink mode (using -d switch).

Note: If you have a monitor with a maximum resolution of 1366x768 (or lower), the default options
should work for you.

If you are using a DSDT
-----------------------
Make sure it does not contain the "AAPL00,DualLink" property.

For my case, I got
FDI_RXA_CTL: 0xb0022050 (enable, train pattern not train, port width X1
, 6bpc,link_reverse_strap_overwrite no, dmi_link_reverse no, FDI PLL enable,FS e
cc disable, FE ecc disable, FS err report disable, FE err report disable,scrambi
ng enable, enhanced framing enable, PCDClk)
PCH_LVDS: 0x80000302 (enabled, pipe A, 18 bit, 1 channel)


2. hdgraphics_patcher
Usage
-----
hdgraphics_patcher [options] <kext>

Options:
-d : Use DualLink mode (for LVDS only)
-w <n> : Link width (1 to 4) [default is 1]
-p <ports> : Output ports: LVDS, VGA or DP [default is LVDS]
Use this syntax for multiple outputs: <a>+<b> (eg. LVDS+DP)

Supported output ports (EXTERNAL MONITORS HAVE NOT BEEN TESTED!)
----------------------------------------------------------------
The AppleIntelHDGraphicsFB kext only supports LVDS, VGA and DisplayPort. HDMI and eDP are
not supported. A laptop's panel may be connected through either LVDS or eDP.

For my case, I use
hdgraphics_patcher -w 1 -p LVDS+VGA /System/Library/Extensions/AppleIntelHDGraphicsFB.kext/Contents/MacOS/AppleIntelHDGraphicsFB

 

Patching using the following options:

  DualLink mode:    No
  Link width:       X1
  Output ports:     LVDS VGA

Patch success

(Refer to attached patched AppleIntelHDGraphicsFB.kext.zip file)

That's all. :D

 

[sep 6th, 2013]

1. Install OSXUpdCombo10.8.4.dmg to upgrade from 10.8.3 to 10.8.4

Before the system reboot

2. Remove AppleHDA.kext from /S/L/E (Because I am using VoodooHDA.kext)

3. Patch AppleIntelHDGraphicsFB.kext by hdgraphics_patcher

4. Reboot and it works! :D

post-319066-0-46401200-1378731654_thumb.png

 

 

 

post-319066-0-91205700-1351869762_thumb.png
post-319066-0-08536400-1351869815_thumb.png
post-319066-0-24478300-1351869959_thumb.png
post-319066-0-82675700-1351870032_thumb.png
post-319066-0-25913400-1351870091_thumb.png
post-319066-0-77789300-1351870133_thumb.png
post-319066-0-78749900-1351870165_thumb.png
post-319066-0-76801900-1352805667_thumb.png
X201_dmesg.txt
X201_kextstat_l.txt
Natit.kext.zip
X201_ioreg_l.txt
X201_lspci_nn.txt
AppleIntelHDGraphics.kext.zip

DSDT_X201_os_info_2.dsl.txt

AppleIntelHDGraphicsFB.kext.zip

2.aml.zip

AppleIntelHDGraphicsFB.kext.10.8.4.zip

  • Like 1
Link to comment
Share on other sites

I can see that the screensavers are working. (Core Image might be working) Can you run iMovie or DVD Player without any error? If you can then Quartz Extreme is working.

You might have something here. :smoke:

 

We might never be able to get custom resolution, however if we can use VNC and use applications that require Quartz Extreme, then this is a excellent workaround.

Link to comment
Share on other sites

I can see that the screensavers are working. (Core Image might be working) Can you run iMovie or DVD Player without any error? If you can then Quartz Extreme is working.

You might have something here. :smoke:

 

We might never be able to get custom resolution, however if we can use VNC and use applications that require Quartz Extreme, then this is a excellent workaround.

 

FYI,

iMovie and iDVD can work without problems....

:-)

Link to comment
Share on other sites

I see. Can you explain what you did to setup OS X on your Lenovo X201? Any modifications to the Intel HD kexts?

 

No, I didn't modify Intel HD Kexts.

Are you using Intel Graphics HD Display?

 

For the moment, I guess that I'm using Natit.kext and GraphicsEnabler/Graphics Mode key for this.

 

1. Add/Install Natit.kext

2. Add following key into org.chameleon.Boot.plist

<key>GraphicsEnabler</key>

<string>yes</string>

<key>Graphics Mode</key>

<string>1280x800x32</string>

 

This is what I though that how I enable the QE/CI for Intel HD Graphic for the moment.

Link to comment
Share on other sites

1. Add/Install Natit.kext

 

There is no logical reason natit would do anything with intel card. Try without it - you should get same results.

 

Is "

1280x800x32" maximum resolution you can get under windows/linux? Do you see this resolution listed in Chameleon?

 

It would be interesting to see output of "ioreg -l".

Link to comment
Share on other sites

There is no logical reason natit would do anything with intel card. Try without it - you should get same results.

 

Is "

1280x800x32" maximum resolution you can get under windows/linux? Do you see this resolution listed in Chameleon?

 

 

It would be interesting to see output of "ioreg -l".

 

 

My laptop's maximum resolution for internal LCD is "1280x800x32". I can find this resolution listed in Chameleon.

 

No, we don't have logical reason that Natit related with Intel Graphics.

Unless, we just let the system think that we have... (This is what I guess)

 

You can see the booting message after install the Natit kext that I attached:

 

Natit: Starting.

Natit: Found device with ID=0x0046

 

I just tried to remove the Natit.kext and find out that the system has Higher resolution without QE/CI enabled.

Intel HD Graphics Internal LCD only has 1280x800 and External display has higher resolution.

 

ioreg -l information attached in my first post.

Link to comment
Share on other sites

You do not have qe/ci

Your bar at the top is not translucent. It should be, if you have qe/ci, or run Chess. If it opens and is working smoothly with no artifacts, you have QE/CI.

 

Also, try adding the dual link aapl DSDT patch, and load AppleIntelHDGraphicsFB.kext again, see if that fixes blackscreen.

Link to comment
Share on other sites

You do not have qe/ci

Your bar at the top is not translucent. It should be, if you have qe/ci, or run Chess. If it opens and is working smoothly with no artifacts, you have QE/CI.

 

Also, try adding the dual link aapl DSDT patch, and load AppleIntelHDGraphicsFB.kext again, see if that fixes blackscreen.

 

I have double check and found that my menu bar can be translucent. So the QE/CI shall be enabled.

 

I had tried the DSDT for DualLink fix but it cannot fix my blackscreen problem...

 

You can find the ioreg informaiton as follow,

 

| | | | "AAPL01,DualLink" = <01000000>

| | | | | "DisplayProductID" = 16401

| | | | | "IODisplayEDID" = <00ffffffffffff0030ae11400000000000130103801a1078eaba959759558c2721505400000001010101010101010101010101010101121b0080502014301820440005a31000001f93160080502014301820440005a31000001f0000000f00810a3c810a3216090030e4f001000000fe004c503132315758332d544c433100ac>

| | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/VID@2/AppleIntelFramebuffer/display0/AppleDisplay-30ae-4011"

| | | | | "DisplayVendorID" = 12462

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Hi! I'm currently not using the Lenovo X201, but my laptop has the same Graphics Card as yours. Recently, we've discovered a way to patch the resolution module in Chameleon to allow Mac OS X to use a patched VESA mode of our correct resolution (not a compile-once-and-for-all kind of patch, requires correct timings extracted from monitor). However, the patch is pretty easy to modify for enabling resolution on OS X. The problem: getting QE/CI. I see you've used AppleIntelHDGraphics.kext and Natit.kext on Mountain Lion 10.8.2 to get fully working QE/CI. I'm willing to try it. The problem: it seems that your version of Natit has a drastically different Info.plist. The problem is that Info.plist has values related to timings (like EDID), and as a result, my monitor becomes very funny as it isn't using the same monitor as you. How did you use the timings in your monitor to retreive those values (certainly isn't DTD or even RAW EDID... seems drastically different.) in Natit's Info.plist? How can I calculate those values using my timing info? Can you help me (and potentially others) with this? I'll be making a guide for the resolution module very soon. In the meantime, I'll try to install Mountain Lion without Natit and then later experiement within my installation. Currently running LIon 10.7.2 and Snow Leopard 10.6.7 on an external drive. Please write back ASAP. Thanks in advanced!

Link to comment
Share on other sites

Hi! I'm currently not using the Lenovo X201, ...

 

Please refer to the following informaiton...

I can enable QE/CI without Natit. Natit just inject "AAPL, os-info" to the system and get QE/CI enable.

I'm using DSDT injection now.

And we need AppleIntelHDGraphics.kext and AppleIntelHDGraphicsFB.kext for QE/CI enable.

AppleIntelHDGraphicsFB.kext can get EDID information and resolution for me.

 

[Nov. 23, 2012]

For the moment, I'm using DSDT Injection for "AAPL,os-info" and Graphics Mode key for this.

By this way, it can work on "Snow Leopard" (10.6.8) and "Mountain Lion" (10.8.2) for QE/CI Enabled on External LCD.

 

1. Add/Install DSDT Injection for following key

 

"AAPL,os-info",

Buffer (0x14)

{

0x30, 0x49, 0x00, 0x14, 0x14, 0x14, 0x08, 0x04, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff

}

I have tried some os-info values and can get QE/CI from this.

This AAPL,os-info can get QE/CI enable and get my external LCD (ViewPanel VE150m) work.

But the screen will crash if I modify Display Resolution/Rate.

Still try to find out more information on this injection for my internal LCD (LEN 4011) and External VGA Monitor.

 

2. Add following key into org.chameleon.Boot.plist

<key>Graphics Mode</key>

<string>1280x800x32</string>

 

(Graphics Mode cannot use 1024x768x32, will fail QE/CI support)

Link to comment
Share on other sites

Im having two issues trying to get the graphics to work properly on my x220. the one I have has the m620 i7.

 

I just dont understand the steps in performing step 1

 

1. Add/Install DSDT Injection for following key

 

"AAPL,os-info",

Buffer (0x14)

{

0x30, 0x49, 0x00, 0x14, 0x14, 0x14, 0x08, 0x04, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff

 

 

And as well as I having trouble updating to 10.8.2 it hangs after the bluetooth command line, but there is no bluetooth installed and also disable in bios.

 

I used the same exact install that was described in the beginning.

 

I was able to use the attached kexts to get the battery meter to work on 10.8

 

THanks!

Battery Fix - Lion.zip

Link to comment
Share on other sites

I understand that you're using a VNC client to access the desktop. I have installed 10.8.2 and have installed both the AppleIntelHDGraphics and AppleIntelHDGraphicsFB kexts. I cannot report any findings because if I have both kexts load together, my laptop freezes. I cannot access it through VNC because it never gets a response. If I load only AppleIntelHDGraphics kext, I get a distorted screen in VNC which makes it unusable. If I only load the AppleIntelHDGraphicsFB kext, I do get a backlight with a black screen but it also freezes my laptop. Unless I'm doing something wrong but I don't think so.

 

By the way, has anybody ever thought of pressing the display switcher key to see if it does something while using OS X? Mine is FN + F4. All laptops should have these buttons. To me it seems it triggers some sort of hardware function because if I press it, my display turns black and then it displays again. It's like as if its trying to switch to another screen but fails.

Link to comment
Share on other sites

Im having two issues trying to get the graphics to work properly on my x220. the one I have has the m620 i7.

 

I just dont understand the steps in performing step 1

 

1. Add/Install DSDT Injection for following key

 

"AAPL,os-info",

Buffer (0x14)

{

0x30, 0x49, 0x00, 0x14, 0x14, 0x14, 0x08, 0x04, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff

 

 

And as well as I having trouble updating to 10.8.2 it hangs after the bluetooth command line, but there is no bluetooth installed and also disable in bios.

 

I used the same exact install that was described in the beginning.

 

I was able to use the attached kexts to get the battery meter to work on 10.8

 

THanks!

 

For DSDT injection,

 

Device (VID)

{

Name (_ADR, 0x00020000) <-- Find out this device address and add the below DSDT injection for AAPL, os-info

Method (_DSM, 4, NotSerialized)

{

Store (Package ()

{

"AAPL,os-info",

Buffer (0x14)

{

0x30, 0x49, 0x00, 0x14, 0x14, 0x14, 0x08, 0x04, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff

},

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

 

BTW,

I also try to install iATKOS ML2 and have the same result on my laptop...

 

PS,

battery meter can work

 

People have said that the FB kext causes the blackscreen and that due to the way it was used in MBP6,1/2/3 it does not have any code to choose connectors. Our only hope it the Snow Leopard that allows QE without FB.

 

 

In my laptop, I can get my external lcd work or not work with different AAPL, os-info value

So I guess that this value will change some unknown related system values

 

I understand that you're using a VNC client to access the desktop. I have installed 10.8.2 and have installed both the AppleIntelHDGraphics and AppleIntelHDGraphicsFB kexts. I cannot report any findings because if I have both kexts load together, my laptop freezes. I cannot access it through VNC because it never gets a response. If I load only AppleIntelHDGraphics kext, I get a distorted screen in VNC which makes it unusable. If I only load the AppleIntelHDGraphicsFB kext, I do get a backlight with a black screen but it also freezes my laptop. Unless I'm doing something wrong but I don't think so.

 

By the way, has anybody ever thought of pressing the display switcher key to see if it does something while using OS X? Mine is FN + F4. All laptops should have these buttons. To me it seems it triggers some sort of hardware function because if I press it, my display turns black and then it displays again. It's like as if its trying to switch to another screen but fails.

 

Have you check if your AAPL, os-info injection added or not?

 

I have remove two lines of AppleIntelHDGraphicsFB.kext/Contents/Info.plist

<key>OSBundleRequired</key>

<string>Safe Boot</string>

 

Then, the AppleIntelHDGraphicsFB.kext won't be loaded in safe mode and will have an available laptop screen.

 

For the moment,

"AAPL,os-info" = <30490014141408040000000000000000ffffffff>

This value can active my External LCD VE150m.

 

For the Screen Switch function, it will be disabled after the OS X system loading...

It can work during chameleon and disabled once the OS X system loading.

So it won't have any change on my laptop (lenovo X201).

Link to comment
Share on other sites

  • 2 weeks later...

Hi guys!

I installed Mountain Lion (10.8.0) again on my HP G62 after months without any OS X installed :)

I finally have the native resolution and i'm very happy about this.

So, i saw and read this topic and i tried to install alexanita's kexts.

 

That's the result:

 

bev77s.jpg

 

Apart the "four screen in one" thing, the QE/CI is fully working! And these are the evidences:

 

1. In System Profiler -> Graphics it says "Intel HD Graphics" with 288MB of VRAM (the card is finally recognized)

 

acs8xz.jpg

 

2. A screenshot:

 

nmc21v.png

 

Small note: the "Monitor" is my dedicated card: an ATI HD 5470M (i'm sure that when we fix the Intel HD Graphics problem i can switch from one to another one with gfxCardStatus app)

 

I tried also to inject my EDID but when i boot Mountain Lion with the kexts i can see that under "Displays" there's wrote: "No display connected" but on the ioreg obtained in this situation i can see the EDID values (of my screen)!

 

So, finally QE/CI works on our laptops but we need a fix like the old X3100: link. (Maybe a DSDT Patch?!).

 

Meanwhile, i'm trying to solve the problem myself.

Link to comment
Share on other sites

giofrida, can you give more details as to how you got that screen, or even take control of your computer?

 

Yes, sure.

I just patched my DSDT with his patch (os-info and DualLink) and now i'm using the original kexts. I'm controlling the screen through the "four screen in one". I think all is related to the os-info value because without it i had got the same screen, but i could see nothing! Only white stripes (full white). I also tried some other patches for the DSDT:

- AAPL,Height

- AAPL,Width

- AAPL,HasLid

- AAPL,NumDisplays

- AAPL,HasPanel

...Nothing changed

 

So we need to ask to an expert or to alexarila how do we obtain the os-info value!

 

EDIT: Sleep is working, but i cannot wake up the screen (solvable by DSDT). The brightness not (i have PNLF device in my DSDT).

C'mon guys! Let's fix this card!

Link to comment
Share on other sites

alexanita, did you retrieve the aapl,os-info data yourself? If so, how did you do it, and will it vary from system to system?

 

iwin32

 

aapl,os-info is defined in appleintelhdgraphicsfb there are two defined, but I think only one used in the kext as follows

 

 

30 49 01 11 01 10 08 00 00 01 00 00 00 00 00 00 FF FF FF FF

30 49 00 14 14 14 08 04 00 00 00 00 00 00 00 00 FF FF FF FF

 

In addition there is another one OsInformation Default

 

30 49 01 01 01 00 08 00 00 00 00 00 00 00 00 00 FF FF FF FF

 

I am not really sure what they do but suspect they only tell what hardware is in use

Link to comment
Share on other sites

Well I injected the AAPL,os-info string to my DSDT, compiled successfully, and then later installed all the Intel HD Graphics kext. I did however run into a problem. I get a kernel panic. If I delete the AppleIntelHDGraphics.kext and leave the other kexts installed, my laptop screen turns black and activates my external monitor. The problem is that everything looks distorted in the external monitor so its basically useless.

 

Am I missing something here? :wallbash:

Link to comment
Share on other sites

Any news?Today i've installed 10.8.2 and finally got my Nvidia 540m fully functional but the first video card is intel :/ any metod to switch from intel to nvidia? P.S When i install nvidia kext os x stop with a kernel panic before access to desktop.

Link to comment
Share on other sites

I tried to patch my DSDT with the values in the MacBookPro6,1 ioreg:

1601nb.png

I'm getting stuck at a gray screen.

 

If i remove all the values but "os-info" and "AAPL00,T1" to "AAPL00,T7" without "T4" i got the 4 screen bug but the distortion lines are different. I removed these values because otherwise i get the gray screen.

Link to comment
Share on other sites

 Share

×
×
  • Create New...