Wie Ihr vielleicht wisst verfügen einige Vertreter aus Intels E3 XEON Familie genau wie die "normalen" Core I Prozessoren über eine IGPU was für sich genommen schon mal praktisch ist, wenn man kein Grafikmonster braucht aber trotzdem nicht auf einen leistungsfähigen Prozessor verzichten möchte. Bisher war es jedoch immer eher schwierig die IGP´s der XEONs zur Zusammenarbeit mit OS-X oder aber besser gesagt OS-X zur Zusammenarbeit mit den in den XEON Prozessoren enthaltenen Grafikeinheiten zu bewegen. Hier nun eine kleine Anleitung wie Ihr die IGPU der E3-V2 oder E3-V3 Prozessoren unter OS-X trotzdem nutzen könnt.
1.Worin unterscheiden sich die Intel HD4000 und HD4600 von der P4000 oder P4600?
Im Grunde unterscheiden sie sich gar nicht denn technisch gesehen werkelt hier in beiden Chips der selbe Grafikcontroller nur eben unter unterschiedlichem Namen und mit einer anderen DeviceID letztlich sind die IGPU´s der XEON und Core I Prozessoren also identisch.
2. Warum funktionieren sie dann unter OS-X nicht?
Apple hat in keinem seiner Produkte jemals einen E3 Xeon verwendet sondern immer die größere E5 Linie die keine IGPU besitzt. Da die IGPU´s der E3 XEON´s eine andere DeviceID haben als die der Core I Prozessoren werden sie von OS-X schlicht ignoriert sprich die Grafiktreiber für die IntelHD Grafik werden nicht geladen da es für das OS so aussieht als sei keine unterstützte IGPU im System vorhanden. Schuld an diesem Verhalten ist die von den Core I Prozessoren abweichende DeviceID der IGPU denn diese ist schlicht nicht als Match für die Grafiktreiber hinterlegt und so kümmert sich OS-X eben nicht drum.
3. Und was muss ich nun tun damit es geht?
Im Grunde ist es ganz einfach denn es nicht wirklich mehr zu tun als OS-X für die Grafikkarte der XEON Prozessoren eine passende DeviceID vorzugaukeln und hier kommt einmal mehr die Arbeit von RehabMan ins Spiel denn dessen FakePCIID.kext kann man sich prima zu Nutze machen um OS-X eine passende Device ID zu servieren. Als Basis verwenden wir jeweils die letzte Version der FakePCIID.kext von RehabMan welche Ihr hier findet: KLICK. Einmal heruntergeladen und entpackt findet Ihr in Eurem Download Ordner einen Ordner der die beiden Unterordner DEBUG und RELEASE enthält. Für unser weiteres Vorgehen verwenden wir den Release Ordner und kopieren uns von dort 2 Dateien auf den Desktop:
Die FakePCIID.kext lassen wir in Ruhe aber bei der FakePCIID_Intel_HD_Graphics.kext machen wir einen Rechtsklick und wählen Paketinhalt zeigen und navigieren so dann in den Ordner Contents hier angekommen finden wir eine Info.plist vor, die wir nun mit einem plist Editor unserer Wahl öffnen (ich benutze plisteditpro es geht aber auch Apples XCODE oder ein Texteditor). Die für uns wichtigen Punkte zeigt das folgende Bild:
Nun geht es ans editieren der plist. Als erstes knöpfen wir uns den Punkt FakeProperties vor denn hier kommt der Wert rein, den wir OS-X unterschieben möchten. In meinem Fall war dies die DeviceID der HD4000. Der Wert liegt hier als 4Bytes Wert vor also muss man hier ein wenig um die Ecke denken aber erstmal muss man natürlich die richtige Device ID für die gewünschte Karte herausfinden aber glücklicherweise gibt es hier eine recht komplette Liste. In meinem Fall hat die IntelHD4000 also die Device ID 0x0166 und genau diese gilt es nun in die plist einzubauen. Auf der sicheren Seite sind die von uns die PlistEditPro verwenden denn hier ist es recht einfach den Wert zu ändern. PlistEditPro zeigt hier in der unbearbeiteten Fassung folgendes an:
Im Falle von PlistEditPro brauchen wir den Wert nur zu drehen sprich aus 0166 wird 6601 also Bitweise verdreht demnach wird also aus 1204000 dann 6601000 und das tragen wir hier nun ein (Für die P4600 muss es 1604000 sein). Weiter geht es nun mit dem IOPCIPrimaryMatch Property denn irgendwie müssen wir dem FakePCIID ja auch sagen worauf er anspringen soll. Dazu gilt es erstmal herauszufinden wie unsere DeviceID eigentlich lautet und hierzu eignet sich das Tool SystemInfo (gibt es im DL Bereich) prima. Einmal gestartet sieht der Output wie folgt aus:
Interessant an der Stelle ist die DeviceID des VGA Compatible Controller von Intel die wir uns dann auch merken (in meinem Fall war das die 016a). Um nun unsere DevceID entsprechend eintragen zu können löschen wir zunächst alles, was unter IOPCIPrimaryMatch steht sieht dann so aus:
Abschließend noch korrekt ausfüllen wobei hier gilt DEVICEIDVENDORID oder in meinem Fall 0x16a8066 also 0x16a für das Device und 8066 für den Vendor also Intel. Wenn alles erledigt ist speichern wir die bearbeitete plist ab und installieren dann beide Kexts mit dem Kextutility. Das Ergebnis nach einem Neustart sieht dann wie folgt aus: