-
Notifications
You must be signed in to change notification settings - Fork 476
设置64mb动态显存
Steve Zheng edited this page May 1, 2022
·
23 revisions
根据 [Guide] Alternative to the minStolenSize patch with 32mb DVMT-prealloc,Broadwell/Skylake/KabyLake 平台上一个常见问题是PC厂商设定了相对较小的动态显存。苹果的帧缓存驱动通常假定动态显存在64mb或以上,然而大部分PC厂商只有32mb动态显存。因此,在 EFI 里我们通过给帧缓存打补丁来让系统适配32mb动态显存。
然而,我发现在小米笔记本Pro上,32mb动态显存似乎不支持4K显示,添加 -cdfon
启动参数也不管用。设置64mb动态显存并移除动态显存补丁可以让我们的机器支持原生4K。
注意: HDMI 接口使用的是 HDMI 1.4协议,似乎只支持 4K 30赫兹 HDMI。
Cyb 和 FallenChromium 创建了设置动态显存的脚本。请下载 DVMT_and_0xE2_fix 并阅读 README中文版 来设置64mb动态显存。
运行完脚本后,你需要移除动态显存补丁:
- Clover 和 OC 用户都可用:
- 打开
/EFI/CLOVER (或者 OC)/config.plist
删除以下代码:
<key>framebuffer-fbmem</key>
<data>AACQAA==</data>
<key>framebuffer-stolenmem</key>
<data>AAAwAQ==</data>
- 然后修改
framebuffer-flags
来开启FBEnableDynamicCDCLK
并重启
<key>framebuffer-flags</key>
- <data>CwfDAA==</data>
+ <data>CwfjAA==</data>
下面这张表是关于 BIOS 的一些高级配置,感谢 goodyttoor。
项目 | 地址 | 选项 |
---|---|---|
DVMT Pre-Allocated | 0xDF | 0x1: 32M (默认), 0x2: 64M (推荐) |
DVMT Total Gfx Mem | 0xE0 | 0x1: 128M, 0x2: 256M (默认), 0x3: MAX (推荐) |
CFG Lock | 0x3C | 0x0: Disabled (推荐), 0x1: Enabled (默认) |
BIOS Lock | 0x17 | 0x0: Disabled (推荐), 0x1: Enabled (默认) |
然后根据 TM1701 来修改 config.plist
。
下面这张表是关于 BIOS 的一些高级配置,感谢 htmambo。
项目 | 地址 | 配置项 | 选项 | 默认 | 推荐 |
---|---|---|---|---|---|
RTC | 0x54A | SETUP | 0x0:ACPI Time and Alarm Device; 0x1:Legacy RTC | 0x0 | 0x1 |
DVMT | 0x107 | SaSETUP | 0x0:0M, 0x1:32M, 0x2:64M | 0x1 | 0x2 |
DVMT Total Gfx Mem | 0x108 | SaSETUP | 0x1:128M, 0x2:256M, 0x3:Max | 0x3 | 0x3 |
CFG LOCK | 0x3E | CpuSetup | 0x0:Disabled, 0x1:Enabled | 0x1 | 0x0 |
MSR LOCK | 0x2B | SETUP | 0x0:Disabled, 0x1:Enabled | 0x0 | 0x0 |
BIOS Lock | 0x17 | SETUP | 0x0:Disabled, 0x1:Enabled | 0x1 | 0x0 |
修改完配置后,你需要在 config.plist
里删除 framebuffer-stolenmem
:
- 打开
/EFI/CLOVER (或者 OC)/config.plist
,删除以下代码:
<key>framebuffer-stolenmem</key>
<data>AADgAQ==</data>