2012年6月2日 星期六

建構EDKII環境與執行NT32模擬器

最近學習EDKII, 紀錄一下流程.

作業系統: Windows XP SP3 32-bit

目前網路上的EDK2教學幾乎都是使用需$$的 Visual Studio 建構編譯環境.
這裡使用免費的 Visual C++ 2010 Express 來建構編譯環境.


1. 安裝 Visual C++ 2010 Express , 我使用網路安裝版

2. 安裝 Microsoft Windows SDK for Windows 7 (雖說 for Windows7, 其實在XP也可以用)

3. 安裝 ASL編譯器, 到以ACPICA網站,
下載 iasl-win-20070508.zip, 並將所有檔案解壓縮到 C:\ASL

4. 到 EDK2 網站, 下載 EDK2 Source Code, UDK2010.SR1,

5. 將UDK2010.SR1裡面的 UDK2010.SR1.MyWorkSpace.zip 解壓縮到 ex. D:\
所以解壓縮後的資料夾路徑為 D:\MyWorkSpace

6. 將UDK2010.SR1裡面的 BaseTools(Windows)_UDK2010.SR1.zip
解壓縮到剛剛的MyWorkSpace裡面, 所以完成後會看到 D:\MyWorkSpace\BaseTools 路徑

7. 因為此包Build Tool 還沒有VS2010的編譯環境設定,
所以還要自行修改 MyWorkSpace\BaseTools\Conf\tools_def.template 如下:
-------------------------------------------------------------------------------
...
DEFINE VS2008_BIN = C:\Program Files\Microsoft Visual Studio 10.0\Vc\bin
DEFINE VS2008_DLL = C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2008_BIN)

...
DEFINE WINSDK_VERSION = v7.1
...
-------------------------------------------------------------------------------
正規的做法應該重建VS2010的定義, 不過那還需要加入很多編譯參數,
所以這裡是直接利用VS2008建好的編譯描述, 只修改 Visual Studo 與 SDK 的路徑

PS.
a. 如果作業系統是64-bit則需要修改 VS2008x86_BIN 與 VS2008x86_DLL.
b. 如果已經跑過 edksetup.bat 的話, 修改 MyWorkSpace\BaseTools\Conf\*.template會無作用
必須要將  MyWorkSpace\Conf\*.txt 刪除, 因為 edksetup.bat 會將 BaseTools\Conf\*.template
複製到 Conf\*.txt 然後以此為參數, 如果Conf\*.txt 已經存在就不會套用 Conf\*.template設定.
如果跑過 edksetup.bat 直接修改 MyWorkSpace\Conf\*.txt 也是可以的

8. 修改 MyWorkSpace\BaseTools\Conf\target.template 將 tool chain設定為 VS2008,
此設定就會套用剛剛在 tools_def.template 裡面設定的路徑.
-------------------------------------------------------------------------------
...
TOOL_CHAIN_TAG = VS2008
...
-------------------------------------------------------------------------------

PS. 如果作業系統是64-bit 則修改為 VS2008x86

9. 依據 D:\MyWorkSpace\CryptoPkg\Library\OpensslLib\Patch-HOWTO.txt 設定 OpenSSL
如果只是要跑NT32則可以不用設定

10. 執行 Windows SDK 7.1 Command Prompt,執行指令
-------------------------------------------------------------------------------
D:
cd MyWorkSpace
edksetup.bat
build
build run
-------------------------------------------------------------------------------

PS. 如果直些用 cmd.exe 去執行的話會無法編譯, 因為有些環境變數沒有設定,
使用SDK的 Command Prompt 會將環境變數設定好

這時候會跳出 EFI 的模擬環境, 進入EFI Shell, 完成.

2 意見:

匿名 提到...

If I want to Compiler the efi shell for X64. It need to use Visual Studio 2010 via VC++ package. Due to the VC2010 Express doen't included "X64 compiler" package. And you need to change the "TARGET_ARCH" in target.template file like as below.
TARGET_ARCH = X64

cahyyamquiett 提到...

Slot Machine Games - Dr.MCD
From 안동 출장안마 classic slots 원주 출장안마 to classic 영주 출장샵 video poker machines, Dr.MCD has you covered with all the 안산 출장샵 casino's best slot games! The company has over 2,300 titles and 경기도 출장샵 offers