简单修改 FB 实现显存增加至 2048MB 修复某些花屏
前言:
本来不打算发这个帖子的,因为好多人觉得没有什么用,但前几天帮论坛好友阿林解决他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
我直接放链接了
链接: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 Mobile
Name: AppleIntelFramebufferAzul
Find: 01030303 00000002 00003001 00006000 00000060
Replace: 01030303 00000002 00003001 00009000 00000080
Comment: 1536MB -> 2048MB for HD4200_4400_4600 Mobile
HD620 Mobile:
Name: AppleIntelKBLGraphicsFramebuffer
Find: 01030303 00002002 00000000 00000060
Replace: 01030303 00002002 00000000 00000080
Comment: 1536MB -> 2048MB for HD620 Mobile
HD630 Mobile:
Name: AppleIntelKBLGraphicsFramebuffer
Find: 01030303 00006002 00005001 00000060
Replace: 01030303 00006002 00005001 00000080
Comment: 1536MB -> 2048MB for HD630 Mobile
HD520_530_540 Mobile:
Name: AppleIntelSKLGraphicsFramebuffer
Find: 01030303 00002002 00005001 00000060
Replace: 01030303 00002002 00005001 00000080
Comment: 1536MB -> 2048MB for HD520_530_540 Mobile
HD5500 Mobile:
Name: AppleIntelBDWGraphicsFramebuffer
find: 01030303 00002002 00005001 00000060
Replace: 01030303 00002002 00005001 00000080
Comment: 1536MB -> 2048MB for HD5500 Mobile