很久沒有更新博客了,之前的博客末尾有提到過要寫有關EDK2環境搭建的博客,現在就是完成的時候了,后續博客更新會比較規律(大概每周一篇?)
本人博客僅僅發表於博客園,本人主頁為 https://www.cnblogs.com/zedd/
EDK2我自我感覺是學BIOS的基礎,也算是比較好的入門手段之一。雖然是基礎,但是確很重要。舉個例子來說,真正意義上的國產電腦-龍芯,其BIOS界面以及源代碼和EDK2模擬器的BIOS界面及源代碼有極大的相似之處,甚至於我感覺龍芯的源代碼就是在EDK2的基礎上添加了屬於自己的內容(因為本人曾經着手參與過龍芯的一個項目,對它有過一些研究)。
閑話說的有點多了,接下來正式進入主題。下面提及的安裝包可以在GitHub上下載,VS編譯器和Python安裝包可以在百度上下載。
第一步,安裝VS編譯器
安裝什么版本的編譯器應該影響不大,我用VS2015和VS1017都成功搭建出來過編譯環境,以VS2015為例:
安裝的時候將 編程語言中的C++勾選上,安裝路徑默認即可(建議不管搭建什么環境,裝軟件盡量使用默認路徑)
第二部,安裝python
安裝python2.7 注意當出現下面界面的時候,選擇add python.exe to pach 為entire feature will be installed on local hard dirve
安裝完成之后C盤根目錄下Python27文件夾下應該有Scripts
第三步,安裝nasm
將nasm安裝到C:\nasm (注意不要有重復的子文件夾)
第四步,解壓isal
將iasl.zip解壓到C:\asl (注意文件夾名字發生了變化,注意不要有重復的子文件夾)
第五步,設置環境變量
我的電腦-->屬性-->高級系統設置-->高級-->環境變量 按下圖配置
PYTHON_HOME
PYTHON_FREEZER_PATH
NASM_PREFIX
第六步,解壓EDK2 sourcecode
將edk2-master.zip解壓到C:\edk2 (注意文件夾名字,注意不要有重復的子文件夾)
第七步,搭建環境
運行cmd 輸入
cd / (進入C盤根目錄)
cd edk2 ( 進入edk2目錄)
edksetup.bat
cd c:/edk2/BaseTools/Source/C
nmake all (注意中間有空格,nmake all 成功的話會顯示以下內容)
如果報錯gbk,把basetool/source/c/makefile/nmakesubdirs.py 的第48行 print(message)改成print(message.encode("GBK","ignore"))
cd c:/edk2
build (如果build成功,會顯示如下內容)
找到C:\edk2\Build\EmulatorIA32\DEBUG_VS2015x86\IA32目錄下的WinHost.exe 雙擊即可運行32位的模擬器。
今天就寫到這里,環境已經搭建完成,程序設計明天再補充出來。