所有命令行操作都在CMD內執行
CMD->Developer Command Prompt for VS 2019
(vs自帶的命令行環境,也可以直接CMD執行
C:\"Program Files (x86)"\"Microsoft Visual Studio"\2019\Community\Common7\Tools\VsDevCmd.bat)
0. 軟件安裝/配置環境
VS2019 C++(官網)
python 3.8(官網)
NASM http://www.nasm.us/(隨便找個地方解壓)
ASL https://acpica.org/downloads/binary-tools(必須解壓到C:\ASL,否則找不到)
1. clone edk2
找個地方建立一個工作目錄叫EFIwork然後cd進去(VsDevCmd裏面先打盤符如E:才能在這個盤裏cd)
E:
cd E:\EFIwork
git clone https://github.com/tianocore/edk2.git edk2
cd edk2
git submodule update --init
cd ..
1
2
3
4
5
6
如果要更新的話
cd edk2
git pull
git submodule update
1
2
3
2. 編譯edk2的win32生成工具
//////////////////////下面是要用到的環境變量,所以每次重開命令行都要執行一遍
set NASM_PREFIX= D:\Libs\nasm\
set IASL_PREFIX = D:\Libs\iasl\ #貌似這個用不到
set WORKSPACE = E:\EFIwork\edk2\
set PACKAGES_PATH = E:\EFIwork\edk2\
set PYTHON_HOME = C:\Users\11033\AppData\Local\Programs\Python\Python38-32\
1
2
3
4
5
////////////edksetup.bat配置了很多環境變量,每次用edk2都要執行,第一次會生成Conf目錄下的配置文件,也可用edksetup.bat Reconfig重新生成
cd E:\EFIwork\edk2
edksetup.bat
1
2
////////////生成生成工具
edksetup.bat Rebuild
3. 編譯EmulatorPkg(模擬器)
notepad Conf/target.txt # 裏面是給build命令用的生成參數,我修改
TOOL_CHAIN_TAG = VS2019
TARGET_ARCH = X64
TARGET = RELEASE
ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc
1
2
3
4
然後
build -D ADD_SHELL_STRING
完成後運行E:\EFIwork\edk2\Build\EmulatorX64\RELEASE_VS2019\X64\WinHost.exe
輸入Reset回車退出
4. 編譯OvmfPkg
notepad Conf/target.txt
或者直接
build -p OvmfPkg/OvmfPkgX64.dsc