Contribute
Register

[GUIDE] Intel HD Graphics 5500 on OS X Yosemite 10.10.3

Joined
Jan 4, 2013
Messages
1
Motherboard
win7
CPU
2450M
Graphics
HD3000
Mac
Classic Mac
Mobile Phone
awesome!

Completely effective, thank you very much!

On my DELL 7050m
intel 7700T
Intel hd630
macOS 10.12.6

BIOS VERSION: 1.7.7
start_var 0x795 0x2
 
Joined
Sep 13, 2017
Messages
26
Motherboard
Acer Travelmate P-249-M/4369-Clover
CPU
i3-6006U
Graphics
HD 520, 1366x768
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Mobile Phone
Android, iOS, Other
After several weeks' work with @lisai9093, now it's time to post a guide. :)


GUIDE:
Intel HD Graphics 5500 on OS X Yosemite 10.10.3



View attachment 134306

Before we get started:


The basic idea to make Broadwell's integrated graphics card work does not change.

If you have Intel HD Graphics 5300 or other IGPU models supported by AppleIntelBDWGraphicsFramebuffer.kext, you can try it by yourself.

Detailed framebuffer information and this guide can be found on my blog.

Brief Introduction:


The basic idea to let Intel HD Graphics 5500 work is still injecting AAPL, ig-platform-id.

However, Apple raised the minimum stolen memory in the AppleIntelBDWGraphicsFramebuffer binary of OS X Yosemite 10.10.3.
Kernel panic will happen if the DVMT pre-allocated memory in BIOS settings is lower than 66MB.(based on experimental data; not sure; please correct me if I was wrong.) This is not a big deal for Desktop PCs users, because one can easily change the DVMT pre-allocated memory in BIOS.
But this is catastrophic for laptop users, because
(1) the default value of DVMT pre-allocated memory in laptop BIOS is 32MB.
(2) OEM will not unlock these advanced settings/menus for us.
(3) We can try to modify BIOS but cannot pass the security check during flashing modified BIOS.


Detailed Step-by-step guide:

STEP 1: Check the current DVMT pre-allocated memory size.

Open the Screen Resolution window, click the Advanced settings and check Dedicated Video Memory.
http://www.firewolf.science/wp-content/uploads/2015/04/Snip20150416_5.png
View attachment 134303

After I played with changing DVMT pre-allocated memory in BIOS, the following pattern can be found.


If Dedicated Video Memory = 0MB, then DVMT pre-allocated memory in BIOS settings is 32MB.
If Dedicated Video Memory = 32MB, then DVMT pre-allocated memory in BIOS settings is 64MB.
If Dedicated Video Memory = 64MB, then DVMT pre-allocated memory in BIOS settings is 96MB.
If Dedicated Video Memory = 128MB, then DVMT pre-allocated memory in BIOS settings is 128MB.


In general, if DVMT pre-allocated memory in BIOS settings is less or equal to 96MB, the StolenMemory that could be detected by OS is (DVMT - 32) MB.
If DVMT pre-allocated memory in BIOS settings is larger or equal to 128MB, the StolenMemory that could be detected by OS is (DVMT) MB. (equal to the value of DVMT pre-allocated memory)

Now let's come back to our main topic, Dedicated Video Memory >=64MB (i.e. DVMT pre-allocated memory >= 96MB) will pass the assertion/kernel panic.

Note that OS X can not boot on some laptops if DVMT pre-allocated memory is >= 128MB.
Therefore, if your current DVMT pre-allocated memory size <= 64MB (i.e. Dedicated Video Memory <= 32MB), you can either choose using our patch in STEP 2.1 or changing DVMT pre-allocated setting in STEP 2.2


STEP 2.1: Apply the patch to pass the Stolen Memory assertion.


We need to patch AppleIntelBDWGraphicsFramebuffer binary file.
Find 39CF763C and replace it with 39CF773C.

After using this patch, in theory you don't have to change your BIOS settings.
You can try to inject ig-platform-id and see what happens.


If you encounter some problems, try to modify Framebuffer data in AppleIntelBDWGraphicsFramebuffer binary.
Detailed information on Broadwell's framebuffer can be found on this page.


STEP 2.2: Using EFI Shell to change DVMT settings in BIOS.


(1) Prepare a bootable USB drive with EFI Shell
Prepare a USB stick and format it with FAT32 filesystem.
Download this EFI shell and you can find a folder named BOOT after extracting.
Copy this BOOT folder to your USB stick.


(2) Dump/Fetch a completed BIOS file.
You can use specific BIOS utility to save a copy of your BIOS on Desktop.
e.g. For AMI Aptio UEFI BIOS, you can use AMI BIOS Utility.


(3) Extract BIOS Settings from a BIOS file.
Download UEFITools from https://github.com/LongSoft/UEFITool/releases
Open your BIOS file with UEFITools.
Find the module labeled with Setup and extract the PE32 image section in this module as a binary file.

View attachment 134304

Now, you will have a binary file on your Desktop. In my case, I name it Setup.bin.
Next, download the Universal IFR Extractor (Windows version only) from http://donovan6000.blogspot.ca/2014/02/universal-ifr-extractor.html or from here: Universal IFR Extractor.exe.
Open the Universal IFR Extractor in Windows, open the binary you just extracted from UEFITools and click Extract to save the BIOS settings in plain text format.

Now open the extracted setup IFR.txt and find the keyword "DVMT".
And you can find the variable representing DVMT pre-allocated memory and its values.

View attachment 134305

In this case, DVMT pre-allocated memory's variable is 0x1C3. The value of 96MB is 0x3. Record these two values.
Next, restart your computer and boot from the USB drive with EFI Shell.
Here, we use setup_var command to change our BIOS settings.

Code:
[B][SIZE=3][B][COLOR=#ff0000]syntax:[/COLOR] setup_var [I]address value[/I][/B][/SIZE][/B]
OK, now type the command in EFI shell.
In this case, the command is setup_var 0x1C3 0x3. (Change the value of 0x1C3 to 0x3, which means changing the DVMT to 96MB.)


After changing the DVMT pre-allocated memory, go back to Windows and double check whether your current Dedicated Video Memory is 64MB. (96 - 32 = 64MB)

STEP 3: Injecting AAPL, ig-platform-id


Currently, Clover does not support inject AAPL, ig-platform-id for Broadwell's integrated graphics.

So we can use DSDT/SSDT to inject AAPL, ig-platform-id. 0x16160002 is working fine.

Open your DSDT, find Device (GFX0) or Device (IGPU) or Name (_ADR, 0x00020000) and add the Device-Specific Method.

Code:
Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }

                        Return (Package (0x08)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                0x16, 0x16, 0x00, 0x00
                            },

                            "AAPL,ig-platform-id",
                            Buffer (0x04)
                            {
                                0x02, 0x00, 0x16, 0x16
                            },

                            "model",
                            Buffer (0x17)
                            {
                                "Intel HD Graphics 5500"
                            },

                            "hda-gfx",
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }
                        })
                    }


Place your DSDT in /EFI/Clover/ACPI/Patched/
Restart your computer and you will find Intel HD Graphics 5500 is working now.


Some Issues you may encounter:


(1) Garbled Screen Issue

Enable Legacy Support in your BIOS settings.

(2) Screen Freeze Issue (GPU hang and restart)


Using FakeSMC 5.3.820 or other 5.x.xxx version will decrease the opportunity to freeze.
(Note that please delete CPUSensors.kext from FakeSMC.kext if you get kernel panic related to CPUSensors.kext)


Reference and Special Thanks:


Thanks to Rehabman @ tonymacx86 for his advice on garbled screen issue.

Thanks to nguyenmac @ tonymacx86 for his clues on freeze issue.

Thanks to sontrg for his direction to BIOS modification.

Thanks to the-darkvoid @ tonymacx86 for his QHD+ Guide on HD4600.

My laptop has 128Mb dvmt I can not reach to the installer

Which method I have to do?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
My laptop has 128Mb dvmt I can not reach to the installer

Which method I have to do?
How are you determining 128mb DVMT-prealloc?
 
Joined
Jun 1, 2017
Messages
3
CPU
Intel Core i7-5500U
Graphics
Intel HD 5500, 1920x1080
Classic Mac
iBook, PowerBook
Mobile Phone
Android, iOS,
I'm on Step 2.1, and I'm trying to patch my AppleIntelBDWGraphicsFramebuffer.kext info.plist file, but "39CF763C" (what needs to be replaced) does not exist in the file. Neither does "39CF773C" (what replaces the first one). I am using nano to patch it. Am I patching it wrong or do I have a messed up file?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I'm on Step 2.1, and I'm trying to patch my AppleIntelBDWGraphicsFramebuffer.kext info.plist file, but "39CF763C" (what needs to be replaced) does not exist in the file. Neither does "39CF773C" (what replaces the first one). I am using nano to patch it. Am I patching it wrong or do I have a messed up file?
The information in this thread is old. Does not apply to current technique, nor to current macOS.

See guide:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 
Joined
Mar 22, 2017
Messages
106
Motherboard
Lenovo G50-80 + Clover
CPU
i5-5200U
Graphics
HD 5500 & R5 M230
Mobile Phone
Android
(1) Garbled Screen Issue

Enable Legacy Support in your BIOS settings.
Thanks a lot for this. After I enable the Legacy Support , HD 5500 is working now.
 
Joined
Mar 22, 2017
Messages
106
Motherboard
Lenovo G50-80 + Clover
CPU
i5-5200U
Graphics
HD 5500 & R5 M230
Mobile Phone
Android
[B]setup_var[/B] is not allowed on my laptop.
 
Top