安装开发工具 安装VS2015参考书籍:UEFI编程实践
- 默认安装路径;
- 选择功能:选择Visual C++
- 安装时间大约一小时(出现如下报错只因我断网安装)
- 打开python-2.7.15.msi安装文件,点击Next;
- 找到Add python.exe to path 点击前面的×,选择Will be installed on local hard drive
- 点击Advanced 勾选Compile .py files byte code after installation
- 继续安装,直到完成
下载完成之后,解压 并 改名 至
C:nasmIASL
下载完成之后,解压 并 改名 至:
C:ASL环境变量
系统变量 -> Path 下添加:
C:Python27 C:ASL C:nasm
系统变量 下新建:
PYTHON_HOME=C:Python27EDKII
在C盘根目录下面新建目录:C:UEFI,进入此目录,右键 “GIT Bash Here”,执行如下指令下载EDKII:
git clone https://github.com/tianocore/edk2.git git clone https://github.com/tianocore/edk2-libc.git
(下载可能会失败,多试几次,或者开启VPN下载)
完成之后会在C:UEFI目录下面生成 edk2 和 edk2-libc
GIT Bash进入C:UEFIedk2 目录,执行如下指令:
git submodule update --init
执行完这次操作之后,以后更新submodule时,就不用添加–init,直接执行 git submodule update 。
(下载可能会失败,多试几次,或者开启VPN下载;submodule的控制文件位于edk2.gitmodules)
-
进入windows开始菜单,找到 VS2015 工具中的:VS2015 x86 本机工具命令指示符
-
进入C:UEFIedk2 目录,执行如下指令:
edksetup.bat Rebuild
3. 编译好的工具在:C:UEFIedk2BaseTools
为方便后续开发,设置如下脚本 以配置环境变量,内容如下:
C:UEFImybuild.bat
set WORKSPACE=%CD% set EDK_TOOLS_PATH=%CD%edk2BaseTools set CONF_PATH=%CD%edk2conf set PACKAGES_PATH=%CD%edk2;%CD%edk2-libc设置EDKII配置文件:
配置文件位于:C:UEFIedk2Conf,分别是 target.txt 和 tools_def.txt
- C:UEFIedk2Conftarget.txt (确保TOOL_CHAIN_TAG正确)
ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc TARGET = DEBUG TARGET_ARCH = IA32 TOOL_CHAIN_CONF = Conf/tools_def.txt **TOOL_CHAIN_TAG = VS2015x86**
- C:UEFIedk2Conftools_def.txt
主要确定工具路径,如果使用默认路径安装VS2015则不用更改路径(如果安装的其他版本,则确认对应版本的路径)
(前面环境配置完之后,以后重新运行edk2只用运行以下指令,不用重复执行上面步骤)
编译前准备:C:UEFI,执行如下指令:
mybuild.bat edk2edksetup.bat编译环境已准备,输入指令编译模块:
c:UEFI>build -p ***模块路径*** -t VS2015x86 -a IA32 example1:编译 EmulatorPkg 模块(edk2EmulatorPkgEmulatorPkg.dsc): build -p edk2EmulatorPkgEmulatorPkg.dsc -t VS2015x86 -a IA32 example2:编译 Hello.inf 包(AppPkgApplicationsHelloHello.inf) build -p edk2-libcAppPkgAppPkg.dsc -a X64 -m edk2-libcAppPkgApplicationsHelloHello.inf -b DEBUGBUILD 常用参数 模拟器运行 .efi 文件 编译EmulatorPkg 模块-模拟器模块:
edk2EmulatorPkgEmulatorPkg.dsc运行模拟器:
C:UEFIBuildEmulatorIA32DEBUG_VS2015x86IA32WinHost.exe
将 .efi 程序 放到 WinHost.exe 目录,进入 shell 之后即可在当前目录找到 .efi 程序



