博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux开发环境[2.2]
阅读量:5228 次
发布时间:2019-06-14

本文共 7958 字,大约阅读时间需要 26 分钟。

Setting up a  build environment on Windows and Linux:搭建WindowsLinux开发环境[2.2]

2015-0  北京海淀区  张俊浩 

2. Setting Up EDKII Development EnvironmentEDKII开发环境的搭建)

      ->2.1The General Procedure Of Setting Up EDKII Development Environment(搭建EDKII项目的通用流程)

      ->2.2 Setting up a  build environment on Windows and Linux(搭建WindowsLinux开发环境)

            ->2.2.1 Setting up a  build environment on Windows

                  ->2.2.1.1 Get the EDKII Source EDKII源代码获取(下载)。

                  ->2.2.1.2 Install some third-party tools to build EDKII.对应开发工具链的下载。

            ->2.2.2 Setting up a  build environment on Linux

                  ->2.2.2.1 Get the EDKII Source EDKII源代码获取(下载)。

                  ->2.2.2.2 Install some third-party tools to build EDKII.对应开发工具链的下载。

      ->2.3 ToolsInstalling and using the Required Tools for downloading and Building .

            ->2.3.1 Download and Install TortoiseSVN to obtain the EDK II(下载/安装/使用TortoiseSVN工具)

 

发现不管照《EDKII_UserManual_0_7》手冊(或者说官网上>Getting Started with EDK II->),还是戴正华《UEFI原理与编程》都不能较为顺利的搭建LinuxWindows开发环境。

原因有两个:(1)一些工具源的下载路径随着时间的推移发生了变化(通过文档/书籍上的路径检索不到资源)2)对project源代码管理工具、编译工具的安装、使用不熟悉(而文档/书籍里面默认是不做详细介绍的)。

但了解EDKII开发环境搭建的一般框架和流程(上一篇博客:The General Procedure Of Setting Up EDKII Development Environment搭建EDKII项目的通用流程[2.1]),再加上參考官网上>Getting Started with EDK II->->/的步骤引导,我们应该能够较为顺利的搭建EDKIIWindowsLinux开发环境。

不管是我们获取源代码,还是编译EDKII项目源代码。都须要第三方工具Third-Party Tools. (Getting and Installing the Required Tools for downloading and Building .)參照TianoCore官网上(->Getting Started with EDK II->Tools->来下载安装第三方工具Third-Party Tools

依据TianoCore官网上,对开发工具链的要求,-> -> Getting Started with EDK II->Tools ->  ->Install some external tools->Third Party Tools:要求我们须要第三方工具包含:c预处理器、c编译器、静态链接器、动态连接器、汇编器、汇编连接器、ACPI汇编器。(3rdParty Tools must include: a C pre-processor, C compiler, static linker, dynamic linker, and an assembler and assembly linker. For creating ACPI tables required by platforms, an ACPI assembler is also required.

 

2.2.1 Setting up a  build environment on Windows(搭建Windows EDKII开发环境)

2.2.1.1 Get the EDKII Source EDKII源代码获取(下载)。

Windows平台下我们一般使用subversion来管控项目源代码版本号,通过SVNsubversion)下载上传源代码。所以我们想获取源代码。首先须要下载、安装SVN软件,然后通过SVN获取SVN代理server上的EDKII源代码,具体具体过程參看下一篇博文《ToolsInstalling and using the Required Tools for downloading and Building 工具篇:安装/使用EDKII源代码获取/编译工具[2.3]

 2.2.1.2 Install some third-party tools to build EDKII.对应开发工具链的下载。

依据TianoCore官网上。对开发工具链的要求,-> -> Getting Started with EDK II->Tools ->  ->Install some external tools->Third Party Tools:要安装下面当中(表格因为篇幅原因有删减)至少一个编译工具链(At least one of the following 3rd party compiler tool chain is required),在Windows平台下我们通常採用的集成开发环境Microsoft Visual Studio

 

Name

Version

URL

Microsoft Visual Studio

2005 Professional

Microsoft Visual Studio

2005 Team Suite

Microsoft Visual Studio

2003 .NET

Intel C++ Compiler for Windows

9.1

Intel C Compiler for EFI Byte Code

1.2

Microsoft ACPI Source Language Assembler

3.0.0NT or later

当我们点击Microsoft Visual Studio2005 Professional链接时进入Visual Studio官网,发现官网的Visual Studio镜像下载版本号是相对较新的版本号Visual Studio20132015-07月份)。而其它版本号的Visual Studio镜像。在官网非常难找到。

 

若直接点击官网Visual Studio2013链接直接下载Visual Studio2013也能够(须要用邮箱先注冊微软账号)。但这样下载即便是在网速较佳的情况下,下载和安装时常也得以小时单位,数小时计。着实让人着急。

推荐另外的一个MSDNMicrosoft Developper Network。微软开发网络)站点:http://www.itellyou.cn/。(“MSDNitellyou”是一个国内project师搭建的专门收集MSDN资源的站点,是一个十分优秀的资源站点)。从上面“开发者工具”,能够非常方便的下载到以往各个版本号的Visual Studio工具,本博文版本号选择Visual Studio2013下的Visual Studio Ultimate 2013 (x86) - DVD (English)2.82GB)。

在网速较快的环境下。下载非常快,安装也须要小时计,但比Visual Studio官网时间要短得多。

安装Visual Studio Ultimate 2013 (x86) 软件时。建议安装在系统盘C盘。

刚開始对源代码项目不太熟悉,路径冲突也不知道去哪改动,比方会出现例如以下错误:“Cannot open include file: 'windows.h': No such file or directory

 

d:\edk2\Nt32Pkg\Include\Common/WinNtInclude.h(54) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

NMAKE : fatal error U1077: '"D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC \bin\ cl.exe"' : return code '0x2'

Stop.

build...

 : error 7000: Failed to execute command

D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe /nologo tbuild 

 

Microsoft Visual Studio 2013D盘卸载后(卸载Visual Studio 13也是一个“大project”,大概半小时左右,笔记本CPUI5-3337U处理器,1.8G主频),又一次安装CC:\Program Files (x86)\Microsoft Visual Studio 13.0\。没有再出现“ Cannot open include file: 'windows.h': No such file or directoryerror 7000: Failed to execute command”错误。

并且当安装不同Visual Studio版本号,或者说在不同Visual Studio切换,尤其是卸载高版本号的Visual Studio转而安装低版本号的Visual Studio,会出现高版本号Visual Studio无法安装问题。比方高版本号的.net框架存在。无法安装低版本号的.net框架,Microsoft VisualC++ 2010已经安装也会导致新的.NET Framework无法安装。“>LINK : fatal error LNK1123: 转换到 COFF 期间失败文件无效或损坏”。问题说明:当安装VS2013之后。原来的.NET 4.0会被替换为.NET 4.5。卸载VS2013时,不会恢复.NET 4.0

通过控制面板“卸载或者更改程序”(Uninstall or change a program)找到对应的Microsoft VisualC++ 2010程序进行卸载就可以继续安装。

  

这样我们通过安装SVN下载EDKII源代码。安装Visual Studio 2013IASL完毕了Windows开发环境的搭建。在《EDKII Build Process-EDKII项目源代码的配置、编译流程[3]》配置、编译EDKII源代码来检验EDKII项目Windows开发环境是否搭建成功。

 2.2.2 Setting up a  build environment on Linux(搭建Linux EDKII开发环境)

2.2.2.1 Get the EDKII Source EDKII源代码获取(下载)。

Linux环境下我们能够用gitsvn项目源代码版本号来下载、同步EDKII源代码。本篇博文Linux环境採用的VMware(Virtual Machine ware)的方式,Linux系统为Ubuntu12.0

 

另外,不论是在Ubuntu系统下安装软件还是下载EDKII源代码都须要Ubuntu虚拟机在网络连接的状态下。关于Ubuntu虚拟机的网络配置,參看之前的博文《Ubuntu Vmware虚拟机网络配置(一)》,解决Ubuntu虚拟机网络问题后。我们继续EDKIILinux开发环境搭建步骤。

依据TianoCore官网-> -> Getting Started with EDK II->Step-by-step Instructions->.我们须要用gitsvn获取EDKII源代码,开发工具链使用GCC编译器和IASL汇编器。

 

Download and Install git or svn to obtain the EDK II(下载/安装/使用TortoiseSVN工具)

Install required software from apt(apt - Advanced Package Tool,利用apt工具从aptserver上下载所需的工具)

搭建EDKII开发环境须要一些Ubuntu软件包的支持。能够通过例如以下命令获得对应的安装包。(Several ubuntu packages will be needed to fully set up an edk2 build environment. In order to easily install all the requirements, you need to run this command.)

Shell命令:bash$ sudo apt-get install build-essential subversion git uuid-dev iasl

 

Checkout the edk2 source tree from git or subversion

Command line Instructions:(DOS终端命令行模式)

/home下新建工作文件夹src,进入工作文件夹src,再通过git或者svn获取源代码。

linux@ubuntu:~$ mkdir ~/srclinux@ubuntu:~$ cd src/

 

通过git获取源代码:

linux@ubuntu:~/src$ git clone https://github.com/tianocore/edk2

 

或者通过svn:

linux@ubuntu:~/src$ svn co https://svn.code.sf.net/p/edk2/code/trunk/edk2

 

接下来可能是10min左右的等待过程。

 

2.2.2.2 Install some third-party tools to build EDKII.对应开发工具链的下载。

 Linux环境下开发法工具链通常是GCC,还有编译ACPI汇编源文件ACPI汇编器。

GCC编译器,Ubuntu系统原本有(也能够通过apt工具下载sudo apt-get install gcc),本博客GCC版本号是GCC4.6

 

我们在上面步骤:“Install required software from apt”就已经下载iasl汇编器了。

  

但在接下来的EDKII源代码配置和编译过程中,出现例如以下错误:/bin/sh: 1: nasm: not found 

"nasm" -I/home/linux/src/edk2/MdePkg/Library/BaseLib/Ia32/ -f elf32 -o /home/linux/src/ edk2/Build/MdeModule/DEBUG_GCC46/IA32/MdePkg/Library/BaseLib/BaseLib/OUTPUT/Ia32/Thunk16.obj /home/linux/src/edk2/Build/MdeModule/DEBUG_GCC46/IA32/MdePkg/Library/BaseLib/BaseLib/OUTPUT/Ia32/Thunk16.iii

/bin/sh: 1: nasm: not found

make: *** [/home/linux/src/edk2/Build/MdeModule/DEBUG_GCC46/IA32/MdePkg/Library/BaseLib/BaseLib/OUTPUT/Ia32/Thunk16.obj] Error 127

build.py...

 : error 7000: Failed to execute command

/usr/bin/make tbuild

[/home/linux/src/edk2/Build/MdeModule/DEBUG_GCC46/IA32/MdePkg/Library/BaseLib/BaseLib]

build.py...

 : error F002: Failed to build module

/home/linux/src/edk2/MdePkg/Library/BaseLib/BaseLib.inf [IA32, GCC46, DEBUG]

- Failed -

Build end time: 21:44:40, Apr.08 2015

Build total time: 00:00:34 

通过shell命令“bash$ sudo apt-get install nasm”下载x86汇编器nasm后,又一次编译EDKII源代码,编译通过。所以搭建EDKIILinux开发环境,下载所需的软件包的较为保险的命令是:

bash$ sudo apt-get install build-essential subversion git uuid-dev iasl nasm 

还有怎样下载指定版本号的Gcc,比方TianoCore官网上指定的Gcc4.4,參考之前的博文《Ubuntu环境下怎样安装指定版本号的Gcc,比方Gcc4.4》》。

这样我们通过apt工具安装gitsvn下载EDKII源代码,安装Gcc4.6IASLNASMbuild-essentiauuid-dev完毕了Linux开发环境的搭建。在《EDKII Build Process-EDKII项目源代码的配置、编译流程[3]》配置、编译EDKII源代码来检验EDKII项目Linux开发环境是否搭建成功。

通过本篇博文WindowsLinux环境搭建的详细过程。我们发现EDKII开发环境搭建的一般框架和流程是同样的,须要安装的详细功能的源代码版本号控制器、编译器、汇编器、链接器是一样的,仅仅是与WindowsLinux系统环境匹配的详细开发工具不同,Windows採用集成的开发环境Visual StudioLinux环境下小即是美採用工具链的方式。对照过程中发现Visual Studio採用集成的开发环境,方便开发的同一时候也屏蔽了非常多核心的技术细节,Linux下工具链的安装等多显化了项目的一般开发流程。

转载于:https://www.cnblogs.com/llguanli/p/6971795.html

你可能感兴趣的文章
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
this 指向
查看>>
Kruskal基础最小生成树
查看>>
BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
[WebMatrix] 如何将SQL Compact 4.0 移转至SQL Server 2008 Express
查看>>
Java内部类详解
查看>>
python-基础
查看>>
17 案例
查看>>
【BZOJ 1221】 [HNOI2001] 软件开发
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>