开发环境搭建
1. 安装VS2013
2.下载工具Python2.7 IASL NASM解压默认都放到C盘根目录
Python2.7 https://www.python.org/downloads/release/python-2716/.
IASL https://acpica.org/downloads/binary-tools
NASM https://www.nasm.us/
在用户变量里面添加PYTHON_HOME=C:\Python27的环境变量
(注意NASM_PREFIX可不设置,若设置必须保证正确)
在系统变量的path里面添加C:\Python27 和 C:\nasm两个项
3. 下载edk2-vUDK2018.zip源码
UDK2018:https://github.com/tianocore/edk2
4. 下载qemu虚拟机
编译
打开VS2013命令行工具:
执行命令
edksetup.bat
!!! WARNING !!! No CYGWIN_HOME set, gcc build may not be used !!!提示不需要处理
edksetup.bat rebuild
edksetup.bat --nt32
build -a IA32 -p Nt32Pkg\Nt32Pkg.dsc -t VS2013 编译32位版本
编译出错:
'C:\nasmnasm' 不是内部或外部命令,也不是可运行的程序或批处理文件
NMAKE : fatal error U1077: “"C:\nasmnasm”: 返回代码“0x1”Stop.
这是因为设置的NASM_PREFIX环境变量不正确造成的,要在变量后面加上反斜杠或者删除这个变量(注意此时需要删除掉源码然后重新解压出工程),然后重新打开控制台终端.
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
NMAKE : fatal error U1077: “"C:\Program Files\Windows Kits\8.0\bin\x86\\rc.exe”: 返回代码“0x1”Stop.
这是因为VS2013版本问题,没有找到rc.exe命令,查看一下C:\Program Files目录没有找到Windows Kits文件夹。
解决办法是将C:\Program Files (x86)文件夹下的Windows Kits目录拷贝到C:\Program Files文件夹下,进入Windows Kits目录,删除8.0目录,将8.1改为8.0
运行build -a X64 -p Nt32Pkg\Nt32Pkg.dsc -t VS2013 编译64位版本
清除编译build clean -t VS2013
启动模拟器
build run -t VS2013
使用qemu模拟器启动:
编译OVMF版本的固件
build -a X64 -p OvmfPkg\OvmfPkgX64.dsc -t VS2013 -b RELEASE
build -a X64 -p OvmfPkg\OvmfPkgX64.dsc -t VS2013 -D DEBUG_ON_SERIAL_PORT
安装qemu虚拟机,执行命令:
qemu-system-x86_64 -bios OVMF.fd -serial stdio