1.主要资料还是从EDK2源码 以及 uefi原理与编程
首先,通过在OvmfPkg/OvmfPkgX64.dsc里寻找,可以找到Ovmf用的菜单显示是MdeModulePkg/Application/UiApp/UiApp.inf。在MdeModulePkg/Application/UiApp下有FrontPageStrings.uni文件定义了用到的字符串资源。
第一步,在select Language菜单里加入中文选择。这一步是在rontPageCustomizedUiSupport.c里的UiCreateLanguageMenu函数
| 278 // Get Support language list from variable.
| 279 //
| 280 GetEfiGlobalVariable2 (L"PlatformLangCodes", (VOID**)&gLanguageString, NULL);
|- 281 if (gLanguageString == NULL) {
|| 282 gLanguageString = AllocateCopyPool (
|| 283 AsciiStrSize ((CHAR8 *) PcdGetPtr || (PcdUefiVariableDefaultPlatformLangCodes)),
|| 284 (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLangCodes)
|| 285 );
|| 286 ASSERT (gLanguageString != NULL);
|| 287 }
<

本文研究了如何在OVMF BIOS中实现中文显示。通过分析EDK2源码和UEFI编程,发现在OvmfPkg/OvmfPkgX64.dsc配置文件中引用了MdeModulePkg/Application/UiApp下的资源。要添加中文支持,需要在UiCreateLanguageMenu函数中更新语言列表,并在MdePkg/MdePkg.dec中插入相应的中文选项。然而,目前尚不支持中文字库,需后续解决。
最低0.47元/天 解锁文章
1030

被折叠的 条评论
为什么被折叠?



