0. EDK II 빌드 환경 구성
EDK II 를 이용하여 EFI 만들기
EDK2를 설치하고 EFI 모듈을 빌드하는 과정을 서술한다.
앞으로의 실습은 Ubuntu 20.04 환경에서 진행한다.
Linux
Linux상에서 EDK2는 GCC5와 NASM컴파일러 기반으로 빌드한다. GCC4.X대 버전도 아직 지원하기 때문에 GCC5 설치가 필수는 아니지만 여기서는 GCC5를 사용한다.
Ubuntu 20.04 LTS
의존성 패키지 설치
bash$ sudo apt install build-essential uuid-dev iasl git nasm python-is-python3 build-essential- 빌드 패키지 정보 목록uuid-dev- UUID(Universally Unique ID) 라이브러리iasl- Intel ASL 컴파일러/디컴파일러gitnasm- 범용 x86 어셈블러python-is-python3- 우분투 20.04는 python 명령을python3로 쓰지만 edk2는python을 쓴다.
Git을 이용한 edk2 소스 받기
bash$ mkdir ~/src
bash$ cd ~/src
bash$ git clone https://github.com/tianocore/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