小華的部落格: Intel® UEFI Development Kit Debugger Tool (Intel UDK Debugger and OVMFPkg)

搜尋此網誌

網頁

星期二, 12月 23, 2014

Intel® UEFI Development Kit Debugger Tool (Intel UDK Debugger and OVMFPkg)

這篇文章是紀錄我自己架設 QEMU + OVMF + Intel UDK + WinDbg 環境的筆記。

QEMU : 他是一個Open Source的處理器仿真器與模擬器。
http://wiki.qemu.org/Main_Page
   
OVMF : 他是一個UEFI EDK2 codebase裡面的一個專案,用來讓UEFI BIOS可以跑在虛擬機器(Virtual Machine)上面,在這裡的範例就是跑在QEMU裡面。
http://tianocore.github.io/ovmf/

Intel UDK Debugger : 這是INTEL開發的一個Source Level Debugger,他需要配合WinDbg(微軟提供的)才能做除錯的動作。

Intel Uefi Development Kit Debugger Tool

下面這張圖是我實際的架設環境,我在Windows 8.1裡面安裝了Intel UDK跟WinDbg然後透過虛擬的COM Port來與 QEMU裡面的BIOS.BIN(OVMF.FD)溝通。


安裝與設定(Install and Setup)

STEP1 : Download UDK2014.SP1 ,OvmfPkg and OptionRomPkg

我是把它們一起放在E:\UDK2014.SP1; 然後先準備好Compiler環境,並產生OVMF.FD. (環境的部分請參考UDK2014與OVMF的說明)。

確定Compiler 環境沒問題後,跟隨下面步驟來產生UEFI BIOS ROM。

1).先產生 OVMF.FD
   a. E:\UDK2014.SP1>edksetup.bat
   b. E:\UDK2014.SP1>build -DDEBUG_ON_SERIAL_PORT=TRUE -DSOURCE_DEBUG_ENABLE

2). 在把OVMF.FD複製一份,並修改檔案名稱為bios.bin (rename)
   (我是放在 E:\UDK2014.SP1\Build\Ovmf3264\DEBUG_VS2012x86\FV\bios.bin)
    a.E:\UDK2014.SP1> cd E:\UDK2014.SP1\Build\Ovmf3264\DEBUG_VS2012x86\FV
    b.E:\UDK2014.SP1\Build\Ovmf3264\DEBUG_VS2012x86\FV> copy OVMF.FD bios.bin

STEP2: 安裝(Install) WinDbg 
STEP3: 安裝Virtual Serial Port,你可以選擇Com0Com或是VSPD(Virtual Serial Port Driver),因為Com0Com 是免費(Free),另一個要破解(VSPD v7.2),所以我這邊就只介紹Com0Com 就好,破解版的我就自己知道就好這邊就不介紹了。

1) 先執行一個Cmd.exe with Admin (管理者權限)
   bcdedit -set TESTSIGNING ON
2)重新開機 (Reboot)
3) 安裝Com0Com 2.2.2.0 (For Windows 8.1/Win7 x64 bit) 

4) 執行 "C:\Program Files (x86)\com0com\setupc.exe",並在畫面中輸入下面指令:

    Command > Install PortName=COM6 PortName=COM7

5) 確認設備管理員(Device Manager)內有成功安裝driver,並且No yellow bang.


STEP4: 安裝(Install) Intel UDK v1.4 
※如果你是Windows 8.1 ,請設定相容性=Windows 7 (Compatibility mode=Windows 7)
 

1) 安裝過程中會指定WinDbg安裝目錄跟COM port Number,你也可以安裝完畢後,再去修改他的設定檔案(Config File):

"C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\SoftDebugger.ini"
  
底下是我實作時候的設定:
COM6 = Intel UDK
COM7 = QEMU

2) 安裝後,修改SoftDebugger.ini 加入以及修改底下的描述(RED COLOR)
"C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\SoftDebugger.ini"
[Debug]
Debug=1

[Debug Port]
Channel = Serial
Port = COM6
FlowControl = 0   
BaudRate = 115200
Server = 

STEP5:  執行Intel UDK Debugger,他會叫出WinDbg
STEP6: 執行QEMU 並且載入UEFI BIOS (Load BIOS.bin)

E:\UDK2014.SP1\Build\Ovmf3264\DEBUG_VS2012x86\FV>"C:\Program Files\qemu\qemu-system-x86_64.exe" -L . -serial COM7



如果有不清楚的部分,可以參考INTEL相關資料。







2 則留言:

jeffnote 提到...

我想請問靠UEFI EDKII和source code
可以製成一個image file(.bin)
也就是一個UEFI 的BIOS
然後可以當成一個intel 板子的開機檔嗎
也就是按下電源鍵,去讀取flash的那個檔案
或者是還需要哪些東西嗎?

謝謝回答><"
這陣子看了你的blog覺得你好強阿

jeffnote 提到...

在把OVMF.FD複製一份,並修改檔案名稱為bios.bin

由這句話看來
以前的BIOS.bin
現在用這個工具產生出來的話
是OVMF.FD,所以這個就是EDKII所產生出來的BIOS
所以我那個問題答案是yes嚕?