前言:
本来不打算发这个帖子的,因为好多人觉得没有什么用,但前几天帮论坛好友阿林解决他hd4600花屏问题时,发现这个方法还是有一定作用的。之前在10.12区有坛友的4600部分区域出现花屏的情况,最后通过修改注入的ig来解决的,大家都知道,4200 4400 4600都是靠FakeID为0x04128086和ig为0x0a260006然后配合FakePCIID和FakePCIID_HD_Graphics两个kext来驱动的,大家也知道,一部分4600也可以用0x04160000而不需要FakeID注入来驱动(相应的不少4400也可以用0x0a160000而不需要FakeID来驱动),两种方法都可以驱动核显,但区别还是有的,最容易发现的就是显存了,第一种方法驱动后都是1536m,第二种则是1024m。而前面提到的4600部分区域花屏的案例则是用第二种方式来解决的,后来经过测试,发现通过对framebuffer进行patch以达到2048m的显存也可以解决这个问题,于是这个方法就被我记在心里了。后来在帮阿林解决了他的花屏问题后,决定还是把相关方法写出来,虽然没什么技术含量,但也能为景友提供一个思路。
废话就说到这,下面说方法
开工
一、查看FB以及ig
首先,确定你当前加载的Framebuffer,终端执行以下命令
$ kextstat | grep -y AppleIntel
如图,看输出结果中带Framebuffer的就是我们需要的(haswell之前的是带FB的),图中我的就是AppleIntelFramebufferAzul
然后执行以下命令查看当前使用的ig
$ ioreg -l | grep ig-platform-id
如图我的就是0x0a260006,有朋友不清楚,不是0600260a吗,下次一定要知道,这种id将每两位一组分组,然后从后往前排序,最后由于是十六进制,我们在最前面加上0x来表示,就得出了0x0a260006,这就是我们的id,当然了,后面步骤中用到的还是0600260a。
二、下载并安装hexfiend
我直接放链接,给大家省pb了
链接:https://pan.baidu.com/s/1EhkVv2eaUE1u_Gmp87arJw 密码:lm1o
三、在FB中查找ig进行处理
然后,在/System/Library/Extensions下找到和第一步找出的Frambuffer同名kext,以我的为例,就是AppleIntelFramebufferAzul.kext,右键显示包内容,在/Contents/MacOS下将kext的同名文件拷贝到桌面,以我的为例就是AppleIntelFramebufferAzul。
右键此文件打开方式选我们刚才安装的hexfiend,如图
快捷键command+F调出搜索框,输入刚才在第一步找到的ig,回车搜索,找到后面紧跟01030303的那一串字符,如图
从搜索的ig后面第一串开始,到00000060结束,将这些字符串拷贝到一个文本文档,并八个数字一组,整理好,然后再复制一行,将第二行最后的60改为80,如图
第一串就是我们要做的patch的Find,第二串是Replace,而Name则是第一步中的Framebuffer名字,我这里就是AppleIntelFramebufferAzul,Comment就无所谓了,我写成Change VRAM from 1536MB to 2048MB for HD4400,这时我们的补丁就做好了。
最后将patch打到config.plist
然后保存重启,就会发现关于本机的显存从原来的1536MB变成了2048MB
如果没效果,可以尝试重建缓存。
帖子的最后,我将之前做的几个patch贴出来,大家可以尝试使用
HD4200_4400_4600_5000 Mobile:
Name: AppleIntelFramebufferAzul
Find: 01030303 00000002 00003001 00006000 00000060
Replace: 01030303 00000002 00003001 00009000 00000080
Comment: 1536MB -> 2048MB for HD4200_4400_4600 MobileHD620 Mobile:
Name: AppleIntelKBLGraphicsFramebuffer
Find: 01030303 00002002 00000000 00000060
Replace: 01030303 00002002 00000000 00000080
Comment: 1536MB -> 2048MB for HD620 MobileHD630 Mobile:
Name: AppleIntelKBLGraphicsFramebuffer
Find: 01030303 00006002 00005001 00000060
Replace: 01030303 00006002 00005001 00000080
Comment: 1536MB -> 2048MB for HD630 MobileHD520_530_540 Mobile:
Name: AppleIntelSKLGraphicsFramebuffer
Find: 01030303 00002002 00005001 00000060
Replace: 01030303 00002002 00005001 00000080
Comment: 1536MB -> 2048MB for HD520_530_540 MobileHD5500 Mobile:
Name: AppleIntelBDWGraphicsFramebuffer
Find: 01030303 00002002 00005001 00000060
Replace: 01030303 00002002 00005001 00000080
Comment: 1536MB -> 2048MB for HD5500 MobileHD3000 Desktop:
Name: AppleIntelSNBGraphicsFB
Find: 003D1000 03007528 41BF0200
Replace: 003D1000 03007528 41BF0400
Comment: 512MB>1024MB for HD3000 Desktop
MatchOS: 10.13.4HD4600 Desktop:
Name: AppleIntelFramebufferAzul
Find: 00030303 00000002 00003001 00000000 00000060
Replace: 00030303 00000002 00003001 00000000 00000080
Comment: Change VRAM from1536MB to 2048MB for Desktop HD4600HD4000 Mobile:
Name: AppleIntelFramebufferCapri
Find: 01020402 00000004 00000001 00000060
Replace: 01020402 00000004 00000001 00000080
Comment: Change VRAM from 1536MB to 2048MB for HD4000