第二章 UEFI 开发环境搭建

作者:Maxwell Li
日期:2017/12/05
未经作者允许,禁止转载本文任何内容。如需转载请留言。


最近在学习 UEFI,正好手头有一台阿里云主机,Ubuntu 16.04 系统,就拿来搭建开发环境了。
项目wiki:EDK-II

创建目录并获取源码

$ mkdir ~/src
$ cd ~/src
$ git clone https://github.com/tianocore/edk2

编译基础工具

$ make -C edk2/BaseTools

在编译的时候报错,部分错误如下:

GenSec.c:1354:21: error: pointer targets in passing argument 1 of ‘strcasecmp’ differ in signedness [-Werror=pointer-sign]
         if (stricmp(DummyFileBuffer, InFileBuffer + (InFileSize - DummyFileSize)) == 0){
                     ^
In file included from GenSec.c:17:0:
/usr/include/string.h:529:12: note: expected ‘const char *’ but argument is of type ‘UINT8 * {aka unsigned char *}’
 extern int strcasecmp (const char *__s1, const char *__s2)
            ^
GenSec.c:1354:38: error: pointer targets in passing argument 2 of ‘strcasecmp’ differ in signedness [-Werror=pointer-sign]
         if (stricmp(DummyFileBuffer, InFileBuffer + (InFileSize - DummyFileSize)) == 0){
                                      ^
In file included from GenSec.c:17:0:
/usr/include/string.h:529:12: note: expected ‘const char *’ but argument is of type ‘UINT8 * {aka unsigned char *}’
 extern int strcasecmp (const char *__s1, const char *__s2)
            ^
cc1: all warnings being treated as errors

我没有管他,继续下一步(其实是因为看不懂,有没有大神帮忙解释一下)。

设置基础环境

cd ~/src/edk2
export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools
. edksetup.sh BaseTools

edksetup.sh 执行完毕后,会在 Conf 目录下产生几个默认配置文件。

修改配置文件

打开 Conf/target.txt 文件,更改以下两行:

ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc
TOOL_CHAIN_TAG        = MYTOOLS

改为

ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
TOOL_CHAIN_TAG        = GCC5

如果 gcc 版本是4.6,则填 GCC46,如果 gcc 版本是4.5,则填 GCC45。

构建

$ build
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作者:Maxwell Li日期:2017/12/05未经作者允许,禁止转载本文任何内容。如需转载请留言。 [TOC...
    Maxwell_Li阅读 7,307评论 0 1
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 13,100评论 2 33
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,188评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,421评论 19 139
  • 星期天的早晨 天露白,看得见行走的路 刺不到不想睁大的眼睛 刚刚好 来到咖啡店 音乐不太吵,足以让我醒脑 刚刚好 ...
    舒己怀_Frank阅读 362评论 8 23

友情链接更多精彩内容