7

UEFI开发探索22 – 环境搭建3

 3 years ago
source link: http://yiiyee.cn/blog/2019/06/09/uefi%e5%bc%80%e5%8f%91%e6%8e%a2%e7%b4%a222-%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

UEFI开发探索22 – 环境搭建3

(请保留->发布地址: http://yiiyee.cn/blog/author/luobing/ )

之前搭建UDK2017和UDK2018失败,我只能使用以前的开发环境WinXP+UDK2010来调试程序。总感觉自己像个史前程序员,XP下很多工具都没法使用的。比如我想看某个函数的定义,只能使用TotalCmd全文件夹搜索,感觉很不爽。

今天去公司加班,广州有客人来访。下午送走客人后,我盯着以前写的“搭建环境”的博客,下定决心,一定要用上win10+UDK2018为新的开发环境。

第一步:安装VS2015社区版

下载地址:https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2015-version-history

选择Visual Studio Community 2015 with Update 3的DVD版本下载。

安装的时候把Visual C++全部安装了即可,如图1。

图1 Vs2015 community 安装

第二步:安装NasmPythonOpenSSL

参照网址https://github.com/tianocore/tianocore.github.io/wiki/UDK2018-How-to-Build#how-to-build-windows-system 的说明,把上述软件安装好。为了方便对照,我把自己用下载好的文件上传到百度云上了。

设置好的PATH如图所示。

图2 PATH的设置

需要注意的有几点:

1)      Python安装的时候,全部选上。安装程序会自动添加路径到PATH中的;
2)      Nasm安装的时候选择安装在C盘根目录,Openssl的软件也放在根目录;
3)      openssl-OpenSSL_1_1_0g解压后放在 C:\MyWorkspace\CryptoPkg\Library\OpensslLib下的openssl中,解压UDK2018的时候就有这个文件夹了,开始里面是空的;
4)      最好添加两个系统变量,后面编译的时候要用到,仍旧在高级系统设置-高级-环境变量-系统变量中添加。两个系统变量分别为:NASM_PREFIX=c:\nasm\和PYTHON_HOME=c:\Python27。(20190624 22:45更正:NASM_PREFIX不需要设置,编译环境中如果发现C:\nasm\nasm.exe存在,自动设置。见edksetup.bat)

第三步:编译BaseTools

可以直接下载编译好的BaseTools,我这次是自己编译的,总觉得放心点。百度云上也放了编译好的BaseTools。

编译步骤如下:

1)      打开VS2015 x86 Native Tools Command Prompt,注意千万不要用x64的去编译,会失败的;
2) set PYTHON_HOME=C:\Python27 (之前设置过系统变量的可省略此步骤)
3)      edksetup.bat Rebuild

第四步:编译Nt32Pkg

记着把/Conf/target.txt中的TOOL_CHAIN_TAG改为VS2015x86,后续都是用这个工具链。当然也可以通过参数指定工具链,不过少敲几个字可以节省点时间的。

打开VS2015 x86 Native Tools Command Prompt,进入MyWorkspace目的,运行edksetup.bat,执行build,等待编译完成即可。

第五步:编译AppPkg

我之前的例子都是用AppPkg来进行编译的,所以这个必须编译好。

使用和第四步同样的方法,编译,出错。

图3 编译AppPkg出错

我使用VS2015 x64 Native Tools Command Prompt,仍旧出错。(实际上,即便是x64 efi编译,也只需要用VS2015 x86 Native Tools Command Prompt即可)

幸好这个错误之前就知道,有位技术大牛很热心的分享过这个问题:http://www.lab-z.com/udk2018coming/

图4 修改以通过编译

再次编译,通过了。

把我之前写的代码拷贝过来,修改AppPkg.dsc,添加需要的库以及程序。编译通过。

太开心了!

最开心的是,我终于用上VS code了!也许是之前用惯了VS2015和VS2013,很多快捷键都一样。

我常用的编辑器是Ultraedit和Vim,发现VS code的很多习惯都比较类似。大概花了几分钟就适应了,学习成本基本为零,神器啊。

优点说不完:可以直接跳转到函数的声明了,可以轻松跟踪函数执行步骤了,可以轻松观察函数变量类型……

以后我UEFI的开发环境就决定为Win10+UDK2010+VScode了,辅以TotalCMD管理文件夹,想想都让人激动。

我可以毫不留恋的抛弃Winxp+UDK2010了,那是什么?可以吃吗?

百度云链接:https://pan.baidu.com/s/1gccSosw8_UAGTI5gZPnLCA
提取码:dx23
文件在 X4 UDK2018搭建开发环境 下。


/python-2.7.16.amd64.msi: python2.7的安装包(都9102年了,怎么不用Python3?)
/openssl-OpenSSL-1_1_0g.zip: 拷贝解压到制定的文件夹
/openssl-1.1.0g-win32.zip:解压到C:\Openssl
/nasm-2.12 .01-installer-x64.exe: nasm安装包
/edk2-vUDK2018.zip:UDK2018的开发包
/edk2-BaseTools-win32-master.zip:编译好的BasTools。我比较了一下,和我编译生成的似乎不大一样,有兴趣自己试试吧
/

2,097 total views, 6 views today

210c9a4d410d265665667a36fbe0f529?s=49&d=identicon&r=g作者 罗冰(Robin)发布于 2019年6月9日2019年9月19日分类 BIOS/UEFI

《UEFI开发探索22 – 环境搭建3》有2个想法

  1. d3f5f17037dea9075b4ad61d6db061dd?s=42&d=identicon&r=gtatung1说道:

    意思就是说,直接调用 Python去执行 GenFds.py。因此,可以将\BaseTools\Bin\Win32\GenFds.exe改名为GenFds.LABZ。然后把\BaseTools\BinWrappers\WindowsLike加入Path路径。编译过程中调用 GenFds指令实际执行的是 GenFds.bat。具体修改方法是在 Edksetup.bat 中加入下面的语句

    path c:\nasm;BaseTools\BinWrappers\WindowsLike;%path%
    set PYTHON_HOME=c:\python27;

    請問這兩行是加在edksetup 哪裡啊

    1. 210c9a4d410d265665667a36fbe0f529?s=42&d=identicon&r=g罗冰(Robin)说道:

      我从来不去修改edksetup.bat的,这两行是在设置编译环境前执行的。可以自己写个批处理,也可以系统变量中设置。可以参考博客的62篇,可能更容易看懂些。

发表评论 取消回复

电子邮件地址不会被公开。

评论

姓名

电子邮件

站点


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK