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
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)
"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 則留言:
我想請問靠UEFI EDKII和source code
可以製成一個image file(.bin)
也就是一個UEFI 的BIOS
然後可以當成一個intel 板子的開機檔嗎
也就是按下電源鍵,去讀取flash的那個檔案
或者是還需要哪些東西嗎?
謝謝回答><"
這陣子看了你的blog覺得你好強阿
在把OVMF.FD複製一份,並修改檔案名稱為bios.bin
由這句話看來
以前的BIOS.bin
現在用這個工具產生出來的話
是OVMF.FD,所以這個就是EDKII所產生出來的BIOS
所以我那個問題答案是yes嚕?
張貼留言