Jump to content

[Guide] 10.10 Yosemite on the Dell Venue 11 Pro [Core iX]


alex.daoud
 Share

230 posts in this topic

Recommended Posts

The card is very similar to the the 4400 and the 4600. (One is is Mobile GT2 and the other is Mobile GT3). I think there is a check being performed in AppleIntelHD5000 that might be disabling QE/CI but I'm not sure.

 

Once I finish with the touchscreen I plan on decompiling the binary in IDA Pro and seeing if I can find any references to QE/CI.

  • Like 1
Link to comment
Share on other sites

The card is very similar to the the 4400 and the 4600. (One is is Mobile GT2 and the other is Mobile GT3). I think there is a check being performed in AppleIntelHD5000 that might be disabling QE/CI but I'm not sure.

Once I finish with the touchscreen I plan on decompiling the binary in IDA Pro and seeing if I can find any references to QE/CI.

I'm hacking a Lenovo Yoga 2 11 which uses HD4200 as well. I used your kext patches to get going but I am also missing QE/CI. Rehabman is helping me on another site but haven't figured it out yet. If he does (or I do?) I will share. Please also share any findings.

Link to comment
Share on other sites

  • 2 weeks later...

News for the graphic card?

I haven't gotten any further. Apparently, you can get CI with the patches mentioned above but not QE. Intel HD4200 uses GT1 while HD4400/4600 uses GT2/GT3. GT1 was supported in AppleIntelHDGraphics5000.kext in Mavericks, but that ID is no longer in the kext for Yosemite.

Link to comment
Share on other sites

  • 2 weeks later...

I haven't gotten any further. Apparently, you can get CI with the patches mentioned above but not QE. Intel HD4200 uses GT1 while HD4400/4600 uses GT2/GT3. GT1 was supported in AppleIntelHDGraphics5000.kext in Mavericks, but that ID is no longer in the kext for Yosemite.

I've noticed your posts in the HD4400 topic on the other forum. Are you sure the 4200 uses GT1? All my research points to it being a GT2. For example, this file: https://public.xzenue.com/websvn/blame.php?repname=chameleon&path=%2Ftrunk%2Fi386%2Flibsaio%2Fgma.h&rev=2377&peg=2377 lists it as being GT2.

Link to comment
Share on other sites

I've looked into the disassembly of AppleIntelHD5000Graphics and have a few things to note. ig-platform-id is not relevant in this kext. It does not matter which platform ID you have, it is only useful inside AppleIntelFramebufferAzul. It appears that the probe method of the accelerator class completes succesfully after we have patched in the valid ID (doesn't seem to matter whether we patch to use a GT2 or GT3 ID). Since System Reporter lists the kext as loaded, it seems to me as if the failure is somewhere in the start method of the accelerator class. We will need to debug whereabouts it fails. Unfortunately, there doesn't appear to be any logging enabled in the kext (albeit the existence of a method called InitializeLogging). What I propose is this (I hope it will work):

 

We load an override kext that has a higher probe score than AppleInteHD5000Graphics which is a subclass of the accelerator class and progressively overrides the methods inside the start method of AppleIntelHD5000Graphics kext to output some logging information and then cause the start method to fail. Inside the probe method of the override kext, we call the start method in IntelAccelerator, all calls to the methods inside the start method should then use the newly overrided methods and give us some information as to whereabouts the kext fails to load. An example is as follows:

 

Inside IntelAccelerator::start, the first method call (after some memory allocations which shouldn't usually fail) is IntelAccelerator::initSysctl. In order to determine if the failure point is this method, we look to the next method call which is IntelAccelerator::registerWithFramebufferController. We override this function as follows:

bool IntelAcceleratorOverride::registerWithFramebufferController() {
  IOLog("registerwithframebuffercontroller called!");
  return 0;
}

bool IntelAcceleratorOverride::probe(IOService* provider) {
  IntelAccelerator::start(provider);
  return 1;
} 

If we receive the output in the console then we know that the failure point is not initSysctl. We continue on like this until we find the function which fails to execute. We can then go deeper inside the failed method, debugging as above until we find the function that is the sole point of failure. We can then identify in the disassembly what is causing the failure and (hopefully) rectify it.

Link to comment
Share on other sites

Here is one site that claims it is GT1:

 

http://www.hardwaresecrets.com/article/All-Core-i5-Models/943/9

 

But after more research I am also finding it classified as GT2 which should be good news - I just wonder why a FakeID isn't working then. As far as what you stated in the last post, I am not that talented to understand what you are saying but I am willing to test anything you come up with.

Link to comment
Share on other sites

Hd 4200 solution!

 

Search on another site for [FIX] Intel HD4400/HD4600 Mobile on Yosemite.

 

I have full QE/CI using these kexts, using 0a260006 and FakeID 0a16. I also added the screen garble fixes so now only minor garble for 1 second during boot.

 

Search resolve boot screen garble on that site as well.

Link to comment
Share on other sites

Dudenesspa

 

That is awesome

I will give it a shot later tonight

 

BTW, I did purchase a internal wifi card that is based on Atheros

 

Dell DW1707 NGFF M.2 Card (Part# VRC88)

Atheros Model # QCNFA335

Wifi Chip: QCA9565

Similar to AR9565

 

I will post how it goes here once I get it next weekend.

 

wen1

Link to comment
Share on other sites

Dudenesspa,

 

The QE/CI change works like a champ over HDMI. I am however unable to get the internal display working.

Are you still using the Custom EDID?

 

Is it possible for you to post your config.plist?

 

Thanks for your help.

 

wen1

Link to comment
Share on other sites

Hd 4200 solution!

 

Search on another site for [FIX] Intel HD4400/HD4600 Mobile on Yosemite.

 

I have full QE/CI using these kexts, using 0a260006 and FakeID 0a16. I also added the screen garble fixes so now only minor garble for 1 second during boot.

 

Search resolve boot screen garble on that site as well.

Great news! Unfortunately that ig-platform-id doesn't work for me, seems like you might have different port setups on your device. It's good to know that the 4200 works fully though, I just need to figure out why it won't work on mine.

 

Dudenesspa

 

That is awesome

I will give it a shot later tonight

 

BTW, I did purchase a internal wifi card that is based on Atheros

 

Dell DW1707 NGFF M.2 Card (Part# VRC88)

Atheros Model # QCNFA335

Wifi Chip: QCA9565

Similar to AR9565

 

I will post how it goes here once I get it next weekend.

 

wen1

I actually already have that wifi card and it doesn't seem to work.

Link to comment
Share on other sites

Dudenesspa,

 

The QE/CI change works like a champ over HDMI. I am however unable to get the internal display working.

Are you still using the Custom EDID?

 

Is it possible for you to post your config.plist?

 

Thanks for your help.

 

wen1

Did you patch in support for HDMI on that ig-platform-id using AppleIntelFramebufferAzul.sh?

Link to comment
Share on other sites

Did you patch in support for HDMI on that ig-platform-id using AppleIntelFramebufferAzul.sh?

 

No, HDMI seems to work without any patch for that platform id

I did mess around with patches before but i am pretty sure i restored the original kexts

Hi - keep in mind I have a Lenovo Yoga 2 11. What we have in common I believe is the i5 4202y with hd 4200. I have no custom EDID. I have not tested the HDMI as I have no intention of using it. I can post my config.plist when I get home in a bit.

 

Did not realize that you have yoga 2. That explains it. Seems like port mapping is different on Venue 11. I have to try other platform Ids.

 

Edit:

Woohoo!

 

Got it working on the internal display.

I had to remove all the platform id injection and just use the custom EDID like before.

 

Now if we can only get the HDMI and internal display working at the same time.

My config with QE CI working for reference.

You will also need the kext from the other sites.

 

 

 

 

config with QECI.plist.zip

Link to comment
Share on other sites

Strangely, your config.plist doesn't enable QE for me. I know how to get HDMI working at the same time as the internal display (well, partially, needs more work) but I need to be able to enable QE before I can confirm it works. Are you sure there's nothing else you did apart from that config?

 

Can you provide a copy of your ioreg?

Link to comment
Share on other sites

Strangely, your config.plist doesn't enable QE for me. I know how to get HDMI working at the same time as the internal display (well, partially, needs more work) but I need to be able to enable QE before I can confirm it works. Are you sure there's nothing else you did apart from that config?

 

Can you provide a copy of your ioreg?

 

Sure, Can i export with ioregexplorer?

 

Just to be clear here is what i did

 

1. Removed all the kext patching from the config.

2. Installed the four kexts that are patching from the other site 

3. Changed the Fake ID

4. Kept the CustomEDID that we had before.

 

 

Here is how i verified QE (Screenshot)

post-254523-0-31125500-1421669695_thumb.png

Link to comment
Share on other sites

here it is again

Don't know what changes i made, But my Intel Framebuffer Azul kext has an updated timestamp.

Went out again but I'll check when I get back.

 

I looked into the wireless card and turns out I have the different Dell wireless one. I got confused, its probably the one you already have as well (Dell Wireless 1537). The one you linked to might work as I have seen some people get it to work on Mavericks, FakePCIID will probably help with that.

Link to comment
Share on other sites

 Share

×
×
  • Create New...