黑苹果驱动Intel HD Graphics 5500的方法

摘 要

驱动Intel HD Graphics 5500的基本思路,还是注入 AAPL, ig-platform-id。但由于苹果在OS X Yosemite 10.10.3 的 AppleIntelBDWGraphicsFramebuffer kext里,提升了stolen memory 的最小值。如果BIOS设置里 DVMT pre-allocated memory 的值小于 66MB,黑苹果就会出现内核崩溃。

文章前言

此文章有daxuesheng翻译到远景论坛,原帖地址和翻译地址见文章下方!远景论坛的文章编辑的着实让我眼花缭乱,这里好好排版一下!你要觉的有不妥的地方请在下方留言!文章大体思路就是修改BIOS的DVMT pre-allocated memory值的大小,有些机型或许不能修改,继续看文章吧。

概述:

驱动Intel HD Graphics 5500的基本思路,还是注入 AAPL, ig-platform-id。但由于苹果在OS X Yosemite 10.10.3 的 AppleIntelBDWGraphicsFramebuffer kext里,提升了stolen memory 的最小值。如果BIOS设置里 DVMT pre-allocated memory 的值小于 66MB,黑苹果就会出现内核崩溃。而台式机的情况会比较好,因为台式机的BIOS里,可以直接修改DVMT pre-allocated memory的值。但对笔记本用户来说,就可以说是灾难了。

因为:

  1. 笔记本DVMT pre-allocated memory的默认值时32MB。
  2. 厂商不会解锁这样的BIOS高级设置。
  3. 还可以修改BIOS,但是,在刷修改好的BIOS的时候,通不过安全检查。

驱动方法:

这里我大概理解为上面提到的苹果提升了stolen memory 的最小值,所以我们需要改变BIOS里的Dedicated Video Memory的值才可以。

在Windows控制面板,打开“屏幕分辨率”窗口,点击“高级设置”,看 Dedicated Video Memory的值是多少。

黑苹果驱动Intel HD Graphics 5500的方法

经过作者的多次尝试,得出了以下关系:

如果 Dedicated Video Memory = 0MB, BIOS设置里的 DVMT pre-allocated memory 就应该是32MB。
如果 Dedicated Video Memory = 32MB, BIOS设置里的 DVMT pre-allocated memory 就应该是 64MB。
如果 Dedicated Video Memory = 64MB, BIOS设置里的 DVMT pre-allocated memory 就应该是 96MB。
如果 Dedicated Video Memory = 128MB, BIOS设置里的 DVMT pre-allocated memory 就应该是 128MB。

Windows控制面板里检测到的Dedicated Video Memory 和 BIOS设置了的 DVMT pre-allocated memory 的关系表如下:

黑苹果驱动Intel HD Graphics 5500的方法

规律:

一般,如果BIOS设置里DVMT pre-allocated memory的值小于等于96MB,那么Windows检测到的StolenMemory就应该是(DVMT – 32) MB。

如果BIOS设置里DVMT pre-allocated memory的值大于等于128MB,那么Windows检测到的StolenMemory就应该是(DVMT) MB。(即 等于BIOS里DVMT pre-allocated memory的值)

总之,让 Dedicated Video Memory(Windows检测) >=64MB (相当于 DVMT pre-allocated memory(BIOS里) >= 96MB),就可以避免内核崩溃。

方法一:改BIOS设置

通过给kext打补丁,跳过Stolen Memory assertion(判断)。

我们需要给 AppleIntelBDWGraphicsFramebuffer 的二进制文件打补丁。
查找 39CF763C,把它替换成 39CF773C。

注意:你可以用16进制编辑软件(例如 0xED、或 Hex Fiend) 或者 Clover的KextsToPatch来进行补丁操作。

打过这个补丁后,理论上,就不需要修改BIOS设置了。现在就可以尝试注入ig-platform-id,看看系统的启动、驱动情况。

方法二:EFI Shell 修改 BIOS DVMT值

制作EFI Shell的引导U盘。

需要一个FAT32格式的U盘。
下载EFI Shell,解压后,你可以看到一个叫BOOT的文件夹。
http://www.firewolf.science/wp-content/uploads/2015/04/EFI-shell.zip

把BOOT文件夹复制到U盘的根目录。

1、提取完整的BIOS文件。

可以在Windows下,用一些BIOS工具软件,把BIOS文件提取到桌面。
例如,对于AMI Aptio UEFI BIOS,可以用AMI BIOS Utility软件。
(请根据自己的BIOS类型,搜索对应的提取软件)

2、从得到的BIOS文件里,提取BIOS的设置信息。

用UEFITools打开BIOS文件。找到名字是Setup的这一项,展开,提取PE32 image section,保存为一个二进制文件。

 

黑苹果驱动Intel HD Graphics 5500的方法

文件会被提取到桌面。以作者的为例,得到文件Setup.bin。

回Windows,打开Universal IFR Extractor软件,用它打开刚才用UEFITools提取好的二进制文件(Setup.bin),点击Extract,把文件保存为普通文本格式。

黑苹果驱动Intel HD Graphics 5500的方法

现在,打开刚才导出的文本文件setup IFR.txt,搜索关键字DVMT。你就可以找到代表了DVMT pre-allocated memory的变量和变量的值。

黑苹果驱动Intel HD Graphics 5500的方法

以上图为例,DVMT pre-allocated memory的变量名是0x1C3,表示96MB的值是0x3。记好这两个值。接下来,重启电脑,用之前做好的EFI Shell启动U盘启动。现在,我们要用 setup_var 命令来修改BIOS的设置。

命令的语法:

  1. setup_var address value

以作者的为例,命令是 setup_var 0x1C3 0x3 (把变量0x1C3的值,改成0x3,相当于把DVMT改成96MB)。

修改好BIOS里的DVMT pre-allocated memory值后,回到Windows,检查当前Dedicated Video Memory 的值是不是 64MB了。 (96 – 32 = 64MB)

3、注入AAPL, ig-platform-id。

你可以用 Clover 或者 DSDT/SSDTs,来注入AAPL, ig-platform-id。如果用Clover, 需要开启 InjectIntel = True 并且注入 ig-platform-id=0x16160002 。如果用DSDT/SSDT注入AAPL, ig-platform-id,还是注入0x16160002。

打开DSDT, 搜索 Device (GFX0) 或者 Device (IGPU) 或者 Name (_ADR, 0x00020000) ,找到后,在相应位置添加下面的Device-Specific Method:

  1. Method (_DSM, 4, NotSerialized)
  2.                     {
  3.                         If (LEqual (Arg2, Zero))
  4.                         {
  5.                             Return (Buffer (One)
  6.                             {
  7.                                 0x03
  8.                             })
  9.                         }
  10.                         Return (Package (0x08)
  11.                         {
  12.                             "device-id",
  13.                             Buffer (0x04)
  14.                             {
  15.                                 0x160x160x000x00
  16.                             },
  17.                             "AAPL,ig-platform-id",
  18.                             Buffer (0x04)
  19.                             {
  20.                                 0x020x000x160x16
  21.                             },
  22.                             "model",
  23.                             Buffer (0x17)
  24.                             {
  25.                                 "Intel HD Graphics 5500"
  26.                             },
  27.                             "hda-gfx",
  28.                             Buffer (0x0A)
  29.                             {
  30.                                 "onboard-1"
  31.                             }
  32.                         })
  33.                     }

把修改好的文件放到 /EFI/Clover/ACPI/Patched/ 。

或者使用本贴提供的config注入(用的是0x16160002)。重启电脑,如果顺利,Intel HD Graphics 5500已经驱动了!

花屏和冻屏

显卡驱动后可能还存在的问题及解决办法:

1、花屏:(这里是指进桌面之后花屏,如果是系统启动过程中的花屏,是另外的问题,Broadwell的启动花屏补丁和之前的补丁一样,搜索一下吧。或者,比较推荐自己修改下RehabMan大神的通用config,里面提供的补丁很全)在BIOS开启Legacy Support就可以解决。

2、冻屏(屏幕画面突然卡死):
把DVMT pre-allocated memory 改回 32MB 并给kext打 2.1步的补丁。 (案例:XPS13 2015)
或者先进Windows,再重启进OS X(也就是不要冷启动)。或者就只能等官方更新BIOS了。(案例:Dell Inspiration 7548)

3、CPUSensors.kext引起的Kernel panic:
删除 FakeSMC.kext里面带的 CPUSensors.kext。

4、AppleACPIPlatform.kext 和 Machine Check at 0xHexAddress 引起的Kernel panic:
修改过BIOS后,可能会出现这个问题。(例如修改了BIOS里的DVMT后)

这时,只能删除之前修改好的DSDT.aml 或者 重新在Windows用AIDA64或者在Linux提取原始DSDT.aml。

利用到的软件下载

 

Intel HD Graphics 5500
提取密码: ******** [隐藏信息,登陆并发表评论后刷新可见!]

发表评论

您必须登录才能发表评论!

目前评论:113   其中:访客  113   博主  0

  1. avatar RinHoshizora 4

    谢谢!!!!!

  2. avatar Liu19990630 3

    支持!!!!

  3. avatar skyfloat 4

    感谢分享,不明觉厉

  4. avatar q89692825 2

    感谢分享!么么哒!

  5. avatar 155164738 3

    谢谢楼主分享

  6. avatar qq364041676 3

    谢谢楼主分享~

  7. avatar ZLY2WXD 2

    :cry: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :oops: :arrow: :arrow: 试试,谢谢楼主

  8. avatar HackintoshBar 4

    感谢楼主分享 正是这个显卡

  9. avatar zhang19940714 1

    :oops: :shock: 感谢分享!!!

  10. avatar soyabean 4

    怎么下载啊!

  11. avatar heyJordan 1

    我是这个显卡,楼主辛苦了

  12. avatar ychstephen 4

    我也是这个显卡~~~