2. 간단한 Pkg 만들기

이번에는 앞서 만들었던 애플리케이션을 다른 패키지에 포함하여 빌드하자.

먼저 OvmfPkg/OvmfPkgX64.dsc 에서 SimplestApp.inf를 제외시킨다.

$ vi OvmfPkg/OvmfPkgX64.dsc
-----
 [Components]
-  SimplestApp/SimplestApp.inf
   OvmfPkg/ResetVector/ResetVector.inf

이후 임의의 패키지를 생성하기 위해 폴더 및 구성 파일을 생성한다.

$ mkdir UefiLessonsPkg
$ mv SimplestApp UefiLessonsPkg/SimplestApp
$ vi UefiLessonsPkg/UefiLessonsPkg.dsc
-----
[Defines]
  DSC_SPECIFICATION              = 0x0001001C
  PLATFORM_GUID                  = 3db7270f-ffac-4139-90a4-0ae68f3f8167
  PLATFORM_VERSION               = 0.01
  PLATFORM_NAME                  = UefiLessonsPkg
  SKUID_IDENTIFIER               = DEFAULT
  SUPPORTED_ARCHITECTURES        = X64
  BUILD_TARGETS                  = RELEASE

[Components]
  UefiLessonsPkg/SimplestApp/SimplestApp.inf

위 패키지 구성 파일의 세부 정보는 아래 UEFI 스펙 링크를 참조하자. https://edk2-docs.gitbook.io/edk-ii-dsc-specification/

파일 생성 이후 플랫폼 정보를 다음과 같이 변경하고 빌드를 진행하자.

그럼 다음과 같은 오류가 발생하는 것이 일반적이다.

LibraryClass는 여러 인스턴스 및 라이브러리를 가질 수 있기 때문에 모두 지정해줄 필요가 있다. 따라서 다음과 같은 명령어를 이용하여 포함되어야 할 구성 정보들을 포함해주어야 한다.

필요 라이브러리를 모두 포함한 *.dsc 파일 정보는 아래와 같다.

이후 빌드 과정을 통하여 다른 패키지에 포함시킨 애플리케이션이 정상 동작하는지 확인한다.

Last updated