Contribute
Register

Dell Optiplex 990 SFF (Intel HD 2000)

Status
Not open for further replies.
Joined
Feb 5, 2011
Messages
74
Motherboard
Dell Optiplex 990 SFF D6H9T
CPU
Intel Core i3-2120
Graphics
EVGA Nvidia GT 610
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
I recently obtained a few of these machines for free, and thought about getting them to run OS X. All parts came with the machine. I know there is a guide for the mid-tower, but that guide includes a discrete GPU and my setup used the Intel GPU (Intel HD 2000). Note that there is no QE/CI support, but at least the graphics are crisp and clear, with no lag or tearing. My first hackintosh was a Thinkpad T60 with a Radeon Mobility X1400 GPU, so this did not take too long to figure out. This guide is geared mainly toward those who are diving into this process for their first time.

System specs:
What works:
  • Intel HD 2000 full resolution (but no QE/CI)
  • C-states and AppleIntelCPUPowerManagement
  • Built-in sound (both front and rear ports; internal speaker)
  • Ethernet
  • Sleep
Not configured:
  • Hibernation (probably works OOB after enabling S4/S5 sates in BIOS)
  • iMessage
  • HDA (using AppleHDA as opposed to VoodooHDA)
  • Serial port


INSTALLATION

  1. Use Legacy Bios settings, select AHCI for SATA, disable VT Direct I/O, disable the serial port, enable C-states.
  2. Create a Unibeast 5.2.0 installer. In order for the installer to work, you will need to boot using the -x option (for safe mode). Personally, I used both -v and -x (where -v is for verbose mode). The reason for -x is because we are using the Intel HD 2000 GPU, which only has basic support in safe mode. For those completely new to the process, follow the instructions in the link for installing Mavericks and boot through USB. At the boot menu, simply type -x and you will see a boot option command line at the bottom of the screen with -x appearing within. For the Dell Optiplex 990 SSF, you do not need any other boot options (except -v if you wish to see the boot messages). Then press ENTER to proceed. Be patient -- it is a slow process before you will see the initial install screen. (I come from a UNIX background so I selected to use a case-sensitive format.) When you get to Step 5 of the Mavericks installation guide, make sure that you again use -x until we patch the graphics drivers. Do not actually proceed with Step 5 yet.
  3. After the initial install phase completes and reboots, remember to make sure to use -x to proceed to the login screen where the install process completes its finalization. Before proceeding with Multibeast you should go ahead and install the Mac OS X 10.9.5 combo update as well as any other security updates after finishing the combo update.
  4. Once all the updates are done, then proceed to Step 5 of the Mavericks installation guide. If you use the attached files below, then select the following options:
    • Choose Quick Start and select the User DSDT option. Find the DSDT.aml file in the /Extra folder within the attached files below. You will then see some additional options that are pre-loaded. If you would rather not use my DSDT.aml file, then go with the DSDT Free option.
    • Choose Drivers (to the right of Quick Start).
    • In the Audio tab, make sure NOTHING is selected. (We will use VoodooHDA, but there are newer versions.)
    • In the Disk tab, make sure NOTHING is selected. (The Dell Optiplex 990 uses the Intel 6 Series chipset which is supported natively.) If you have an SSD, then you may want to enable the TRIM 10.9.4+ patch.
    • In the Graphics tab, make sure NOTHING is selected. (We will patch the Sandy Bridge drivers.)
    • In the Misc tab, MAKE SURE TO SELECT FakeSMC (and optionally the other two additional options for hardware monitoring). For first timers, your hackintosh will not boot without FakeSMC and will be stuck at DSMOS (Don't Steal Mac OS). If you do not care about C-states and more fine-tuned power management, then also select NullCPUPowerManagement.
    • In the Network tab, select AppleIntelE1000e v3.1.0
    • Now choose the Customize menu (at the top) and in the System Definitions tab, select iMac12,1
    • You can also choose the bootloader theme if you want something different.
    Once the options have been set, select Build, check that the appropriate drive has been selected, and click on Install (bottom right). Insofar as drivers are concerned, only FakeSMC is absolutely required. NullCPUPowerMangement is also required if you choose to avoid messing around with generating C-states. If you accidentally install extra drivers, it is generally not a bad thing (they just will not get loaded but may leave some warning messages when you rebuild the kext cache). Note that if you want C-state support, you MUST do some patching AND add a custom SSDT.aml file.
  5. After Multibeast finishes its job, install the most recent VoodooHDA drivers. You will need to modify the kext after the install process is done. Open up a Terminal window, and type:

    cd /System/Library/Extensions/VoodooHDA.kext/Contents
    sudo nano Info.plist

    This will open the nano editor. Press [CTRL][w] to open a search and type in: igain. Immediately below is an integer value (very likely 90) that you may want to set to 0. This will fix the crackling sound you might hear (in particular if your machine also has a built-in front speaker). This will also prevent the iGain value from being reset to a non-zero value whenever you rebuild your kext cache. After making the edit, press [CTRL][o] and then [ENTER] to save.
  6. Open Finder and select Go in the menu, and choose Computer. Then browse to the HDD and in the root folder, create a folder named Backup Extensions (if one does not exist). Browse to /System/Library/Extensions and move the following kexts to the /Backup Extensions folder: AppleIntelHD3000GraphicsGLDriver.bundle. Make sure that it is no longer in /System/Library/Extensions. Note that only the GL driver for the HD3000 is (re)moved since there will be no QE/CI support for the Intel HD 2000 GPU.
  7. If you want C-state support, copy the AppleIntelCPUPowerManagement.kext to /System/Library/Extensions (move the original one to /Backup Extensions or simply delete it) AND THEN delete NullCPUPowerManagement.kext. You will need to have your own SSDT.aml file (use mine, which was generated from AICPMPatch) copied to the /Extra folder. You will also need to adjust your org.chameleon.Boot.plist file (also in the /Extra folder), which can be done by running Multibeast and immediately selecting Customize (select DropSSDT=Yes, unselect Generate CPU States).
  8. Fix any permission and file ownership issues. Open up Terminal and go to the /System/Library/Extensions folder. Type

    sudo chmod -R 755 <copied-kext-file-name>
    sudo chown root:wheel <copied-kext-file-name>

    Finally, update the cache using:

    sudo touch /System/Library/Extensions
    sudo kextcache -update-volume /

    If you do not see any messages, run those commands again. Reboot.

TO DO: There are still a number of things I need to do/explore. One of the biggest frustrations for me when I first started (back during the Snow Leopard days) was that, despite so much effort by the community to get things to work, there was very little information as to _why_ the various workarounds were needed. Even now, there seems to be plenty of solutions that fix issues but do not really explain why/how the fixes actually work so that others can try use to explore on their own. So I will be coming back to add more details in that vein.

CHANGELOG:

  • Removed references to moving a large number of kexts (only AppleIntelHD3000GraphicsGLDriver.bundle needs to be removed)
  • Removed diff.txt from attached files (no longer needed)
  • Added AppleHDADisabler.kext to attached files (for VoodooHDA.kext compatibility)
 

Attachments

  • dell990.zip
    1.9 MB · Views: 624
Last edited:
So I dug up a bit more into the process behind getting the Intel HD 2000 GPU working. I originally was following this post regarding 2nd Generation Intel HD graphics. Granted, the post there was dealing with the mobile (laptop) version. Nevertheless, after comparing the difference between the original kext for AppleIntelSNBGraphicsFB.kext and the modified version, it became clear to me that the modification was to simply ensure that the Intel Management Engine PCI match included that for other versions. My guess is that 0x1E3A8086 corresponds to Intel HD 2000 Mobility. While the PCI Vendor and Device List provides a few clues, it is much simpler to boot into Linux (just use any live CD on a USB stick) and use

sudo lspci -b -vvv -nn

The -b option sets the output to a bus-centric view, -vvv makes it super verbose (get all the nitty gritty details), and -nn uses not only the vendor ID but also the conventional names. And you will need sudo since a lot of the information will be listed as private to normal users. Attached is the output for the Dell Optiplex 990 SFF, but here is a snippet:

Code:
00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04)
    Subsystem: Dell 6 Series/C200 Series Chipset Family MEI Controller [1028:047e]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 11
    Region 0: Memory at e1ab0000 (64-bit, non-prefetchable)
    Capabilities: [50] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fee00000  Data: 40d1
    Kernel driver in use: mei_me
    Kernel modules: mei_me

If you look at the end of the first line of code, you have both Vendor ID (8086) and Device ID (1C3A). So this is already listed in the AppleIntelSNBGraphicsFB.kext. So this lead me to conclude that the additional 0x1E3A8086 MEI device/vendor value was not needed. I then simply tested whether my machine would still have proper graphics when I reverted to the original kext, and simply deleted ONLY AppleIntelHD3000GLDriver.bundle (and restoring all the other kexts after checking device IDs to ensure none of them would accidentally get loaded). Since everything still works, I am left to conclude that getting the Intel HD 2000 to work (without QE/CI) is simply a matter of deleting the AppleIntelHD3000GLDriver.bundle directory within /System/Library/Extensions. That said, kextcache complains about signatures for AppleIntelHD3000Graphics.kext (likely due to the missing GL drivers since I moved them elsewhere).
 

Attachments

  • pci.txt
    17 KB · Views: 550
Noticed /var/log/system.log was being spammed with messages related to
_CGXGLDisplayContextForDisplayDevice (because we have no working GL driver loaded). This can be fixed by editing /etc/asl.conf to include:

Code:
# filter messages from removing AppleIntelHD3000Graphics.kext
? [= Sender WindowServer] [= Level 4] [= Facility user] [CA= Message _CGXGLDisplayContextForDisplayDevice] ignore

Place it just above the line that says: # save everything from emergency to notice.

While I was at it, Google Chrome was whining incessantly so I created /etc/sysctl.conf and added the necessary filter:

vm.shared_region_unnest_logging=0
 
Thanks for your information. I had an old optiplex 990 on my closet that im using to get my first hackintosh thanks to your post.
But i get stuck on "the white screen with apple in center". It looks like my PC freeze on there. Any idea?

I'm using the -x option.
If I use the -v option i start to see all the codes but then my screen turns to black (not sure if writint "-x -v" im using both options).

Ig you guys could help would be great, and sorry for my english (little rusty).
 
Thanks for your information. I had an old optiplex 990 on my closet that im using to get my first hackintosh thanks to your post.
But i get stuck on "the white screen with apple in center". It looks like my PC freeze on there. Any idea?

I'm using the -x option.
If I use the -v option i start to see all the codes but then my screen turns to black (not sure if writint "-x -v" im using both options).

Ig you guys could help would be great, and sorry for my english (little rusty).

If you can provide a screenshot, it would enable us to have a better idea of what is causing the issues. As mentioned in the first post, -x is for safe mode (because the HD2000 GPU is not really supported) and -v is for verbose mode (so you can see all the boot messages).
 
@tellybox, please update your profile (personal details) with your Motherboard or Make/Model, CPU and Graphics Card.
The Rules said:
Profiles need to contain at least your primary system to assist others with helping you.
 
About to give this a try. Will be starting with 10.12.6

Wish me luck.

I do have one of these if I must: ttp://a.co/15Fg9Os. — GT 710 1GD3H LPV1
I was handed some other low profile cards to play with.
 
Have you ever tried 10.12.6 or 10.13.0 on this PC?
 
I'm running 10.12.6!
 
Status
Not open for further replies.
Back
Top