请保留-> 【原文: https://blog.csdn.net/luobing4365 和 http://yiiyee.cn/blog/author/luobing/】
最近一段时间,很多网友问的问题都是和网络相关的。讨论的问题大部分是关于网络环境的搭建,有些现象我也没有遇到过。
在UEFI开发探索49中,介绍过在Nt32模拟器和真实环境中搭建UEFI网络环境。当时我使用的EDK2是UDK2018的版本。
随着EDK2版本的升级,原有的NT32模拟器(使用Nt32Pkg编译)已经取消了,随之替代的是EmulatorPkg。后者提供的功能更为全面,提供了32位和64位的模拟器,之前的博客中也曾经介绍过。
因此,本篇准备用EmulatorPkg编译的模拟器重新搭建网络测试环境。之前的模拟器使用Nt32Pkg编译,所以我取名为Nt32模拟器;现在的EmulatorPkg名字太长了,为方便行文,称之为EDK2模拟器了。
1 搭建EDK2开发环境
详细的搭建过程,可以参考UEFI开发探索22和57,这里简单描述本次的搭建过程。步骤如下:
1)工具安装
安装必要的开发工具,包括Visual Studio、Python、ASL和Nasm;
2)下载代码库
使用Git将EDK2的代码和StdLib的代码下载到本地。
在C盘新建目录edk202011,使用如下命令下载:
robin@robin-PC MINGW64 /c/edk202011
$ git clone --branch stable/202011 https://gitee.com/luobing4365/edk2.git
$ git clone https://gitee.com/luobing4365/edk2-libc.git
请注意,这里下载的地址是我的私有仓库,我把github上的edk2和edk2-libc的仓库同步到我在gitee上的仓库中了,方便自己下载。
不要按照我给的命令去下载,原始的仓库为https://github.com/tianocore/edk2.git 和https://github.com/tianocore/edk2-libc.git,可以使用如下命令去下载:
$ git clone --branch stable/202011 https://github.com/tianocore/edk2.git
$ git clone https://github.com/tianocore/edk2-libc.git
当然,取决于你所在地方的网速,下载速度会很慢。建议使用同样的方法,将github上的仓库同步到gitee上,或者直接在gitee上找到同样的仓库再下载。
本篇使用的分支为stable/202011,后续的实验结果均是基于此版本得出的。
3)更新子模块
修改edk2中的.gitmodules,更子模块。
如果能使用github直接下载,可以不用修改.gitmodules,直接运行后续的更新命令就可以了。我修改的内容如下:
[submodule "CryptoPkg/Library/OpensslLib/openssl"]
path = CryptoPkg/Library/OpensslLib/openssl
url = https://gitee.com/luobing4365/openssl.git
[submodule "SoftFloat"]
path = ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
url = https://gitee.com/luobing4365/berkeley-softfloat-3.git
[submodule "UnitTestFrameworkPkg/Library/CmockaLib/cmocka"]
path = UnitTestFrameworkPkg/Library/CmockaLib/cmocka
url = https://gitee.com/luobing4365/cmocka.git
[submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"]
path = MdeModulePkg/Universal/RegularExpressionDxe/oniguruma
url = https://gitee.com/luobing4365/oniguruma.git
[submodule "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli"]
path = MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
url = https://gitee.com/luobing4365/brotli.git
[submodule "BaseTools/Source/C/BrotliCompress/brotli"]
path = BaseTools/Source/C/BrotliCompress/brotli
url = https://gitee.com/luobing4365/brotli.git
ignore = untracked
再次提醒,上述的子模块给出的地址,均是我将子模块在github上的仓库,导到gitee上的地址。可以参考我的方法,但是不要直接使用,这些都是我的私有地址,没法直接用。
具体的导入方法,可以参考UEFI开发探索57的内容。
继续阅读“UEFI开发探索97 – EDK2模拟器搭建网络环境” 3,038 total views, 1 views today