作为新的学习,上手之后第一件事是想来个helloworld。记录一下整个过程吧。
开发环境:Ubuntu18.04虚拟机 + EDK2/OVMF + Qemu
1.第一步是OVMF的编译,以及Qemu的安装,这个之前也提过了,不再叙述
2.第二步,自定义一个hello world的shell app:
2.1 在edk2主目录下新建uefi/melo目录
2.2 进入melo目录,新建资源文件main.c以及工程文件Melo.inf
2.3 main.c:
#include <Uefi.h>
EFI_STATUS
EFIAPI Melo
(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE * SystemTable)
{
SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Hello World!! I'm melo**********\n");
return EFI_SUCCESS;
}
2.4 Melo.inf:
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = Melo
FILE_GUID = 9023AB23-ED34-ffdb-AE97-1FA5E4ED2117
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = Melo
#
# The following information

本文记录了一位新手在Ubuntu18.04环境下使用EDK2/OVMF和Qemu实现BIOS HelloWorld应用的过程。首先编译OVMF和安装Qemu,然后创建UEFI shell app,编写main.c和Melo.inf文件,通过修改OvmfPkg配置并编译生成melo.efi。在实现过程中,注意返回值需加EFIAPI修饰符以避免错误。最后,通过挂载虚拟硬盘和调整BIOS启动参数,成功显示Hello World。


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



