EDKII环境搭建过程
准备环境:
sudo apt install git
sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm python3-distutil
sudo apt install qemu
git clone https://github.com/tianocore/edk2
搭建:
cd ~/edk2
make -C edk2/BaseTools
export EDK_TOOLS_PATH=~/Documents/edk2/BaseTools //这个环境变量必须配
. edksetup.sh BaseTools
编译环境:
文件位于edk2的Conf目录下:
Conf/target.txt 和 Conf/tools_def.txt
nano Conf/target.txt
修改:
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc TOOL_CHAIN_TAG = GCC5
创建项目:
在edk2目录下:
mkdir MyHelloWorld
cd MyHelloWorld
touch MyHelloWorld.c
touch MyHelloWorld.inf
添加MyHelloWorld.inf
到MdeModulePkg/MdeModulePkg.dsc中
MyHelloWorld/MyHelloWorld.inf
测试环境搭建:
这里需要编译EFI的openssl,但是默认克隆的不带openssl
(efi的openssl和linux用的不一样,不要去clone通用openssl)
所以还得git clone --recursive https://github.com/tianocore/edk2
克隆好了以后:
./OvmfPkg/build.sh
完成以后在
build目录下会生成OVMF.fd
测试:
qemu-system-x86_64 -L . --bios OVMF.fd -hda fat:efi -net none