UEFI开发探索03 – 环境搭建2

(请保留-> 作者: 罗冰   https://blog.csdn.net/luobing4365)

从上次写完博客,过去了一个多月。中间到深圳出差,解决一个硬盘加密的项目,时间就这么过去了。等回过神来,发现写博客的计划又往后拖了。

下定决心,我想在这周搞定编译环境。

以前我是在XP下,使用UDK2010来编译的,比如这个:

图1 VS2008+UDK2010开发的uefi application

我原本的计划是用Ubuntu 16来搭建环境。最近正习惯在上面用vim和vscode编程,戒掉用了多年的UE和sublime。尝试了一天,总是遇到各种问题,特别是到现在也没有也没搞明白,GCC在安装过程中不知怎么变为了7.x。

这么下去,这周的计划又完成不了。我回到了用windows安装的老路,预备安装UDK2018。

还是折腾了一天,搞定了。把安装步骤和中途遇到的问题记录下来吧。

这是参考用的几个网址:

https://github.com/tianocore/edk2/releases

https://github.com/tianocore/tianocore.github.io/wiki/UDK2018-How-to-Build#how-to-build-windows-system

先吐槽一下,文档写得并不友好,我的时间全花在了编译Base Toosls上。实际上可以不用自己去编译Base Tools,直接下载就可以了。地址如下:

https://github.com/tianocore/edk2-BaseTools-win32

我是在读UDK2017的文档UDK2017 How to Build时发现的。

安装步骤(Win10下安装):

1. 安装 VS2015。我安装了图中所示的项,Python Tools for Visual Studio我觉得应该是不需要的,当时顺手选上了。

图2 VS2015的安装

2. 安装Python 2.7.16,同时选择将Python加入Path(安装的时候需要选择);

3. 安装Nasm 2.12.01,注意选择安装路径为C:\Nasm。在我的电脑-属性-高级系统设置-高级-环境变量…-系统变量-Path中添加此路径;

4. 安装Openssl工具和ASL工具(应该不需要,这是用来生成Base Tools用的);

5. 解压edk2-vUDK2018.zip到C:\MyWorkspace;

6. 添加系统变量PYTHON_HOME=c:\Python27;(补充一句,添加编译工具路径以及系统变量,可以在edksetup.bat中添加,比如:
Path = c:\nasm;%path%
Set PYTHON_HOME=c:\python27
这样就不需要像步骤3和6一样操作了,对我这种强迫症比较合适);

7. 打开“VS2015 x64 Native Tools Command Prompt”,运行edksetup.bat –nt32,会生成/Conf下所需的一些文件; 8. 执行build -p NT32Pkg\Nt32Pkg.dsc -a IA32 -t VS2015x86 run,启动SecMain.exe。

8. 执行build -p NT32Pkg\Nt32Pkg.dsc -a IA32 -t VS2015x86 run,启动SecMain.exe。

图3 UDK2018的模拟器

我的安装过程并不顺利,遇到了两个问题,记录如下:

问题1:python编译中找不到cxFreeze的module,无法通过编译。

解决:cmd打开,输入pip install cx_freeze。(注意Path中要包含Python的路径,否则无法执行)。

问题2:提示 File “GenFds\GenFds.py”, line 24, in <module>
ValueError: Attempted relative import in non-package

解决:将路径BaseTools\Bin\Win32下GenFds.exe更名为GenFds.LABZ,并将BaseTools\BinWrappers\WindowsLike;添加到Path路径中。
(此问题的解决参照http://www.lab-z.com/udk2018coming/https://github.com/tzz1996/Blog/blob/master/compile_udk2018_in_windows.md,感谢!)

至此,终于可以继续探索UEFI了。明天开始将之前写过的例子一个个编译运行,加深理解。至于Ubuntu的开发环境,找时间再做吧。毕竟ubuntu更轻量级点,windows上光VS2015就占了12G。我都是在虚拟机下开发,这么多开发环境,空间严重不足了。

(20190512 20:40 Robin: Nt32Pkg是可以编译,可是AppPkg没有编译成功,目前没有找到原因,编译的问题在 UEFI开发探索05中列出,后面找时间再解决。暂时还是以我之前的UDK2010来编译吧)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luobing4365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值