How to build UDK2015?

UDK2015 is a stable release of portions of the EDKII project.

本文记录在Win7下用VS2012 编译UDK2015的过程。

Step1, 下载Source Code
SVN 地址:

https://svn.code.sf.net/p/edk2/code/branches/UDK2015

Step2, 运行脚本 edksetup.bat Windows 命令行输入:edksetup --nt32
[注:如果编译 IA32的Image,Driver或者Application,必须有--nt32参数,否则会出现一些莫名其妙的Build错误;Target_ARCH=X64, 不带--nt32参数,可以正常编译]

Step3, 修改Conf/target.txt

修改TOOL_CHAIN_TAG = VS2012x86  参考:Windows systems ToolChain_Matrix

Setp4, Build IA32 BIOS Image
Windows命令行输入:Build

Step5, Run BIOS Image with Windows NT 32 emulation:
命令行输入:Build Run
按F2进入Setup界面


Build X64 UEFI Application

命令行输入:Build -a X64 -p DuetPkg/DuetPkgX64.dsc

编译自己写的Application:
[注]每次打开新的CMD窗口,先运行edksetup.bat --nt32然后:
方法1: Build -a X64 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf
方法2:切换到 MdeModulePkg\Application\HelloWorld\ 目录, 执行Build -a X64
方法3: 将HelloWorld.inf加入DuetPkgX64.dsc, 执行Build -a X64

将生成的HelloWrodl.efi文件复制到装有UEFI shell系统的U盘或者Hdd中 ,运行HelloWrold.efi即可。

这篇文章内容比较少,接触UEFI时间不长,细节没理清楚,只描述过程,原因不叙述,进一步研究可以参考《EDK II Build Specification》.

时间: 2024-10-12 19:08:22

How to build UDK2015?的相关文章

给iOS工程增加Daily Build

给iOS工程增加Daily Build  前言 Daily Build 是一件非常有意义的事情,也是敏捷开发中关于 “持续集成” 的一个实践.Daily Build 对于开发来说有如下好处: 保证了每次 check in 的代码可用,不会造成整个工程编译失败. 进度跟进.产品经理可以每天看到最新的开发进度,并且试用产品,调整一些细节.很多时候,一个新功能,你真正用了一下才能有体会好或不好,所以 daily build 也给产品经理更多时间来调理他的设计. 需求确认.产品经理可以确认开发的功能细节

快速获取Jenkins上build

很多公司都会做CI持续集成,一般CI都用Jenkins.如何快速获取Jenkins 上的build? 一般公司都会有CI服务器,各个项目build都在上面触发或生成.如何快速获取CI服务器上最新的build呢? 有的人可能想到爬虫,当然爬虫可以做到,但是比较复杂,还要判断最新的build是否是success. 其实不用这么麻烦,Jenkins提供了一些接口,直接用接口就能获得build相关的信息.例如: http://$host/job/$jobname/lastSuccessfulBuild/

Bitbucket 触发内网 Jenkins Build

为了保证安全性多数的持续集成系统都会部署在公司内部的局域网中,这样如果代码部署在 Bitbucket 等环境中就只能通过轮询的方式来触发 Build.那么有没有办法通过 Bitbucket 的 Webhooks 功能在开发人员提交代码时触发 Build 呢?答案是肯定的,并且有很多种实现方式.本文笔者将介绍一种比较简单的实现方式来实现由 Bitbucket 的 Webhooks 触发内网 Jenkins 中的 Build.其结构如下: 实现本方案的条件是需要在外网有一台可以访问的主机,通过 SS

TeamCity : Build 基本配置

在 TeamCity 中创建了一个项目 HelloApp,并在这个项目中创建了一个名为 HelloAppDailyBuild 的Build 用来编译 demo 程序.本文我们将详细介绍 Build 中的基本配置.下图是 Build 基本配置的概览: Name Build 配置的名称. Build configuration ID Build configuration ID: 在系统中标识该 Build 配置,自动生成的规则是:项目名称 +下划线 + build 配置名称.比如要导航到一个 bu

Daily Build

Daily Build 是一件非常有意义的事情,也是敏捷开发中关于 “持续集成” 的一个实践.Daily Build 对于开发来说有如下好处: 保证了每次 check in 的代码可用,不会造成整个工程编译失败. 进度跟进.产品经理可以每天看到最新的开发进度,并且试用产品,调整一些细节.很多时候,一个新功能,你真正用了一下才能有体会好或不好,所以 daily build 也给产品经理更多时间来调理他的设计. 需求确认.产品经理可以确认开发的功能细节是他的预期.因为我们的开发比较紧凑,所以都没有传

使用dokan实现一个虚拟映射盘?来我们聊聊

缘起: 项目组一直在做网盘客户端(同步协作盘)的开发,产品进入市场,用户使用以后出现了很多问题.其中一个最大的问题就是,用户数据量很大(有很多公共库共享文档,部分用户数据量超百万),首次登陆要同步很长时间,且共享文档库文档变化时,所有用户都要同步,实时占用用户的资源,严重影响用户体验.(ps:我们使用精益项目管理,产品基本功能稳定以后,就给用户使用,不断优化迭代) 解决:问题来了,肿么办?一看是性能问题,项目组就排了前端后端性能测试和性能优化的计划,顺便说,客户端的性能优化是我做的.优化以后我们

build tool(构建工具)

什么是build tool? 构建工具是从源代码自动创建可执行应用程序的程序.构建包括将代码编译,链接和打包成可用或可执行的形式.在小项目中,开发人员通常会手动调用构建过程.这对于较大的项目来说是不实际的,在这些项目中,很难跟踪需要构建的内容,构建过程中的顺序和依赖关系.使用自动化工具可以使构建过程更加一致.基本上构建的自动化是编写或使一大部分任务自动执行的一个动作,而这些任务则是软件开发者的日常,像是: 1.下载依赖 2.将源代码编译成二进制代码 3.打包生成的二进制代码 4.进行单元测试 5

JAVA Building tool具体指什么?有哪些?它们的作用是什么?

什么是build tool? 项目构建可以理解为一个项目从无到有的一系列操作过程.比如一个Java程序的构建过程就是: 编写源代码 将.java文件编译为.class文件 执行.class文件输出结果 上面的构建过程中需要用到Jdk中的java和javac等命令进行编译和执行. 为什么要使用build tool? 日常开发中我们当然不会每次都在终端中使用命令一个个编译执行文件,我们只需要在IDE中点击运行按钮,IDE就会帮助我们执行构建项目的全过程,但是使用IDE构建有一个很严重的缺陷就是迁移成

SBT详解

文章转载自http://beike.iteye.com/blog/1575296 SBT = (not so) Simple Build Tool,是scala的构建工具,与java的maven地位相同.其设计宗旨是让简单的项目可以简单的配置,而复杂的项目可以复杂的配置... https://github.com/notyy/sbtTemplate 是我配置好的一个sbt项目,已经配置好了单元测试框架specs2,log引擎logback,slf4j,和eclipse项目生成插件sbteclip