学习环境搭建:用Qemu模拟器搭建UEFI Serial Debug环境

    当我们想要学习UEFI 相关的东西的时候,有一台机器当然再好不过了,但是硬件环境总是日新月异,有没有一个相对比较方便、稳定的环境来学习UEFI相关知识呢?当然有了,UDK2017里面有个OVMF package可以模拟出一个BIOS bin file。我们可以用这个BIOS bin file在Qemu 模拟器里面模拟真实的UEFI 环境。

    我们要准备的软件有:

  1. Qemu。
  2. com0com-3.0.0.0-i386-and-x64-signed,这个是个虚拟串口工具,用来收集/发送Qemu丢出来的debug 信息。
  3. putty 软件,查看/保存debug信息。

    首先我们要build debug OVMF BIOS:

build -p OvmfPkg/OvmfPkgIa32.dsc -D DEBUG_ON_SERIAL_PORT 
或者64bit:
build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -D DEBUG_ON_SERIAL_PORT

    然后打开putty,选择com0com生成的两个COM口其中任意一个,例如生成的COM3和COM4,我们选择COM4。注意这里要把Flow controll 选择“None”,不要选择XON/XOFF,不然Qemu会hang。

    打开Qemu 模拟器:

"C:\Program Files\qemu\qemu-system-i386.exe" -bios "D:\26912\Build\OvmfIa32\DEBUG_VS2013x86\FV\OVMF.fd" -serial COM3
或者64bit:
"C:\Program Files\qemu\qemu-system-x86_64.exe" -bios "D:\26912\Build\OvmfX64\DEBUG_VS2013x86\FV\OVMF.fd" -serial COM3

    这个时候应该可以从Putty这边抓到 OVMF BIOS 丢出来的串口信息了。

    此外,为什么不用“-serial stdio”,而是多此一举用com0com 软件虚拟出来的串口传递数据呢?其实有一些信息使用Putty看起来更直观一点,也更容易保存log。So,看个人爱好吧!

你可能感兴趣的:(学习环境搭建:用Qemu模拟器搭建UEFI Serial Debug环境)