1. 간단한 EFI application 만들기

앞서 빌드된 환경에서 샘플 애플리케이션 제작을 위한 폴더를 생성한다.

$ mkdir SimplestApp

이후 생성할 애플리케이션의 코드를 아래와 같이 생성한다.

$ vi SimplestApp/SimplestApp.c
-----
EFI_STATUS
EFIAPI
UefiMain (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{
  return EFI_SUCCESS;
}

생성한 애플리케이션의 설정을 지정하기 위해 *.inf 파일을 작성한다. https://edk2-docs.gitbook.io/edk-ii-inf-specification/3_edk_ii_inf_file_format

$ vi SimplestApp/SimplestApp.inf
-----
[Defines]
  INF_VERSION                    = 1.25
  BASE_NAME                      = SimplestApp
  FILE_GUID                      = 4a298956-fbe0-47fb-ae3a-2d5a0a959a26
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UefiMain

[Sources]
  SimplestApp.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiApplicationEntryPoint

작성한 섹션별 주요 정보는 다음과 같다. https://edk2-docs.gitbook.io/edk-ii-inf-specification/3_edk_ii_inf_file_format/34_-defines-_section

  • Defines

  • Sources: 포함하는 소스 코드 정보를 명시한다.

  • Packages: 포함하는 패키지 정보를 명시한다.

  • LibraryClasses

작성한 애플리케이션을 빌드하기 위해서는 특정 패키지에 포함되어야 한다.

작성한 샘플 애플리케이션은 OvmfPkg에 포함되어 있으므로 아래와 같은 명령어를 통해 빌드한다.

빌드 되어진 샘플 애플리케이션을 실행하기 위해서 해당 애플리케이션을 포함하여 QEMU를 실행한다.

QEMU 환경에서 생성한 애플리케이션을 실행한다.

Last updated