目录

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

文章教程879,591阅读模式
摘要驱动Intel HD Graphics 5500的基本思路,还是注入 AAPL, ig-platform-id。但由于苹果在OS X Yosemite 10.10.3 的 AppleIntelBDWGraphicsFramebuffer kext里,提升了st...

概述:

驱动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的方法-图片1

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

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

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

黑苹果驱动Intel HD Graphics 5500的方法-图片2

第二种方法查看:

  1. 按Windows键+ I打开“ 设置”菜单。
  2. 选择“ 系统”条目,然后单击左侧栏上的“ 显示 ”。
  3. 向下滚动并单击“ 高级显示设置”文本。
  4. 在结果菜单上,选择您要查看设置的显示器(如有必要)。然后单击底部的显示适配器属性文本。
  5. 在新窗口中,您将看到当前视频RAM列在专用视频内存旁边。

规律:

一般,如果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的文件夹。
https://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的方法-图片3

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

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

黑苹果驱动Intel HD Graphics 5500的方法-图片4

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

黑苹果驱动Intel HD Graphics 5500的方法-图片5

以上图为例,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。

文章附件

百度云盘
提取密码:*** [隐藏信息,登陆并发表评论后刷新可见!]

微信公众号
扫一扫随时掌握最新动态
weinxin
我的微信
官方微博
扫一扫随时掌握最新动态
weinxin
我的公众号
 
评论  87  访客  87
    • [email protected]
      [email protected] 6

      u呼吁工艺

      • capslock1984
        capslock1984 3

        谢谢分享,感谢,先看看能不能用

        • 13895647970
          13895647970 3

          谢谢分享,感谢,先看看能不能用

          • fengwuhenji
            fengwuhenji 5

            感谢分享,谢谢

            • weizhentian
              weizhentian 1

              看看是啥东西

              • boge1688
                boge1688 4

                感谢分享,谢谢

                • zyh3033
                  zyh3033 5

                  感谢分享,谢谢

                  • ASIA143108
                    ASIA143108 5

                    谢谢十分感谢

                    • 617486883
                      617486883 5

                      感谢分享我试试看

                      • qq631313770
                        qq631313770 5

                        感谢分享我试试看

                        • ly2001106
                          ly2001106 3

                          能搞定吗 ?

                          • asd6901723
                            asd6901723 4

                            感谢楼主分享

                          发表评论