小華的部落格: 快快樂樂學EFI (2)

搜尋此網誌

網頁

星期二, 9月 04, 2012

快快樂樂學EFI (2)


 
快快樂樂學EFI
Harrison Hsieh 2010/07/19
Chap 2 Build EFI How to
      這一章是用來說明如何去Build 你的EFI Tool Kit或是EDK,經由一步一步的帶領之下可以讓你很快的擁有一個EFI 開發環境。
 
2.1 Build EFI Tool Kit
首先,你必須透過SVN去下載一套EFI Tool Kit,假設我下載後是放在 D:\efitoolkit,則他的目錄結構會長的像下圖一樣:
 

 
首先,我們先去修改Build.cmd這個檔案,這個檔案最主要是去控制一些環境變數,這邊環境變數會影響你產生的輸出檔案是 IA32/X64
set SDK_BUILD_ENV=em64t  
set SDK_INSTALL_DIR=
D:\efitoolkit
SDK_BUILD_ENV - 是用來選擇你產生的執行檔是希望在哪個platform中執行,目前一共有幾種Platform可以選擇,像是nt32/sal64/em64t/bios32,而我們選擇的是em64t,他的意思代表我們要產生X64的執行檔
這樣子你才可以放在一個64 bit DXE環境下執行。 如果你想在一個NT32模擬環境或是PEI 32bit環境下執行,那你就要選擇 nt32.
 
SDK_INSTALL_DIR - 指定你的EFI Tool kit擺放的位置,我是放在D:\efitoolkit
 
接下來,你還需要去設定D:\efitoolkit\em64t\sdk.env ,這個檔案是決定你要使用哪一種Compiler 工具,預設是WinDDK,但是小弟總是喜歡來點不一樣的,因此我改使用VS2005!
為了使用VS2005,所以我就必須去修改這個檔案。

 
修改方式很簡單,就是指定到我的VS2005內的Compiler 目錄就可以了:
#MSSdk = C:\WINDDK\3790.1830\bin\win64\x86\amd64
MSSdk = "
C:\Program Files\Microsoft Visual Studio 8\VC\bin\x86_amd64"
然後就是重點了,你必須使用的是Visual Studio 2005 X64 Cross Tools Command Prompt ,而不是一般32 bitCommand Prompt.

接著切換目錄到你的EFI Tool Kit目錄,然後先執行Build.cmd設定環境後,就可以使用nmake 開始編譯你的環境。

 
編譯的結果會產生在 bin output 這兩個目錄內:
D:\efitoolkit\em64t\bin
D:\efitoolkit\em64t\output
 
所以你可以在這些目錄內找到你要的執行檔。
 
[Note]
如果你要build nt32,記得改一下SDK_BUILD_ENV = nt32,並改用Visual Studio 2005 Command Prompt (32bit)
 
2.2 Build EDK
 
EDK 內有許多的Platform 可以使用,其中比較常使用到的就是Nt32Developer's UEFI Emulation (DUET)/X64,下面就介紹這3PlatformBuild的方式:
2.2.1 Nt32 platform
使用VS2005 Build EDKNt32環境時需要注意的地方是把config.env內的USE_VC8 打開,然後再使用VS2005 Command prompt (32 bit)就可以去Build Nt32
(1)SET EDK_SOURCE=D:\EDK
     SET EDK_TOOLS_PATH=%VCINSTALLDIR% <--可有可無
(2)D:\EDK\Sample\Platform\Nt32\Build\Config.env
     USE_VC8 =
 YES
(3) 
然後依照下圖一步一步的做即可 (進入到Build folder,然後鍵入nmake all)

 
(4) Nt32還有個好處就是可以執行NT32模擬器,而執行的方式就是執行 system.cmd 設定 EFI Shell 模擬環境,然後再鍵入 nmake run

然後就會看到下圖:

 
2.2.2 DUET/X64 platform
DUET 這是一個開發者的模擬環境,在你執行nmake all之前,你必須設定下面的環境變數:
        set EDK_SOURCE=d:\edk
        set WIN_DDK_PATH=
可忽略,如果你是VS2003的話就必須設定
        set MASMPATH=c:\MASM615

另外就是要把config.env內的設定打開,這樣子才能使用VS2005
USE_VC8 = YES
USE_VC8_X64 = YES
接著,使用VS2005 Command prompt (32 bit)就可以去Build
 
[Note]
X64 platform build的方式如同DUEF,而且內含有X64 EFI Shell可以讓你在X64 platform使用。
DUET/X64 platform不支援nmake run的模擬環境,所以你沒辦法在你的工作機上運行。
 
 
 
 
  

沒有留言: