码迷,mamicode.com
首页 > 其他好文 > 详细

[原创]搭建UEFI调试环境

时间:2016-08-20 10:15:50      阅读:1523      评论:0      收藏:0      [点我收藏+]

标签:

需要的软件包如下
技术分享

安装UEFI开发环境EDK2

 

本文在Windows7x64上测试,安装Windows SDK作为编译器

  1. 安装.Net Framework 4
  2. 安装Windows SDK v7.1
    技术分享
    技术分享
  3. 安装配置EDK2
    设置TARGET=NOOPT,TARGET_ARCH=X64,TOOL_CHAIN_TAG=VS2010x86,别的步骤请参考其它文章

编译OVMF

给OvmfPkg添加NOOPT的TARGET,2016-7-16的edk2需要修改,以后的edk2更新了应该不需要。
技术分享

执行编译命令:build -p OvmfPkg\OvmfPkgX64.dsc -D SOURCE_DEBUG_ENABLE
把编译得到的文件D:\EDK2\Build\OvmfX64\NOOPT_VS2010x86\FV\OVMF.fd复制到d:\temp\目录下(这一步无所谓,知道编译后的OVMF文件在哪就行)

安装调试工具

  1. 安装windbg(6.11.1.404_x86外的其它版本也可以)
  2. 安装Intel UDK Debugger Tool v1.5,切记别修改默认安装目录C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool
    技术分享
    技术分享
    技术分享
  3. 安装qemu(特定版本http://homepage3.nifty.com/takeda-toshiya/qemu/qemu-0.13.0-windows.zip)
  4. 启动Intel UDK Debugger Tool
    技术分享
  5. 启动Qemu,Windbg马上连接上断下来(这里应该是最早的断点),g继续运行,随着UEFI启动Windbg加载很多PDB符号,在Windbg中主动断下来后如下图
    qemu-system-x86_64.exe -bios d:\temp\OVMF.fd -serial pipe:qemu_pipe_dbg
    技术分享

调试UEFI程序

  1. 编译测试程序
    build -p AppPkg\AppPkg.dsc -m AppPkg\Applications\Main\Main.inf
  2. 复制文件d:\EDK2\Build\AppPkg\NOOPT_VS2015x86\X64\Main.efi到d:\temp\myefihd.vdi硬盘镜像中(通过VirtualBox虚拟机)
  3. 启动Intel UDK Debugger Tool
  4. 启动Qemu
    qemu-system-x86_64.exe -bios d:\temp\OVMF.debug -hda d:\temp\myefihd.vdi -serial pipe:qemu_pipe_dbg
  5. Windbg连上后下未决断点(在入口函数上下断点,Main.efi的入口函数是main),g继续执行
    技术分享
  6. 等一会OVMF就会启动内置的shell,运行准备好的测试程序Main.efi
    技术分享
  7. Windbg马上就会断下来
    技术分享

 

参考资料

https://software.intel.com/en-us/articles/xdb-agent-based-uefi-debug

 

[原创]搭建UEFI调试环境

标签:

原文地址:http://www.cnblogs.com/zhongts/p/5789686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!