Jump to content

[GUIDE] 1st Generation Intel HD Graphics QE/CI

Intel GMA HD Arrandale Intel GMA 5700HD

  • Please log in to reply
1294 replies to this topic

#1
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 468 posts
  • Gender:Male

*
POPULAR

p2k9xLq.png

 

Welcome to the Intel® HD Graphics guide for computers with 1st Generation Intel® Core™ or 2010 Intel® Arrandale processors! Before you begin, you will need to have OS X working properly on your computer before you attempt to enable graphics acceleration. This is to ensure that everything will work out as smoothly as possible. If you do not have OS X on your computer, you can find more information about how to install OS X on your computer by searching around the InsanelyMac forums. Please keep in mind that every computer will be different. In other words, your computer's performance will vary and not all computers will have graphics acceleration due to the OEM's hardware configuration. OS X was never designed for PCs, but you can make it work like a Mac! Don't expect everything to be working though. In the case of your Intel® HD Graphics IGPU, your mileage may vary (YMMV). More information about this will be presented as you read along.

 

Before we begin, with the help of the community, this guide was made possible. I want to give all credit to iWin32, RemC, Mehdymehdy, Verteks, Giofrida, mnorthern, and voidRunner from the InsanelyMac community, and Orlian, dmazar, Slice for their discoveries as well as all of the InsanelyMac community members who continue to tinker around and helping the community out to enhance our Intel® HD Graphics experience!

If this guide has helped you, be sure to press the like button. :)

Now, let's begin!

 

3yQhZsT.png

 

Hardware is what basically makes a computer work. For this guide, you need to have an Intel® processor. These processors were released in 2010 which means that if you bought a laptop that was made in 2010, then most likely it will have an Intel Arrandale processor. Inside this processor, there is a integrated graphics processing unit, or IGPU for short. This IGPU is known as simply Intel® HD Graphics. 

 

Note: Intel also uses the name "Intel® HD Graphics" for the IGPU inside Sandy Bridge, Ivy Bridge, Haswell, Broadwell, and etc on Celeron and Pentium processors. This guide is only for the Arrandale processor family only.

 

In short, your computer must have one of these processors for this guide:

 

Processor.png

Note: If your i3-3xxM, i5-5xxM or i7-7xxM model is not listed, do not panic! It's only a sample list.

 

All of these processors include the Intel® HD Graphics IGPU. They also have Device ID as 0042 or 0046 and Vendor ID as 8086.

If your computer has one of these processors, you are good to go and you can continue to read the other sections!

 

But wait, what if your computer has a dedicated graphics GPU such as NVIDIA or ATI? Here are the choices you can do if you have either of these:

 

ATI:

 

1) Disable your ATI GPU from BIOS and enable the Intel® HD Graphics IGPU.

2) Disable your Intel® HD Graphics IGPU and enable graphics acceleration for your ATI GPU. Some ATI GPUs will work on OS X while others won't. Check if your ATI GPU is compatible with OS X.

 

NVIDIA:

 

1) Disable your NVIDIA GPU from BIOS and enable the Intel® HD Graphics IGPU.

 

Note: Graphics switching is not supported on hackintoshes. Either you use the Intel® HD Graphics IGPU or you use the dedicated GPU.

 

3dZfKsu.png

 

OS X is the world's most advanced desktop operating system that runs on all of Apple's Mac products such as the iMac, Mac Mini, Mac Pro, MacBook Pro and MacBook Air. It is designed and built by Apple in California. PCs normally run Windows, an operating system designed and built by Microsoft. 

 

IFdpYmv.png

 

Since you are here, you are probably interested in making OS X work on your PC. I will only explain the installation processes briefly for computers with a 1st Generation Intel® Core™ Processor (Arrandale) with Intel® HD Graphics. For more in depth help, you will need to look around the InsanelyMac forums.

 

Installation:

 

1) Create a bootable USB drive with OS X. This bootable USB drive must have the ability to access /System/Library/Extensions in order to boot computers with 1st Generation Intel® HD Graphics. One way of creating this type of USB installer is to create the USB installer manually using Disk Utility.

  1. Download the OS X installer from the App Store.
  2. Go to your Applications folder and right-click on the OS X installer. Select "Show Package Contents". 
  3. Go to Contents/Shared Support and double click on "InstallESD.dmg" to mount the image. It should appear on the desktop and Finder window.
  4. Open Terminal and copy and paste the following command:
    open "/Volumes/OS X Install ESD/BaseSystem.dmg"
  5. We are now ready to create the USB installer. Open Disk Utility and format your USB drive using Mac OS Extended (Journaled) with the GUID partition scheme. Restore "BaseSystem.dmg" to your USB drive. 
  6. Your USB Drive will be renamed to "OS X Base System". Change the name of the USB Drive to "OSXUSB" to avoid confusion.
  7. Open Terminal and copy and paste the following commands one by one. Remember to press Enter after pasting each command. Wait for the command to finish. Some commands will take some time to finish. 
    cp "/Volumes/OS X Install ESD/BaseSystem.dmg" /Volumes/OSXUSB/
    
    cp -a "/Volumes/OS X Install ESD/BaseSystem.chunklist" /Volumes/OSXUSB/
    
    rm /Volumes/OSXUSB/System/Installation/Packages
    
    cp -a /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OSXUSB/System/Installation/Packages
  8. The USB installer is now finished. From here you must install a bootloader directly to the USB installer. You can choose either Chameleon or Clover bootloader. Configure the bootloader and add all the necessary kexts, DSDTs, etc.

2) Remove the Intel HD Graphics Kexts from the bootable USB drive.

  • We must remove these kexts because they will prevent you from booting up the OS X installer. 

   To do this, click on your USB drive and go to System/Library/Extensions and delete:

  • AppleIntelHDGraphics.kext
  • AppleIntelHDGraphicsFB.kext

   If you can't see these folders, they are hidden so you may have to show all hidden files using terminal.

 

3) Install OS X and eventually you will be asked to restart. (May take a while.)

4) Follow the onscreen first boot instructions to setup OS X on your PC.

5) After completing the first boot setup instructions, your desktop should now appear. Welcome to OS X!

 

Note: You may notice that the resolution is stretched. This is normal because graphics acceleration is not working.

 

Post Installation:

 

Now that you have OS X installed and booting, you need to know if you want to dual boot Windows on your PC. If you want to dual boot Windows, you must install Windows now. The reason why is because Windows will install its own bootloader and will overwrite Chameleon or Clover. 

 

After you install Windows and boots properly, boot to your OS X partition using your bootable USB drive.

 

If you are not planning to dual boot Windows, don't worry about anything said previously. 

 

Post Installation: Bootloader

 

We want to boot OS X without using the bootable USB drive, so we need to install a bootloader. There are two bootloaders to choose from:

  • Chameleon
  • Clover

The Chameleon bootloader is the classic bootloader that will work in all cases. It is simple to configure and supports themes. The Clover bootloader however is newer, is constantly being worked on, supports legacy BIOS and supports newer computers that use UEFI. The downside of Clover is that it is not user friendly in terms of configuration compared to Chameleon. 

 

Which bootloader should you choose? That is up to you to decide. The bootloader I'm using is Clover and there's a reason I use it which I will explain later on in the guide. 

 

No matter which bootloader you choose:

 

1) Install the bootloader.

2) Configure the bootloader and configure the bootloader to use the ​MacBookPro 6,1 or MacBookPro 6,2 SMBIOS. 

 

Post Installation: Install Other Kexts

 

Before you enable graphics acceleration for the Intel® HD Graphics IGPU, install any other kexts you need such as FakeSMC, audio, ethernet, keyboard, touchpad, etc. 

 

After Post Installation:

 

After you installed the other kexts you need, its time to work on fixing the Intel® HD Graphics IGPU.

 

WnmzPV4.png

 

A laptop has two types of display connectors, LVDS and eDP. Each computer manufacturer chooses the type of display connector for their products. For example, Apple uses the LVDS display connector for all of their MacBook laptops. For comparison:

 

LVDS (Low Voltage Differential Signaling):

  • Older technology
  • Limitations in display bandwidth and resolutions
  • Used in the 2010 MacBook Pro (Also known as MacBookPro6,1 and MacBookPro6,2)

eDP (Embedded DisplayPort):

  • Newer technology
  • Higher display bandwidth, compact, and supports higher resolution

While eDP is better in a lot of ways, Apple did not use this connector for their 2010 MacBook Pro laptops. What this means is that the framebuffer kext (a kext that detects your display and sets the proper configurations for that specific display) for the Intel® HD Graphics IGPU is programmed to use the LVDS connector.

 

Before we continue, we must determine the display connector used in your PC. To do this, you will need to boot to a Linux distro. You can create a live USB Linux distro to quickly determine your display connector. For this guide, I will be using the Linux distro known as Ubuntu.

 

Check Display Connector:

 

1) Boot up Ubuntu using the live USB.

2) Open Terminal and type:

  • sudo intel_reg_dumper

IntelDump1.png

 

3) Press Enter and you will see all of this information on the Terminal window. 

 

IntelDump2.png

 

4) Copy the information on the Terminal window. Open gEdit and paste the information inside the text file. Save the text file somewhere. You may want to use this text file later for automatic framebuffer patching. 

 

IntelDump3.png

 

5) Inside the text file, search for a line similar to this. It will either have Enabled or Disabled on it:

  • PCH_LVDS: 0x80308302 (enabled, pipe A, 18 bit, 1 channel)

      or

  • PCH_LVDS: 0x80308302 (disabled, pipe A, 18 bit, 1 channel)

Now that you found this line and it says either Enabled or Disabled, take the appropriate actions below:

 

Enabled:

 

Congratulations! Your computer is using the LVDS display connector! Your PC can enable full graphics acceleration. You can go to the Enable Quartz Extreme with Core Image (QE/CI) section to finish fixing your Intel® HD Graphics IGPU.

 

Disabled: 

 

Your PC is using the eDP display connector. Your computer does not qualify for full graphics acceleration using the built-in eDP display. Go to the eDP Users Only section for more information on what you can do to improve your OS X experience using the Intel® HD Graphics IGPU.

 

qWhtzYe.png

 

These are the known PCs that can enable native resolution and full graphics acceleration (QE/CI) for 1st Generation Intel® HD Graphics on OS X. If you see your manufacturer's name and PC model here, you do not have to check to see if your computer has an eDP or LVDS display connector.

 

Note: THIS LIST IS NOT COMPLETE! 

 

HP

  • 630
  • DM4-1160US
  • DV6-3057TX
  • G42-230BR
  • G42-356TU
  • G42-453TU
  • ProBook 4520s
  • ProBook 6550b

COMPAQ

  • Compaq CQ41-210TU

ASUS

  • K42F

ACER

  • Aspire 5740
  • Aspire 5742
  • Aspire 4741G
  • Aspire 4747G

DELL

  • N5010
  • N5040

GATEWAY

  • ID49C04h
  • NV5932u (I own this one!  :) )

LENOVO

  • IdeaPad U460
  • ThinkPad T410s

TOSHIBA

  • L750

FUJITSU

  • LifeBook SH560

 

YJ9voZt.png

 

Now that you know that your PC uses an eDP display, what can you do?

 

Fix Incorrect Screen Resolution: 

 

The problem for eDP users is that you cannot load the Intel® HD Graphics framebuffer because it does not support the eDP display connector. The framebuffer was necessary to enable full acceleration (QE/CI) as well as native resolution. However, there are workarounds that can solve this problem.

 

The way to fix the incorrect screen resolution is by modifying the bootloader and hoping that it will patch the Intel® vBIOS and give you a native resolution when you boot up OS X. 

 

As said earlier, there are two bootloaders, Chameleon and Clover. 

 

Fix Incorrect Screen Resolution: Chameleon Bootloader

 

For Chameleon bootloader, there is a module that can patch the Intel® vBIOS and force a screen resolution. What this will do is it will overwrite one the VESA resolutions to the custom resolution chosen in the org.chameleon.Boot.plist file. 

 

1) Open Finder and go to your Extra folder. Open the org.Chameleon.Boot.plist with TextEdit. Add the following code:

<key>Graphics Mode</key>
<string>1366x768x32</string> (EDIT THIS STRING TO YOUR NATIVE RESOLUTION) 

Note: Remember to change the string to your display's native resolution. For example, if the display's native resolution was 1280x720, then you would replace the above string as "1280x720x32". Always include the "x32" suffix as it represents 32 bit colors.

 

2) In the Extra folder, create a folder called "Modules".

ExtraModules.png

3) Download the attached Resolution Module ZIP file below. Next, extract the ZIP file and inside the folder there should be a "Resolution.dylib" file. Drag that file to the Modules folder you created in the Extra folder.

ResolutionModule.png

4) Now, restart your computer. When the Chameleon bootloader screen appears, it should now be at the resolution you set in the plist file. Continue to boot to OS X and now your desktop should no longer be stretched anymore!

 

Note: If for some reason your screen still looks stretched, make sure that your display can handle the resolution you set on the plist file. If this still doesn't work, you may want to switch to using the Clover bootloader.

 

Fix Incorrect Screen Resolution: Clover Bootloader

 

On my current laptop, I use the Clover bootloader because it emulates a UEFI system and because of the extra features that are available compared to Chameleon. One of the nice features that Clover has is automatic vBIOS patching, the option to enter a custom EDID, and also to automatically inject your display's EDID to Clover.

 

Assuming that you already have Clover bootloader working on your computer:

 

1) Download Clover Configurator. (This will allow to edit Clover settings using a graphical user interface.) 

2) Open Clover Configurator and open up the config.plist. (Usually located in Clover's EFI folder.)

3) Go to the "Graphics" tab. You should see this:

PJsgeID.png

4) Make sure "Patch VBios" is checked. Anything else should be unchecked and blank, exactly like the screenshot above.

5) Save the file and restart your PC. When the Clover bootloader screen appears, it should now automatically set Clover to your display's native resolution. Continue to boot to OS X and now your desktop should no longer be stretched anymore!

 

Note: If for some reason your screen still looks stretched, you may have to play around with the EDID settings in Clover Configurator. I have not tested these settings so I'm not sure if this will work.

 

Enable Partial Acceleration by Enabling Core Image Only:

 

If you have successfully enabled native resolution on your eDP display, it is now time to enable partial acceleration. In OS X, full acceleration requires that both Quartz Extreme and Core Image (QE/CI) to work together. Since your display uses the eDP connector, you will not be able to enable Quartz Extreme (QE) as this technology requires the Intel® HD Graphics framebuffer to work correctly. You can however enable Core Image (CI).

 

In short, Core Image (CI) is a technology that enhances image processing effects by utilizing the graphics processing unit (GPU). Luckly, all eDP users can enable Core Image (CI) to make their Intel® HD Graphics IGPU partially work.

 

Now, Let's begin!

 

PC Requirements:

 

1. OS X Mountain Lion 10.8.5 or OS X Mavericks 10.9.x
2. 1st Generation Intel® HD Graphics IGPU (Already integrated with 2010 Intel® Arrandale CPUs)
3. Internal LCD display uses the eDP connector
4. Intel® HD Graphics CI ZIP file (Click on the image below to download.)

 

zao5y6A.png

 

Note: My packages are available exclusively on InsanelyMac and HackintoshOSX. You can find them in the InsanelyMac Downloads section or in the HackintoshOSX Downloads section. For InsanelyMac members, the above link will take you to the InsanelyMac Downloads section.

 

Note 2: If you are using Clover Bootloader, you may end up with distorted screen once Core Image is enabled. If you are having this problem, a workaround for this is to use Chameleon Bootloader.

Steps:

1) Open Finder and go to System/Library/Extensions. Inside the folder find these kexts:

AppleIntelHDGraphics.kext
AppleIntelHDGraphicsFB.kext
AppleIntelHDGraphicsGA.plugin
AppleIntelHDGraphicsGLDriver.bundle
AppleIntelHDGraphicsVADriver.bundle

Delete all of these kexts from the Extensions folder. Rebuild cache and restart your computer.

2) Download the Intel® HD Graphics CI ZIP file above if you haven't yet. Remember to choose the ZIP file that corresponds to your version of OS X. Extract the ZIP file. Inside the extracted ZIP file you should see this:

CI1095Folder.png

3) Install these kexts with Kext Utility or some other kext installer. Rebuild cache and restart your computer.

CIExtensionsFolder2.png

4) Open up System Preferences > Desktop & Screensaver > Screen Saver. Click on one of the slideshows. If you see the preview of the slideshow, Core Image is now enabled!

eDPScreenSavers.png

ERiXxmv.png
 
OS X uses technologies like Quartz Extreme and Core Image to utilize the GPU to perform various graphical elements such as animations, image processing, rendering, OpenGL and the overall window compositing environment. In order to enable these technologies for your Intel® HD Graphics IGPU, you must use a patched Intel® HD Graphics framebuffer kext. 

 

The Intel® HD Graphics framebuffer kext is essential in order to enable detection of the built-in LCD display, native resolution, and to enable technologies like Quartz Extreme and Core Image (QE/CI) to provide graphics acceleration. 

 

With a graphics accelerated desktop, you can:

  • Watch YouTube videos smoothly
  • Use iPhoto, iMovie, and GarageBand
  • Play games
  • Native display resolution
  • Use other applications that require graphics acceleration

Now, let's begin!

 

PC Requirements:

1. OS X Mountain Lion 10.8.5, OS X Mavericks 10.9.x, or OS X Yosemite 10.10.x
2. 1st Generation Intel® HD Graphics (Already integrated with 2010 Intel® Arrandale CPUs)
3. Internal LCD display uses the LVDS connector
4. Intel® HD Graphics QE/CI ZIP file (Click on the image below to download.)

 

xduk9np.png

 

Note: My packages are available exclusively on InsanelyMac and HackintoshOSX. You can find them in the InsanelyMac Downloads section or in the HackintoshOSX Downloads section. For InsanelyMac members, the above link will take you to the InsanelyMac Downloads section.

 

Note 2: You also have the option to patch the Intel® HD Graphics framebuffer yourself and customize certain framebuffer features using Giofrida's Intel® HD Graphics Patcher. You can find it in the InsanelyMac Downloads section or by clicking here.

 

Steps:

1) You must do this step if you are using Chameleon Bootloader. If you are using Clover Bootloader, skip to Step 2. Open Finder and go to your Extra folder. Open the org.Chameleon.Boot.plist with TextEdit. Add the following code:

<key>GraphicsEnabler</key>
<string>Yes</string>

QECIChameleonPlist.png

Note: If you are using OS X Yosemite, you must also add the following code to your org.Chameleon.Boot.plist:

<key>Kernel Flags</key>
<string>kext-dev-mode=1</string>

2) You must do this step if you are using Clover Bootloader. If you are using Chameleon Bootloader, skip to Step 3. Check your Clover Bootloader settings and make sure everything is checked off except for "Patch vBIOS" in the Graphics tab section. Make sure "Inject Intel" is checked off or you will have a distorted screen.

PJsgeID.png

Note: If you are using OS X Yosemite, you must enable "kext-dev-mode=1" in Clover. 

MNhmORg.png

3) Open Finder and go to System/Library/Extensions. Inside the Extensions folder, find these kexts:

  • AppleIntelHDGraphics.kext
  • AppleIntelHDGraphicsFB.kext
  • AppleIntelHDGraphicsGA.plugin
  • AppleIntelHDGraphicsGLDriver.bundle
  • AppleIntelHDGraphicsVADriver.bundle

Delete all of them from the Extensions folder. Rebuild kext cache and restart your computer.

4) Download the Intel® HD Graphics QE/CI ZIP file above if you haven't yet. Remember to download the QE/CI ZIP file that corresponds to your version of OS X (for example, if you are running OS X Yosemite 10.10, then you would download the 10.10 QE/CI ZIP folder). Extract the ZIP file. Inside the extracted ZIP file you should see this:

 

Note: The images shown here might look different than the one on your computer.

QECI1010Folder.png

If you notice, there is a folder called "Choose Framebuffer". In here, you will need to select the type of framebuffer kext to install for your computer. I have prepatched these for you so all you have to do is install it with the other Intel® HD Graphics kexts.

QECI1010SelectFB.png

So, how do you choose with framebuffer to install? There are two types of framebuffers:

  • SingleLink
  • DualLink 

Choose a SingleLink framebuffer if your PC's internal LCD display has a native resolution of 1366x768 or lower. Choose a DualLink framebuffer if your PC's internal LCD display has a native resolution higher than 1366x768. 

QECI1010Types.png

Once you know what type of framebuffer to install, there are 3 categories to choose from:

  • Normal
  • Alternate
  • Alternate 2

If you are new to this, you may want to start by selecting a Normal framebuffer. A Normal framebuffer has default plist features enabled. You will have to retry and experiment with these 3 categories if one of them doesn't work. The reason is because each computer is different and not all computers will be able to boot using a specific category.

 

Let me explain these three categories:

 

Choose a Normal framebuffer if your PC has no problem booting and successfully shows the desktop with the default plist features enabled.

 

If your PC freezes during boot (spinning wheel or progress bar on the Apple boot screen freezes) when you use the Normal framebuffer, you may have to use the Alternate framebuffer. The Alternative framebuffer has all the plist features set to zero. 

 

If your PC freezes during boot (spinning wheel or progress bar on the Apple boot screen freezes) when you use the Alternative framebuffer, you may have to use the Alternate 2 framebuffer. The Alternate 2 framebuffer has all the plist features set to zero and a slightly modified IOPCIClassMatch code.

 

No matter which of the 3 framebuffer categories you choose, you will now have to select the output. Inside the folder, there is only 1 output to choose from:

  • LCD + VGA

For most users, LCD + VGA is recommended. This option will give you output to your computer's internal LCD display.

 

Note: Remember, this guide is for laptops only. Desktops are not supported.

QECI1010LW.png

Inside the LCD + VGA output folder, there are 4 types of LW:

  • LW1
  • LW2
  • LW3
  • LW4

LW stands for Link Width. For most users, LW1 will work. If for some reason you see a distorted display, you may need to test out LW2-LW4.

 

Note: Again, if this your first time choosing, pick the LW1 framebuffer and go to step 5. If you see a distorted display when you boot to the desktop, you may need to use a higher LW framebuffer. If it doesn't boot at all, you may need to choose another framebuffer category.

 

Before you continueBecause this is a trial and error situation, you may have to delete the framebuffer and install another framebuffer if it doesn't work. If you are still having issues and tried all framebuffers, check the troubleshooting information section after the steps for help.

 

5) Install the chosen Intel® HD Graphics framebuffer with the other Intel® HD Graphics kexts with Kext Utility or some other kext installer. Rebuild cache and restart your computer.
QECIExtensionsFolder1010.png

6) When you log into the desktop, you will see that your computer's native resolution is already working. You will also see a transparent menubar.

 

0Doeqsv.png

 

3rL3cSf.png

 

n0rcwha.png

 

If you still want to confirm that you officially have QE/CI working, open DVD Player, click on the "Help" menu and click on "Show Supported Features".
 

oxfN5H8.png

 

Enjoy OS X on your PC!

 

Troubleshooting Information:

 

Some users may have trouble finding which framebuffer works on their computer. I have listed a few common problems that users encounter.

 

Problem 1: When you installed the Intel® HD Graphics framebuffer, the spinning wheel on the Apple boot screen freezes. 

 

When the spinning wheel freezes on the Apple boot screen, this means that you chose the wrong framebuffer category. For example, if you installed the Normal framebuffer and the spinning wheel freezes, you will have to install either the Alternate or Alternate 2 framebuffer.

 

Problem 2: When you installed the Intel® HD Graphics framebuffer, the spinning wheel on the Apple boot screen spins forever and the desktop never appears. 

 

When the spinning wheel on the Apple boot screen spins forever and never shows the desktop, it means that OS X failed to recognize your Intel® HD Graphics IGPU. Some PCs suffer from this problem and the only way to fix this is by injecting the information of your Intel® HD Graphics IGPU manually using a DSDT (Differentiated System Description Table) or using the Natit kext.

 

In order to inject this information onto the DSDT, your DSDT must be patched so that it compiles correctly. The information that you have to inject to the DSDT is the model, OS-Info, and VRAM. Go to the DSDT section for more information. (This method is recommended).

 

The other way to fix this is by installing the Natit kext. This kext will inject the information of your Intel® HD Graphics IGPU automatically. While this may solve the problem on some computers, I don't recommended it. The reason is because this kext also sets values that are useless and can cause conflict. On some computers, Natit injects the wrong information and corrupts the display. You can try it, but it is only a temporary solution. When you have time, I highly recommend you patch your DSDT so that you never have to install Natit.

 

TIP: If your computer has an dedicated NVIDIA Optimus or AMD Radeon GPU, you need to disable all types of graphics acceleration in Chameleon or Clover Bootloaders if your going to use the Intel® HD Graphics IGPU.

 

TIP: Make sure that you are using the correct type of framebuffer. Do not use a DualLink framebuffer on a computer that uses SingleLink and do not use a SingleLink framebuffer on a computer that uses DualLink.

 

TIP: Remember, this guide is only for laptop computers. Desktop computers are not supported by theIntel® HD Graphics kexts.

 

wsumR.png

The question that many users ask is can they connect an external display to their laptop while running OS X? The answer is yes and no. Let me explain.

 

There are usually 3 different kind of display ports that a laptop may have:

  • VGA (Video Graphics Array)
  • HDMI (High Definition Multimedia Interface)
  • DP (DisplayPort)

The only port that currently works, and is also experimental, is the VGA port. HDMI and DP ports are not supported. Although the VGA port works, its functionality is very limited. You cannot mirror displays and you cannot extend displays.

 

If the VGA port cannot extend displays and you cannot mirror displays, what can it actually do? One functionality that it can do, and is experimental, is clamshell mode.

 

Clamshell mode is when you use your laptop like a Mac Mini. In other words, you connect an external monitor to the laptop's VGA port and close the lid. You will see your desktop on the external monitor. Because you will use the external monitor and the laptop lid is closed, you may want to have an external mouse and keyboard.

 

Note: While this may be possible, I am no longer going to explain how to do it in my guide. Enabling the external VGA monitor is very experimental and most of the time the display looks scrambled and unusable. It becomes more of a hassle. I will give you the tools you need if you want to try this out for yourself. Also for future releases, I am no longer including the Intel® HD Graphics patched VGA framebuffers in my Intel® HD Graphics kexts packages. I believe users don't use these framebuffers. If you need to patch the framebuffer for VGA, use Giofrida's Intel® HD Graphics Patcher.

 

AAPL, OS-Info:

The AAPL, OS-Info code is the code than enables the display. This code comes from the Intel® HD Graphics framebuffer itself and can be seen using a utility called IORegistryExplorer. 

 

This AAPL, OS-Info code enables the internal LCD display:

 

30 49 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

If you notice, the blue number (01) in this part of the code is responsible for enabling the internal LCD display. Now let's look at the AAPL, OS-Info code that enables VGA output:

 

30 49 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Similarly, the blue number (04) in this part of the code is responsible for enabling the VGA port. What this means is that you can only enable 1 display at a time. Either you enable the internal LCD display or you enable the VGA port. You cannot have both working together which explains why mirroring and extend displays doesn't work. 

 

In order to modify this code, you have to inject it to your DSDT. Assuming that you already patched your DSDT (if not, read the DSDT preparation and Hacks section), this code is added in the GFX0 (or IGPU or VID, depending on your computer manufacturer) section in your DSDT.

"AAPL,os-info", 
Buffer (0x14)
{
0x30, 0x49, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00
}, 

*This code enables the VGA port. You can copy this code onto your DSDT to save time.

 

This is what your GFX0 (or IGPU or VID, etc) section should look like with the added code:

Q3s2E.png

Once this code has been added, your internal LCD display will become disabled and the VGA port will now output your desktop once you reboot.

 

Patch Intel® HD Graphics Framebuffer for VGA:

Another thing that you need to have in order to use an external VGA display is a patched framebuffer that enables VGA output. You can patch the framebuffer using Giofrida's Intel® HD Graphics Patcher

284tK.png

To patch the framebuffer for VGA output, check the VGA box. If you like, you can patch LVDS (Internal LCD Display) and VGA at the same time. After patching the framebuffer, use Kext Utility or another kext installer to install it. 

 

From here, you're on your own to experiment. If you discover anything interesting, feel free to share!

 

xxBglBB.png

 

1. Natit

 

Sometimes, if a computer does not have Natit installed, the framebuffer will make OS X not boot to the desktop. In other words, the spinning wheel will spin forever and you will be stuck in the boot screen forever. This usually happens when the OS-Info from the framebuffer fails to inject itself.

Natit will also add Intel® HD Graphics information to your System Infomation>Graphics/Display section. This is useful for users that still have an "Unknown" graphics name in About This Mac and System Information.

 

You can download the attached Natit kext at the bottom of this guide.

Install this kext with Kext Utility or some other kext installer. Rebuild cache and restart your computer.

fFSCuHz.png

Note: This fix requires a kext, but you can permanently fix this problem by patching your DSDT. More information in the DSDT Preparation and Patching section.

 

2. Backlight and Brightness
(Guide written by mnorthern)

Please read and follow mnorthern's thread for his work as well as any questions regarding the backlight and brightness fix for 1st Generation Intel® HD Graphics.

http://www.insanelym...hd-gma-5700mhd/

3. Power Management

 

Chameleon Bootloader Power Management

 

Note: This applies to users that use Chameleon Bootloader. If you are using Clover Bootloader, read the Clover Bootloader Power Management section.

If you have enabled partial graphics acceleration (only Core Image) or if you enabled full graphics acceleration (Quartz Extreme with Core Image), it is important to have power management working correctly. If you don't, then the computer will overheat and possibly turn off without warning.

Computers with 1st Generation Intel® Core™ or 2010 Intel® Arrandale processors are able to natively use the AppleIntelCPUPowerManagement.kext without any problem.

:excl: Before proceeding, make sure you are not using NullCPUPowerManagement.kext. If you are using it, delete it and rebuild cache.

Steps:

1. Open Finder and go to your Extra folder. Open the org.Chameleon.Boot.plist with TextEdit. Add the following code:

<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>

s6so38D.png

2. Restart your computer. Boot into OS X and native power management should now start working. You can check CPU temperature and SpeedStep processor speeds using HWMonitor.

 

Clover Bootloader Power Managment

 

Note: This applies to users that use Clover Bootloader. If you are using Chameleon Bootloader, read the Chameleon Bootloader Power Management section.

 

1. Open Clover Configurator and go to the ACPI menu. Check both Generate PStates and Generate CStates.

hOsjvDB.png

2. Restart your computer. Boot into OS X and native power management should now start working. You can check CPU temperature and SpeedStep processor speeds using HWMonitor.

 

4. Giofrida's Intel® HD Graphics Patcher

Our InsanelyMac friend Giofrida has made a framebuffer patcher that is easy to use. You can find it exclusively at InsanelyMac Downloads or by clicking here.

Giofrida's Intel® HD Graphics Patcher allows you to patch AppleIntelHDGraphicsFB.kext on your own. You can customize which ports to patch, enable DualLink, choose which Link Width to enable as well as which OS X version to patch for. Currently, the patcher fully supports OS X Mountain Lion (10.8), OS X Mavericks (10.9), and OS X Yosemite (10.10).

When you launch the Intel® HD Graphics Patcher, you will see the main menu. There are 5 tab options to choose from:

  • Main Menu​
  • Manual Patch
  • Linux Dump Analyzer
  • Extras
  • Support

IHDGP1010.png

The "Main Menu" tab opens the main menu. The "Manual Patch" tab allows you to drag in the AppleIntelHDGraphicsFB.kext you want to patch and customize certain patching options. The "Linux Dump Analyzer" tab allows you to copy and paste the sudo intel_reg_dumper information into a text box and the patcher will automatically select the appropriate options to patch automatically. The "Extras" tab includes extras such as the Resolution Module for Chameleon Bootloader (more information about it in eDP Users Only section) and links to download Natit.kext as well as fixing brightness.

 

To patch your own framebuffer, select the "Manual Patch" tab. You will see this:
IHDGP21010.png
Drag the AppleIntelHDGraphicsFB.kext into the blue highlighted box and press "Check". The patcher will verify if the framebuffer kext is compatible and valid. After verification, all of the patching options will now enable and the white oval box should say "Binary Found".
IHDGP31010.png

The patching options are self explanatory. Select the options that you like and once you are ready, click the "Patch" button. You will need to enter your password and once that is done, you will see a new folder called "Patched Framebuffer" on your desktop. Inside the folder you will see this:
IHDGP41010.png

This is your patched framebuffer. Install this kext with Kext Utility or some other kext installer. Rebuild kext cache and restart your computer. That's it!

If you prefer to patch your framebuffer automatically, make sure you have already dragged in the AppleIntelHDGraphicsFB.kext in the "Manual Patch" tab and then select "Linux Dump Analyzer". You will see this:

IHDGP51010.png
You will need to run sudo intel_reg_dumper in Ubuntu or some other Linux distro and copy all of the information into a text file. Bring that text file to OS X and copy and paste all of the content inside the text file into the text box.
IHDGP61010.png

Press the "Analyze" button and the white oval box should say "Parameters set! Now go to Manual Patch".
IHDGP71010.png

Go to the "Manual Patch" tab and press "Check". The patcher will verify if the framebuffer kext is compatible and valid. After verification, make sure to select the OS X version of the AppleIntelHDGraphicsFB.kext that your patching and press the "Patch" button. You will need to enter your password and once that is done, you will see a new folder called "Patched Framebuffer" on your desktop. Inside the folder you will see your patched framebuffer. Install this kext with Kext Utility or some other kext installer. Rebuild kext cache and restart your computer.

 

5. On-the-fly Framebuffer Patch using Clover

 

The team behind Clover Bootloader have created a way to patch kexts inside the kernel cache on-the-fly, meaning that you don't have to modify the kexts manually inside System/Library/Extensions. Using this method allows the user to install OS X without removing the Intel® HD Graphics kexts, and allows the user to update their OS X installation without losing native resolution and graphics acceleration. 

 

Who qualifies to use this method of patching? For example, if you download my Intel® HD Graphics QE/CI package, what framebuffer do you install? 

 

First, your computer must be using Clover Bootloader.

 

If your computer uses the Normal framebuffer, you qualify!

If your computer uses the Alternate or Alternate 2 framebuffer, you do not qualify.

 

Computers using the Normal framebuffer do not use a modified plist file. For Alternate and Alternate 2 framebuffers, they have a modified plist file where PowerSates = 0. Currently, Clover does not have the ability to patch the info.plist file correctly. Although it says its been patched in debug mode, it doesn't work. If patching the info.plist file works for some of you using Alternate or Alternate 2 framebuffers, please let me know.

 

I will be going over on how to do this in OS X Yosemite. The process is similar for other versions of OS X but you have to find the correct values to patch. 

 

1. Open Clover Configurator and go to the Kernel and Kext Patches section. In here, you will add the necessary patches to fix the framebuffer. 

8YFwbRS.png

2. As an example, these are the patches that you will need to add to Clover for SingleLink LCD+VGA LW1 (OS X Yosemite):

 

General Patch

Find: 0F45C842898C33F00100
Replace: 90909042898C33F00100

Yosemite Patch

Find: FFB800600009BE006000040F44F009D6
Replace: FFB800600008BE006000040F44F009D6

LVDS + VGA Patch 1

Find: 3049011101100800
Replace: 3049011105100800

LVDS + VGA Patch 2

Find: 3049010101000800
Replace: 3049010105000800

SingleLink Patch 1

Find: C7070100000041C74720
Replace: C7070000000041C74720

SingleLink Patch 2

Find: 3C033080
Replace: 00033080

LinkWidth LW 1

Find: 498B8424980600000FB64018C1E013410B466C4189466C498B8C249800000089810C000F00498B8424980600000FB64018C1E013410B4668
Replace: 418B466C25FFFFC7FF0D0000000090909090904189466C498B8C249800000089810C000F00418B466825FFFFC7FF0D000000009090909090

3. This is how it works:

  • In the KextsToPatch section, press the add button "+". The first line should now be highlighted and you can start editing it.
  • In the Name column, since we are patching the framebuffer kext, it must have the name "AppleIntelHDGraphicsFB" without the quotation marks. 
  • In the Find column, you are going to copy and paste one of these patches "Find" hexadecimal code. In the Replace column you are going to copy and paste one these patches "Replace" hexadecimal code.
  • The Comment column contains a description of the patch. You can type in something that helps you remember what patch is being added.
  • The InfoPlistPatch column should be empty unless it is a plist file patch.
  • The Type/Key column tells Clover whether the patch is a STRING or DATA. In this case these patches represent a String. 

This is how it looks like when you have finished adding the patches:

aG5xvvj.png

Note: While it is optional, you should check the "Debug" option to make sure that the patches are being patched correctly. This will cause OS X to boot in verbose mode and show you the patching process. If all the patches say "Successful", then everything is working correctly and you can uncheck the "Debug" option.

 

Note 2: Kext patching using Clover causes OS X to boot a bit slower because it has to patch the kext every time the computer boots.

 

Note 3: In some cases, Clover will not detect the framebuffer kext. This usually happens when you have installed the framebuffer incorrectly and you need to rebuild the cache and repair permissions. Clover can only patch the kext if it is stored in the cache. 

 

nb6vxd5.png

 

So what is the DSDT? The DSDT (Differentiated System Description Table) is a table that is part of the ACPI (Advanced Configuration Power Interface) specification. Basically it contains information about hardware and power events. The problem with DSDTs is that they are either incomplete or problematic for OS X. Those are the reasons why many people patch their DSDTs so that OS X can function properly with their PC hardware.

For this guide, I will be talking about how to patch your DSDT so that you no longer need to use the Natit kext and to inject information about your Intel® HD Graphics IGPU. For any other hardware, you will need to search the InsanelyMac forums for more information.

 

​Extracting Your PC's DSDT Table:

There are many ways to extract your PC's DSDT table, but the best way to get an unmodified copy of your DSDT is by booting to a Linux distro. You can use the same live USB Linux distro that you used to determine your PC's display connector. For this example, I will be using Ubuntu.

 

1) Boot up Ubuntu using the live USB.

2) Open Terminal and type:

  • sudo cat /sys/firmware/acpi/tables/DSDT >dsdt.aml

3) Press Enter.

4) The dsdt.aml file will be saved in the Home folder. Copy the dsdt.aml file somewhere so that you can edit it in OS X.

 

Open Your PC's dsdt.aml file on OS X:

So now that you have your DSDT file extracted, it is time to open it up. In order to open and edit your DSDT, you need an application called MaciASL

 

http://sourceforge.n...ojects/maciasl/

 

Download MaciASL and install it in your Applications folder. Now that you have MaciASL installed:

 

1) Launch MaciASL.

2) Go to File > Open and find and open your dsdt.aml file.

 

Repairing the DSDT:

We have to repair the DSDT before we apply any patches. Since the DSDT is most likely incomplete, if you compile it now, there will be errors and we need a DSDT that compiles successfully. 

epoZYri.png

The screenshot above is MaciASL and I have opened up my extracted Gateway NV5932u dsdt.aml file. Take a look around the application so that you can feel comfortable using it. 

 

Once you have your PC's dsdt.aml file open, click on "Compile". 

 

oJPFQnC.png

 

Look at all these errors! On my extracted DSDT, there are 6 errors, 14 warnings, 41 remarks and 3 optimizations. 

 

Note: Your DSDT may have more errors or less errors depending on your computer manufacturer. Some DSDTs may have different errors as shown here. However, you can search on Google and see if someone else has fixed that particular error. This portion of the guide is to give you an idea of how DSDT patching works.

 

These are the errors that the compiler throws out. They repeat multiple times:

  • Code 5111 - Use of compiler reserved name (_T_#) (# can mean 0, 1, 2, 3, 4, etc.)
  • Code 1088 - Not all control paths return a value ()
  • Code 1099 - Unknown reserved name ()
  • Code 1081 - Reserved method must return a value (Package required for _DOD)
  • Code 4080 - Invalid object type for reserved name (found BUFFER, requires Package)

Let's fix these problems one by one. The first one:

  • Code 5111 - Use of compiler reserved name (_T_#) (# can mean 0, 1, 2, 3, 4, etc.)

There are 41 remarks of these which means I have to fix 41 lines of code that contain this remark. This is easy to fix. All you have to do is this:

  • Remove the beginning _ from (_T_#) so it looks like (T_#). 

Let's take a look at this. For example, according to the compiler on lines 6764 and 6765 this problem appears. 

 

6ejUmE2.png

 

Lets edit the DSDT by applying this fix:

 

VgnHI9F.png

 

By applying this fix to all of the 41 remarks, I have reduced my remarks to 0. 

 

GVaVbuc.png

 

Now, let's fix the second problem:

  • Code 1088 - Not all control paths return a value ()

There are about 8 lines of code that have this problem. How do you fix this problem? Very simple. The reason you get this problem is because one of the control paths does not return anything. To fix this we need this:

Return (Zero) 

We need to add this code at the end of the method box. Let's look at an example. We have this problem on line 12267.

 

WqxHozP.png

 

Add the code "Return (Zero)" in the middle of the last 2 brackets.

 

9QcOxc1.png

 

By applying this fix to all of the lines that have this warning, I have reduced my warnings to 9.

 

KLzGgfG.png

 

You may be wondering why I chose not to fix 2 lines of code that have the 1088 problem. The reason is because these same lines also have the 1081 code. By fixing the lines of codes that have the 1081 problem, you also eliminate the 1088 problem as well. 

 

So let's fix the 1081 problem:

  • Code 1081 - Reserved method must return a value (Package required for _DOD)

According to the compiler, this problem exists on line 14427. If you notice from the screenshot above, 14427 also has the 1088 problem. To eliminate problem 1081, you have to add this code at the end of the method box:

Return (Package (0x02)
{
     Zero, 
     Zero
})

Let's look at the code on line 14427.

 

FchvZuJ.png

 

To fix this, let's add the code above to this line. 

 

XiFTRuR.png

 

By adding this fix to the 2 warnings that have this problem, we have also automatically eliminated 1088. Now there are 6 errors and 5 warnings. Almost there!

 

GxqbFU4.png

 

Let's fix the 1099 problem:

  • Code 1099 - Unknown reserved name ()

This is an easy problem to fix. If you notice, the reserved name (_WDG) and (_WED) have an underscore "_" in front. In the DSDT however, these names are defined as (WDG) and (WED) with no underscore. Let's look at line 12268:

 

MJUEG0g.png

 

All you have to do to fix this problem is delete the underscore "_".

 

LqdIto6.png

 

Almost done, now we only have 6 errors with problem code 4080.

 

OUhX4vn.png

 

Let's look at problem 4080:

  • Code 4080 - Invalid object type for reserved name (found BUFFER, requires Package)

This error means that the code is suppose to have the name "Package" instead of "Buffer". Let's look at line 16051 .

 

iD0wTcp.png

 

As you can see, the object type name is "Buffer" but this is wrong. It is suppose to be "Package". For the error code 4080, all you have to do is rename the part that says "Buffer" to "Package".

 

aYON1Pb.png

 

After applying this fix to the remaining errors, the DSDT is fixed, cleaned, and ready for patching!

 

qbCObNF.png

 

Note: Before you begin to modify the DSDT and add patches to it, you must add the DTGP method to your DSDT. There are many guides out there on how to do this. It should be easy to add. I will assume that you have this method added already in the sections below.

 

1.1 Finding the DSDT Integrated Graphics Section

 

So what is this DSDT Integrated Graphics section? Finding this section will be useful if you plan to run OS X without the Natit kext or if you need to inject IGPU properties such as model, OS-Info, vram, etc. In general, this section is where OS X detects any information about the IGPU from the DSDT and injects it to the operating system. 

 

Let's take a look at this DSDT:

FoxwwUZ.png

It looks overwhelming doesn't it? The important thing to understand here is that by finding the correct section to edit in the DSDT, it will allow you to fix any issues your facing with your PC when running OS X. 

 

Since this guide relates to the Intel HD Graphics IGPU, I will only focus on patches for the IGPU. So how do you find the integrated graphics section on the DSDT? 

 

You will need to obtain a copy of IORegistryExplorer or IOJones (http://sourceforge.n...ojects/iojones/). Open either application and on the left side look for a name mentioning IGPU or VID or GFX. These names define the graphics section in your DSDT and depending on your computer manufacturer, they can choose either of those 3 names. In this example, I found that my computer manufacturer used the GFX name. 

dN0MmVz.png

If you noticed, the official name given here is GFX0 (highlighted in blue) but this does not matter. The @2 means its located under the 20000 address. On the right side there is a grey highlight mentioning acpi-path.

 

The acpi-path contains a string (or a sentence made up of words) and contains IOACPIane:/_SB/PCI0@0/GFX0@20000. This is the location where GFX0 is located on my DSDT. Let's break up this location.

 

IOACPIPlane: - This is the starting folder of the DSDT. 

/_SB - SB Folder.

/PCI0@0 - PCI0 Folder at address 0.

/GFX0@20000 - GFX0 Folder at address 20000.

 

Let's look at the MaciASL sidebar.

 

cadByH5.png

 

By looking at the sidebar, we can automatically assume that "IOACPIPlane:" is the "DSDT" folder with the home icon. Next, we know that "/_SB" is a folder with the name "_SB", but there's a problem. There are multiple folders with the "_SB" name. How do you know which one is the one your looking for? If we look back at the location, the next folder inside "/_SB" is "/PCI0". Click on each of those "_SB" folders until you find one that has a "PCI0" folder. 

 

lxesnpE.png

 

One you find the correct "_SB" folder with the "PCI0" folder inside it, we are now able to easily locate the "/GFX0" folder. 

 

StGmpSx.png

 

By looking inside the "/PCI0" folder, we have found the "/GFX0". Now, we are ready to patch the DSDT! For those curious about the "@20000", this comes from the Name(_ADR, 0x00020000) on line 4399 as seen on the screenshot.

 

1.2 Patching the DSDT Integrated Graphics Section

 

Suppose that you are one of the users who needs Natit.kext installed in order to boot to the desktop. The main reason why some users need this kext is because it injects OS-Info, VRAM, and the model name of the IGPU. The Intel® HD Graphics framebuffer automatically injects this information but for some unknown reason, some computers with OS X do not recognize this information and causes it to freeze during boot.

 

Note: Before you begin to modify the DSDT and add patches to it, you must add the DTGP method to your DSDT. There are many guides out there on how to do this. It should be easy to add. I will assume that you have added the DTGP method already in your DSDT. 

 

We will need to add three things:

 

1) OS-Info

2) VRAM

3) Model

 

This will be added to the integrated graphics section of the DSDT. From the previous example, the name turned out to be GFX0. Your DSDT might have a different name for this section such as VID or IGPU. They are the same thing only with a different name. Once you know the location of this information, you should see something like this:

 

kXkpoKl.png

 

Your integrated graphics section might look longer or shorter, depending on the computer manufacturer. Inside this portion of the DSDT, we will add the DSM method. This is what the DSM method looks like:

 

CgbXRZl.png

 

You can copy and paste this code onto your DSDT. Place the DSM method underneath Name(_ADR, 0x00020000).

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                        
                        // Hacks are placed here //    
                                    
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }                

Your GFX0 (or VID or IGPU) method should now look something like this:

 

eDpLcWF.png

 

Now you are ready to inject OS-Info, VRAM, and model information to this section!

 

1) OS-Info

 

AAPL, OS-Info is the information that the Intel® HD Graphics framebuffer uses to enable or disable display ports.

 

For this particular example, we will inject the default OS-Info code that the Intel® HD Graphics framebuffer uses. This is the OS-Info code that it uses:

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

This particular OS-Info code enables the LVDS display port on your laptop. In the DSDT, it must be written in hexadecimal form. This is the format to inject AAPL,OS-Info code in the DSM method. You can copy and paste this code onto your DSDT:

"AAPL,os-info", 
                            Buffer ()
                            {
                                0x30, 0x49, 0x01, 0x11, 0x01, 0x10, 0x08, 0x00, 
                                0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                0xFF, 0xFF, 0xFF, 0xFF
                            }, 

You should now have something like this:

 

t5OeQLU.png

 

2) VRAM

 

This the amount of video ram that will appear in the About This Mac information. This is only cosmetic so this won't change the actual VRAM that OS X is allowed to use. VRAM,totalsize is written in hexadecimal format and the value that it represents is 288MB. You can copy and paste this code onto your DSDT: 

"VRAM,totalsize", 
                            Buffer ()
                            {
                                0x00, 0x00, 0x00, 0x12
                            },

You should now have something like this:

 

6e72kyQ.png

 

3) Model

 

This is the name of the IGPU that will be displayed in the About This Mac information. Apple simply defines 1st Generation Intel® HD Graphics IGPU as "Intel HD Graphics". You can copy and paste this code onto your DSDT:

"model", 
                            Buffer ()
                            {
                                "Intel HD Graphics"
                            },

You should now have something like this:

 

Y7fNthi.png

 

That's it, you are now finished! All you need to do is compile the DSDT and configure your bootloader to use it. You can now delete Natit.kext since this information is now patched onto the DSDT. 

 

Note: After you compile the DSDT, the compiler will fill in numbers inside the package() parentheses and buffer() parenthesis. If you need to edit these codes, you need to delete those numbers inside the parenthesis or you will get a compilation error.

 

mOFYfc3.png

 

1.3 DSDT - Brightness Values for Internal LCD

Note: Before you continue, your must have already followed mnorthern's guide to enable brightness functionality on your computer. If you have not read his thread and followed his instructions, then this will not work.

Remember when you had to add the PNLF section into your DSDT? This method allows OS X to recognize your internal LCD and enable brightness functionality. This is also the place where all your brightness levels are located. Let's take a look at this PNLF section:

 

sMQpolH.png

 

If you don't remember where it is, it is suppose to be located in the Scope_SB folder. It is the same folder where PCI0 is also located at. For this section we will be focusing only on this part of the code:

 

KBh6G0Q.png

 

Let's look at the code in detail:

 

Method (_BCL, 0, NotSerialized) is the name of the method that holds all of the brightness values. Return (Package (0x13) tells us how many things there are inside this method in hexadecimal format. For this BCL method, you cannot change this. I will explain why in a bit. Let's continue to look at the code further:

 

0IB8mNn.png

 

What you see here are numbers in hexadecimal format. Look at this diagram to understand why they are arranged like this:

eWjIGcm.png

 

There are 19 values total but the top 2 values belong to the preset brightness values and the other 17 values belong to the brightness slider in OS X. You cannot change the order of these values.

So what do the hexadecimal numbers stand for? Here are the hexadecimal numbers converted to decimal (normal) numbers:

 

Preset Brightness values:

 

0x0384 means the number 900.

0x0384 means the number 900.

 

Brightness Values: 

 

Zero means the number 0.

0x012C means the number 300.
0x0258 means the number 600.
0x0384 means the number 900.
0x04B0 means the number 1200.
0x05DC means the number 1500.
0x0708 means the number 1800.
0x0834 means the number 2100.
0x0960 means the number 2400.
0x0AC8 means the number 2700.
0x0BB8 means the number 3000.
0x0CE4 means the number 3300.
0x0E10 means the number 3600.
0x0F3C means the number 3900.
0x010CC means the number 4200.
0x01194 means the number 4500.
0x012C0 means the number 4800.

Note: Remember, the brightness values must be converted to hexadecimal format or they will not work. That is how OS X reads them.

Now that you know what the numbers stand for, lets look at first part. These are the Preset Brightness Values:

 0x0384, 
 0x0384,

Although these numbers are the same, their order is not.

 

The 1st top code changes the brightness level to 900 when the computer boots up with the AC power connected to the computer or when you connect the AC power cable to charge the battery. The 2nd bottom code changes the brightness level to 900 when the computer boots up using the battery or when you disconnect the AC power cable.

0x0384, (Brightness value when AC is connected) 
0x0384, (Brightness value when Battery is being used)

Now lets look at the second part. These are the 17 brightness levels that OS X can access in System Preferences or when pressing the brightness control buttons on your keyboard.

Zero, 
0x012C, 
0x0258, 
0x0384, 
0x04B0, 
0x05DC, 
0x0708, 
0x0834, 
0x0960, 
0x0AC8, 
0x0BB8, 
0x0CE4, 
0x0E10, 
0x0F3C, 
0x10CC, 
0x1194, 
0x12C0

The order is simple. The lowest brightness value is 0 (Zero), meaning that if I go to System Preferences and move the brightness slider all the way to the left, the screen will go black. The highest brightness value is 4800 (0x12C0), meaning that if I go to System Preferences and move the brightness slider all the way to the right, the screen will be at its maximum brightness level.

 

To make things easier to read:

Zero, (Lowest brightness level, black screen)
0x012C, 
0x0258, 
0x0384, 
0x04B0, 
0x05DC, 
0x0708, 
0x0834, 
0x0960, 
0x0AC8, 
0x0BB8, 
0x0CE4, 
0x0E10, 
0x0F3C, 
0x10CC, 
0x1194, 
0x12C0 (Highest brightness level, maximum brightness)

​The reason why there are 17 levels of brightness is because that is the maximum amount of levels that the slider can change to. If there are less than 17 or more than 17, it will not work. You must come up with 17 values. You can repeat values if you want as long as there are 17. 

 

So how do you come up with these values? How did I come up with these values? Unfortunately this is a trial and error situation. You are going to have to test various numbers to see which numbers your internal LCD display accepts. On some computers, the numbers 0-16 in hexadecimal format will work. On other computers you may have to use 0 and then 100-116 in hexadecimal. In my situation, I had to start from 0 and then use the numbers 300-4800 in hexadecimal. Once you find the numbers that work for your display, you can add them to the DSDT.

Attached Files


Edited by GhostRaider, 28 July 2015 - 04:34 PM.


#2
macandrea

macandrea

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts
  • Gender:Male
Thank you for collecting the information in a single place, it works on my DELL laptop also :)

#3
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 468 posts
  • Gender:Male

Thank you for collecting the information in a single place, it works on my DELL laptop also :)


Glad this guide helped you. :) I've seen in other places where users ask questions on how to do this or that and I decided put all of that information here. Any other discoveries, suggestions, are always welcome.

Remember the line "Once you go Mac, you never go back?" I've have not dual booted to Windows 8 ever since I did all of the things in this guide lol. There are more problems in native Windows than in a hacked OS X. :P

#4
jaller

jaller

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
  • Gender:Male
  • Location:Pescara,Italy
the graphics card is still bugged.i'll wait QE before delete dualboot.Anyway thank you for this guide you helped me with my IntelHD+Nvidia 540m(yes,i have optimus :( )

#5
lance76

lance76

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 posts
Wow, I am soooo happy to have come back here and find this. Absolutely amazing. My Lenovo and I thank all of those involved for their awesome work in making this possible to all of us Intel HD laptop owners. Great, great job! Thanks again!! :)

#6
freebo007

freebo007

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts
Hello,
For what OS version will these driver be working?
I got the arrandale / intel integrated / Radeon HD5000 (ATI Madison) in my HP dv7-4177 and would like mountain lion on it.
Install disk don't even boot.. :(
What's possible to do ? i used myhack to put the retail install on a usb stick.
thanks for any help, maybe just a link, one of you propably felt onto a "local apic KP" as i do, whatever the parameter i enter on chameleon?
Thanks to save me time, i suspect some myhack parameters to be able to solve my problem, but i don't find which!

#7
Van Gog

Van Gog

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
  • Gender:Male
  • Location:Russia
Thank you! It's cool! My FPS in OpenGL viewer is stand 50 FPS instead 5 before. Has anyone tried use AppleIntelHDGraphicsFB with edited AAPL,os-info and this kext?
What was edited in MLDP2AppleIntelHDGraphicskext ?
It's kext from 10.8.3?

#8
timbos

timbos

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Thanks for this. Now got a semi working system TM2 with i5 430 cpu.

Do anyone know how to get the HDMI port working?

#9
mehdymehdy

mehdymehdy

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 149 posts

Thanks for this. Now got a semi working system TM2 with i5 430 cpu.

Do anyone know how to get the HDMI port working?

the only way I can think of is by editing DSDT.aml that's if you can get the right set of numbers which enables hdmi. hdmi and vga should be enabled through appleintelhdgraphicsFB.kext since that doesn't work. there is 2 options one is for a group of developers to work on another module which enables that just like how resolution was enabled. or through editing DSDT. for me i'm done with intelhdgraphics. because last night in a process of fixing my laptop's power jack something went wrong and a power surge burnt my motherboard. so my intelhdgraphic adventure time is over. hope u guys have more success :D

#10
mendietinha

mendietinha

    mendi

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,436 posts
  • Gender:Male
  • Interests:full hackintosh.
that's very good. i suffer for a while trying to make my old hp to work.

#11
dcrui3

dcrui3

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
  • Gender:Male
Hi,

Ive been able to get Core Image and Custom Resolution to work with my Intel HD Graphics Card which is all thanks to all the hard work you guys have put into this... So, Thank you!

Im just having one problem with my graphics card atm. When I click on the Launchpad in ML my pc starts lagging and going slow until the Launchpad is closed, So I checked my graphics card info in System Information and below is what it reads...




35]Unknown:


35] Chipset Model: Unknown

35] Type: GPU

35] Bus: Built-In

35] VRAM (Total): 64 MB of Shared System Memory

35] Vendor: Intel (0x8086)

35] Device ID: 0x0046

35] Revision ID: 0x0018

35] Displays:

65]Display:

65] Resolution: 1366 x 768

65] Pixel Depth: 32-Bit Color (ARGB8888)

65] Main Display: Yes

65] Mirror: Off

65] Online: Yes



It seems as if the card isn't being properly detected at all including the graphics memory. I don't know the specs on the graphics cards memory or if this is the way it

is for is for all of us. If someone could please have a look and give me a hand. Thank you!



#12
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 468 posts
  • Gender:Male

Hi,

Ive been able to get Core Image and Custom Resolution to work with my Intel HD Graphics Card which is all thanks to all the hard work you guys have put into this... So, Thank you!

Im just having one problem with my graphics card atm. When I click on the Launchpad in ML my pc starts lagging and going slow until the Launchpad is closed, So I checked my graphics card info in System Information and below is what it reads...




35]Unknown:


35] Chipset Model: Unknown

35] Type: GPU

35] Bus: Built-In

35] VRAM (Total): 64 MB of Shared System Memory

35] Vendor: Intel (0x8086)

35] Device ID: 0x0046

35] Revision ID: 0x0018

35] Displays:

65]Display:

65] Resolution: 1366 x 768

65] Pixel Depth: 32-Bit Color (ARGB8888)

65] Main Display: Yes

65] Mirror: Off

65] Online: Yes


It seems as if the card isn't being properly detected at all including the graphics memory. I don't know the specs on the graphics cards memory or if this is the way it
is for is for all of us. If someone could please have a look and give me a hand. Thank you!



Launchpad will lag even if we have Core Image. This is because Quartz Extreme is not enabled. QE is used to smooth out the animations. Think of Core Image as the bread of the cake and Quartz Extreme as the icing on the cake. As of now there isn't a solution to enable it. However it's better than nothing.

As for your unrecognized graphics chip, you will probably need to inject that infromation to the DSDT. I don't really have time to write out how to do it but I will later on in the future and add it in this guide. Of course there are threads and tutorials around the Insanelymac community to get you started. :)

#13
warraisraw

warraisraw

    InsanelyMac Protégé

  • Members
  • PipPip
  • 62 posts
  • Gender:Male

Hi,

Ive been able to get Core Image and Custom Resolution to work with my Intel HD Graphics Card which is all thanks to all the hard work you guys have put into this... So, Thank you!

Im just having one problem with my graphics card atm. When I click on the Launchpad in ML my pc starts lagging and going slow until the Launchpad is closed, So I checked my graphics card info in System Information and below is what it reads...




35]Unknown:


35] Chipset Model: Unknown

35] Type: GPU

35] Bus: Built-In

35] VRAM (Total): 64 MB of Shared System Memory

35] Vendor: Intel (0x8086)

35] Device ID: 0x0046

35] Revision ID: 0x0018

35] Displays:

65]Display:

65] Resolution: 1366 x 768

65] Pixel Depth: 32-Bit Color (ARGB8888)

65] Main Display: Yes

65] Mirror: Off

65] Online: Yes



It seems as if the card isn't being properly detected at all including the graphics memory. I don't know the specs on the graphics cards memory or if this is the way it

is for is for all of us. If someone could please have a look and give me a hand. Thank you!



Hi, I had the same problem and solved it by installing Natit.kext, now my graphics card is recognized correctly and even noticed a small improvement. I hope help.

Thanks for this guide!

Attached Files



#14
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 334 posts
  • Gender:Male
thanks guys for good effect I need to fix about this mac not work and memory also say there was an error please help 10.8.2
Sony laptop
processor: i5 460M
Clockfrequency: 2.53GHZ
RAM: 4Gb
DDR3
Mem clockfreq.: 1333 Mhz

#15
timbos

timbos

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Thanks for the Natit tip.

Anyone got any ideas how to enable my HMDI port with this?

#16
2bad0

2bad0

    InsanelyMac Protégé

  • Members
  • PipPip
  • 68 posts
Actualy, i thought someone had already discovered this,hence i never posted about it, :(.

To go a step further if you add the hdframebuffer kext you will get a blackscreen or even grey depending on which AAPP-OS-INFO you use.I just used natit.kext to inject mine

Upon connecting via vnc you will realize that there is qe/ci, well to be more precise translucent menu bar.

But the problem is getting it to output to the internal LCD.



To be very clear,if you add the kext i have attached i'm 90% sure you will get a black/grey screen with backlight or even a kernel panic.

You will only be able to access you desktop via VNC, meaning you will have to enable screen sharing in advance,and know your ip adress.

in order for you to access you desktop via another machine with VNC client.


Side Note

If i boot from bios with an external display hooked up to vga it will result in an immediate restart after the frambuffer kext loads.
However if i plug in the external screen after the bootloader has loaded i get a fuzzy somewhat unusable screen.

#17
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 334 posts
  • Gender:Male
I test screenserver its not work

#18
Mageek

Mageek

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
I have an i5-430 cpu @2.66 w/hm57 chipset running only intel hd graphics it is a Dell 17R n7010 laptop. Currently i am running at 1440x900 graphics on ML 10.8.2
i was following the initial work of Rem and got it to work with the modules edit. What I just realized is that one of the reasons for this working was the fact that I had an external monitor connected to my laptop. If I remove it, it goes back to 1024x768. i will try the new kexts and see if this changes.

#19
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 334 posts
  • Gender:Male
Hi Ghostraider can you upload your ioreg file. I need find right "AAPL,os-info" I don't know how to find "AAPL,os-info" for our card thankyou.

#20
2bad0

2bad0

    InsanelyMac Protégé

  • Members
  • PipPip
  • 68 posts
Manor

The Hd Kext Has Four Values Here They Are


30490111111108000001f01f0100000010070000
30490111011008000001000000000000FFFFFFFF
30490014141408040000000000000000ffffffff
30490101010008000000000000000000FFFFFFFF





Also tagged with one or more of these keywords: Intel GMA HD, Arrandale, Intel GMA 5700HD


12 user(s) are reading this topic

3 members, 9 guests, 0 anonymous users


© 2015 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy