Win7下搭建EFI_Debug环境:步骤详解与必备工具

需积分: 14 5 下载量 154 浏览量 更新于2024-09-08 收藏 432KB DOCX 举报
本文档详细介绍了如何在Windows 7系统下搭建并使用EFI Debug环境,这对于理解和调试Intel UEFI固件具有重要意义。以下是步骤分解: 1. **准备工作** - **QEMU**:版本为qemu-0.13.0是必须的,因为它支持对EFI的调试。确保下载并安装指定版本的QEMU,因为其他版本可能存在兼容性问题。 - **VSPD**(Virtual Serial Port Driver):这是一个虚拟串口驱动,用于在调试过程中与目标设备通信。你需要安装VSPD并配置一对虚拟串口,以便在调试过程中接收和发送数据。 - **WinDbg**:作为Windows下的调试工具,WinDbg是调试内存、进程和系统级别的关键工具。安装最新的版本来支持调试操作。 2. **软件安装** - **QEMU**:解压并运行安装程序,无需特殊配置。 - **VSPD**:双击安装程序,添加虚拟串口设置。 - **WinDbg**:下载dbg_x86_6.11.1.404.msi版本,安装并配置为系统调试工具。 - **Intel UEFI Development Kit Debugger Tool**:从指定链接下载Intel提供的调试工具,并通过安装程序进行安装,配置调试端口。 3. **EDK2编译** - **EDK2Code**:从Subversion仓库获取EDK2(Unified Extensible Firmware Interface)源代码。 - **编译**:使用VS2008x86或其他相应版本的工具链,运行Edk2Setup.bat脚本,编译OvmfPkgIa32X64.dsc,目标是生成OVMF.fd固件文件。 4. **Debug EDK2** - **Intel UEFI Debugger Tool**:启动调试工具,这将与QEMU一起使用,提供对编译后的OVMF.fd进行调试的功能。 - **QEMU启动**:使用qemu-system-x86_64.exe命令启动QEMU,指定BIOS路径(如OVMF路径)并连接到调试工具。 - **调试过程**:在QEMU启动后,你可以通过调试工具和虚拟串口与正在运行的UEFI环境交互,进行深入的内核级调试。 这个过程涵盖了从安装必要的软件到构建和调试Intel UEFI固件的完整流程,对于开发者来说,理解并熟练掌握这个环境搭建是开发和维护现代固件系统的重要技能。
2010-12-04 上传
QEmu虚拟机 做嵌入式开发的朋友试试 调试内核很方便 QEMU emulator version 0.13.0, Copyright (c) 2003-2008 Fabrice Bellard usage: qemu [options] [disk_image] 'disk_image' is a raw hard disk image for IDE hard disk 0 Standard options: -h or -help display this help and exit -version display version information and exit -M machine select emulated machine (-M ? for list) -cpu cpu select CPU (-cpu ? for list) -smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] set the number of CPUs to 'n' [default=1] maxcpus= maximum number of total cpus, including offline CPUs for hotplug, etc cores= number of CPU cores on one socket threads= number of threads on one CPU core sockets= number of discrete sockets in the system -numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node] -fda/-fdb file use 'file' as floppy disk 0/1 image -hda/-hdb file use 'file' as IDE hard disk 0/1 image -hdc/-hdd file use 'file' as IDE hard disk 2/3 image -cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master) -drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] [,cache=writethrough|writeback|none|unsafe][,format=f] [,serial=s][,addr=A][,id=name][,aio=threads|native] [,readonly=on|off] use 'file' as a drive image -set group.id.arg=value set parameter for item of type i.e. -set drive.$id.file=/path/to/image -global driver.property=value set a global default for a driver property -mtdblock file use 'file' as on-board Flash memory image -sd file use 'file' as SecureDigital card image -pflash file use 'file' as a parallel flash image -boot [order=drives][,once=drives][,menu=on|off] 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n) -snapshot write to temporary files