老主板启用Above 4G Decoding
前言
前几天电脑CPU寄了,换了个CPU,BIOS也重置了,要重新配置一下相关选项。
而我BIOS中又没有Above 4G Decoding
选项 (当然实际上是支持的, 没有显示这个功能开关)
提取固件
先使用 AFUWIN 提取出 BIOS 固件。
勾选主BIOS image,点储存。
定位配置项
下载 UEFITool,打开固件。
选择 Action->Search... 或者按 Ctrl+F 打开搜索,点Text选择文本搜索。
搜索 4G Decod
和 Above 4G
依次双击底部的搜索结果,可以定位到PE32 image section
,点击右键Extract body...
导出到文件。
双击搜索结果后注意观察,多个结果可能在同一个位置,不需要重复导出
下载ifrextractor,解压出exe文件。
依次把刚才导出的文件直接拖到ifrextractor.exe
上,即可处理得到对应的txt文件。
依次打开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
显示 offset 0x7af is: 0x00
表示这一项未启用
我如果要修改这一项为 Enable,可以使用
setup_var 0x7AF 0x1
注意:偏移值和要写入的值应为十六进制
启用后使用 reboot
命令重启。
参考与鸣谢
https://www.bilibili.com/opus/743982326937026580