ubuntu16.04操作系統下的edk2安裝

最近正在準備老師安排的工作,需要在安裝edk2,在網上面搜了好多帖子、博客,還找了幾本書,但每次安裝的時候不是遇到這個問題就是遇到那個問題,煩得很,這個項目感覺要做一段時間,寫篇筆記,防止自己忘了。

一、安裝環境

操作系統:ubuntu16.04LTS

gcc版本:gcc5.4.0

二、安裝步驟

本文主要根據https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC和https://wiki.ubuntu.com/UEFI/EDK2等文章加上我自己的一點理解完成。

因爲網上能夠找到的關於EDK2安裝的中文資料裏面都寫的是GCC4.4或者4.6,而自己的電腦版本已經更新到GCC5.4,所以曾經一度認爲是版本太新的緣故,隨後才找到了這篇文章。

1.安裝幾個必須的包

EDK2環境下需要安裝幾個包,可以通過一下命令來完成:

$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm
build-essential - 構建必備軟件包的信息列表
uuid-dev - 通用唯一ID庫(頭文件和靜態庫)
iasl - 英特爾ASL編譯器/反編譯器(也由acpica-tools提供)

git - 支持git版本控制系統

gcc-5 - GNU C編譯器(從Ubuntu 16.04 LTS開始,爲v5.4.0)

nasm - 通用x86彙編程序

2.安裝EDK2

在一個合適的工作目錄安裝,所有的教程、說明、博客都選擇的是(〜/ src )這個文件夾,所以我沒有改變,但實際上你可以根據意願和自己的需要進行修改。

$ mkdir ~/src
$ cd ~/src
$ git clone git://github.com/tianocore/edk2.git
$ cd edk2
第一行命令就是在根目錄下新建一個src文件夾;第二行命令是進入src文件夾;第三行命令是下載edk2,這個過程可能需要較長的一段時間,耐心等上一段時間就好了;第四行命令是進入edk2文件夾。實際上到第三行命令的時候就算安裝edk2這一步驟完成了,只不過後續一些工作需要在edk2文件夾下操作,所以就直接寫在這裏了。

3.編譯BaseTools

在Ubuntu系統中,需要首先構建構建EDKII所需的BaseTools,使用如下命令:

$ make -C BaseTools
4.建立build環境

使用如下命令,設置EDK_TOOLS_PATH並通過運行源代碼中提供的edksetup.sh腳本來設置構建環境。該腳本將複製模板和配置文件到edk2 / Conf目錄,稍微等待一會,Conf文件夾下就會出現一些文檔。

$ . edksetup.sh
5.設置build目標

設置構建目標,需要修改Conf / target.txt文件。這將使固件包能夠被建立並且設置使用的編譯器版本。具體步驟如下:

進入Conf文件夾下,打開target.txt文件,

  ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc

修改爲ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc

  TOOL_CHAIN_TAG        = MYTOOLS
修改爲TOOL_CHAIN_TAG        = GCC5(如果你用的是GCC4.6的話,這個地方就寫成GCC46)

將  TARGET_ARCH           = IA32

修改成TARGET_ARCH           = X64(也可以修改成“IA32 X64”,具體看你的硬件類型了。)

6.編譯,即build

在這一步的時候,因爲不知道在哪裏輸入這個命令,所以我在edk2的目錄下試了試,不成功,顯示瞭如下信息:

後來,我在edk2/EmulatorPkg/文件夾下找到了build.sh這個文件,直接輸入命令:

$ ./build.sh
編譯完成後,整個安裝過程結束。

注:我不是太喜歡只用命令行的方式來切換文件夾,喜歡在該文件夾下直接右鍵“打開終端”,所以大家在閱讀的時候可能有的地方跳躍地比較大,請注意。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章