老主板启用Above 4G Decoding

前言

前几天电脑CPU寄了,换了个CPU,BIOS也重置了,要重新配置一下相关选项。

而我BIOS中又没有Above 4G Decoding选项 (当然实际上是支持的, 没有显示这个功能开关)

提取固件

先使用 AFUWIN 提取出 BIOS 固件。

勾选主BIOS image,点储存

2024-11-21T06:53:14.webp

定位配置项

下载 UEFITool,打开固件。

选择 Action->Search... 或者按 Ctrl+F 打开搜索,点Text选择文本搜索。

2024-11-21T07:14:47.webp

搜索 4G DecodAbove 4G

2024-11-21T07:14:02.webp

依次双击底部的搜索结果,可以定位到PE32 image section,点击右键Extract body...导出到文件。

双击搜索结果后注意观察,多个结果可能在同一个位置,不需要重复导出

下载ifrextractor,解压出exe文件。

依次把刚才导出的文件直接拖到ifrextractor.exe上,即可处理得到对应的txt文件。

2024-11-21T07:35:12.webp

依次打开txt文件,搜索4G,记录下有关的项目。

OneOf Prompt: "Memory Remap", Help: "Enable/Disable Memory Remap above 4GB", QuestionFlags: 0x10, QuestionId: 0x4B5, VarStoreId: 0x1, VarOffset: 0x869, Flags: 0x10, Size: 8, Min: 0x0, Max: 0x1, Step: 0x0
    OneOfOption Option: "Enabled" Value: 1, Default, MfgDefault
    OneOfOption Option: "Disabled" Value: 0
End 


OneOf Prompt: "Above 4GB MMIO BIOS assignment", Help: "Enable/Disable above 4GB MemoryMappedIO BIOS assignment
This is disabled automatically when Aperture Size is set to 2048MB.", QuestionFlags: 0x10, QuestionId: 0x4C7, VarStoreId: 0x1, VarOffset: 0x7AF, Flags: 0x10, Size: 8, Min: 0x0, Max: 0x1, Step: 0x0
    OneOfOption Option: "Enabled" Value: 1
    OneOfOption Option: "Disabled" Value: 0, Default, MfgDefault
End 

选项名称可能不同,我这里是Above 4GB MMIO BIOS assignment,以你的主板实际情况为准

修改设置

下载modGRUBShell.efi,找一个FAT32格式的U盘,把文件改名为bootx64.efi放到EFI\BOOT目录。

然后重启电脑,开机时选择U盘UEFI启动。

使用以下命令可以直接修改 BIOS 配置

setup_var <偏移量> [要写入的值]

例如我要操作 Above 4GB MMIO BIOS assignment 这一项,先查看刚才保存的项目,VarOffset: 0x7AF 表示这个值存储在 0x7AF 位置,"Enabled" Value: 1 表示启用这一项值为 1

那么我要查看当前存储的值,可以使用以下命令

setup_var 0x7AF

WIN_20241121_16_28_21_Pro.webp

显示 offset 0x7af is: 0x00 表示这一项未启用

我如果要修改这一项为 Enable,可以使用

setup_var 0x7AF 0x1

WIN_20241121_16_28_28_Pro.webp

注意:偏移值和要写入的值应为十六进制

启用后使用 reboot 命令重启。

参考与鸣谢

https://www.bilibili.com/opus/743982326937026580

本文链接:

https://blog.nkxingxh.top/archives/500/
1 + 5 =
快来做第一个评论的人吧~