0. EDK II 빌드 환경 구성
EDK II 를 이용하여 EFI 만들기
EDK2를 설치하고 EFI 모듈을 빌드하는 과정을 서술한다.
앞으로의 실습은 Ubuntu 20.04 환경에서 진행한다.
Linux
Linux상에서 EDK2는 GCC5와 NASM컴파일러 기반으로 빌드한다. GCC4.X대 버전도 아직 지원하기 때문에 GCC5 설치가 필수는 아니지만 여기서는 GCC5를 사용한다.
Ubuntu 20.04 LTS
의존성 패키지 설치
build-essential
- 빌드 패키지 정보 목록uuid-dev
- UUID(Universally Unique ID) 라이브러리iasl
- Intel ASL 컴파일러/디컴파일러git
nasm
- 범용 x86 어셈블러python-is-python3
- 우분투 20.04는 python 명령을python3
로 쓰지만 edk2는python
을 쓴다.
Git을 이용한 edk2 소스 받기
서브 모듈 받기
빌드 툴 컴파일하기
위 작업까지 완료하면 edk2 디렉토리를 개발하는데 활용할 수 있다.
EDK2 BaseTools 빌드
빌드 쉘 환경 설정
Conf 파일 수정
위의 edksetup.sh
을 실행하면 edk2/Conf
디렉토리가 설정 파일들로 채워진다. 빌드 플랫폼, 대상 아키텍처, 다중 스레딩 옵션 등을 설정하려면 Conf/target.txt
파일을 편집해야한다. 아래 예제는 GCC5를 사용하여 MdeModulePkg를 빌드하는 것이다.
빌드 대상 정보 설정
Conf/target.txt를 텍스트 편집기로 연다.(ex: vi)
그리고 위의 행을 찾아 아래와 같이 변경한다.
위의 TARGET_ARCH
를 변경하면 최종 UEFI 바이너리에 아키텍처가 반영된다.
Hello World빌드하기(MdeModulePkg 전체)
위의 과정을 모두 따라했다면 빌드 명령을 통해 MdeModulePkg
를 컴파일 할 수 있다.
빌드가 완료되었다면 결과에 HelloWorld.efi가 포함되어 있을 것이다.
Ubuntu 16.04, 18.04
의존성 패키지 설치
EDK2 Stable 버전 받기
서브모듈 받기
빌드 툴 컴파일
빌드 쉘 환경 설정
Conf 파일 설정
빌드
Window
추후 추가 예정
Mac OS
추후 추가 예정
Last updated