最近正在準備老師安排的工作,需要在安裝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
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 BaseTools4.建立build環境
使用如下命令,設置EDK_TOOLS_PATH並通過運行源代碼中提供的edksetup.sh腳本來設置構建環境。該腳本將複製模板和配置文件到edk2 / Conf目錄,稍微等待一會,Conf文件夾下就會出現一些文檔。
$ . edksetup.sh5.設置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編譯完成後,整個安裝過程結束。
注:我不是太喜歡只用命令行的方式來切換文件夾,喜歡在該文件夾下直接右鍵“打開終端”,所以大家在閱讀的時候可能有的地方跳躍地比較大,請注意。