windows下开启Qemu串口调试

本文介绍了如何在Windows下配置QEMU以进行串口调试。首先,需要在EDKII包编译时添加-D DEBUG_ON_SERIAL_PORT选项。然后,编译OvmfPkgX64生成OVMF.fd。QEMU执行时,创建启动脚本setup-qemu-x64.bat,添加-serial stdio参数将串口信息重定向到标准输入/输出。为解决cmd窗口中文显示问题,可以切换到UTF-8代码页并更改字体为Lucida Console。

1 EDKII 包编译

如果要在 windows 下启用串口信息打印,需要在 build 时加 -D DEBUG_ON_SERIAL_PORT 选项。

需要注意的是,在 target.txt 中 TARGET 只能是 DEBUG, RELEASE, NOOPT。上面选项需要在执行 build 命令时加入。

 

 

编译 OvmfPkgX64 生成的 OVMF.fd 所在路径为:edk2\Build\OvmfX64\DEBUG_VS2019\FV

2 QEMU 执行

这里涉及两个路径:1.OVMF.fd 所在路径;2. Qemu 挂载硬盘的文件夹路径

本例是都放在 Qemu 安装目录下 HDD 文件夹,两个路径可自定义,稳妥起见路径中不要包含空格。

2.1 创建启动脚本

Qemu 安装路径下有针对不同平台的 .exe,一般调用时是在 cmd 下 cd 到安装路径下调用,参数较多,有些参数带有路径信息,故在 Qemu 安装目录下新建 setu

<think>嗯,用户之前已经询问过如何在Windows下安装和使用NASM来编写和运行引导扇区程序,现在他们接着问关于QEMUWindows下的使用方法。看起来用户可能正在学习操作系统开发或者低级编程,需要用到虚拟机来测试他们的汇编代码。 用户之前得到了详细的NASM安装和编译步骤,以及如何用QEMU和Bochs运行程序。现在他们可能想更深入了解QEMU的具体使用方法,特别是如何在Windows环境下配置和使用它来运行他们编写的引导扇区或者其他镜像文件。用户可能对QEMU的命令行参数不熟悉,或者想了解不同的使用场景,比如如何加载不同的磁盘映像、配置虚拟机参数等。 需要确保回答覆盖QEMU的安装步骤、基本命令、常见使用案例,比如运行引导扇区、加载操作系统镜像、使用虚拟磁盘等。还要注意用户可能遇到的常见问题,比如路径问题、命令错误,以及如何调试。另外,用户可能对图形界面和命令行两种方式都有兴趣,但考虑到他们之前使用的是命令行,可能更倾向于命令行的详细说明。 此外,用户可能希望了解如何将QEMU的用法集成到他们的开发流程中,比如自动化编译和运行的脚本,或者如何配置不同的硬件选项。需要提供具体的示例命令,并解释每个参数的作用,这样用户能够理解并调整以适应他们的项目需求。 最后,应该提醒用户注意路径中的空格和特殊字符,建议使用引号或短路径来避免问题,并指导他们在出错时如何排查,比如检查文件是否存在、权限问题等。可能还需要提到如何访问QEMU的监控器来进行更高级的调试和管理虚拟机状态。</think>以下是 **QEMU for Windows** 的详细使用方法,涵盖安装、常用命令、虚拟机配置及调试技巧: --- ### **一、安装 QEMU** 1. **下载安装包** - 访问 [QEMU 官方下载页](https://www.qemu.org/download/#windows),选择 Windows 64位安装包(如 `qemu-w64-setup-2023xxxx.exe`)。 - 或从 [QEMU Weilnetz 镜像](https://qemu.weilnetz.de/w64/) 下载稳定版本。 2. **安装选项** - 安装时勾选 **Add QEMU to the system PATH**,以便在命令行直接使用。 - 默认安装路径为 `C:\Program Files\qemu`。 3. **验证安装** 打开命令提示符(CMD/PowerShell),输入: ```bash qemu-system-x86_64 --version ``` 若显示版本信息(如 `QEMU emulator version 8.2.0`),则安装成功。 --- ### **二、基本使用场景与命令** #### **1. 运行引导扇区程序** 假设已通过 NASM 编译出 `boot.bin`(引导扇区),直接运行: ```bash qemu-system-x86_64 -drive format=raw,file=boot.bin ``` - `-drive format=raw`:指定文件为原始磁盘镜像(无需文件系统)。 - 程序启动后,QEMU 窗口会显示运行结果。 #### **2. 启动完整操作系统镜像** 若需运行 `.iso` 或 `.img` 文件(如 Linux 发行版): ```bash qemu-system-x86_64 -boot d -cdrom ubuntu-22.04.iso -m 4096 ``` - `-boot d`:从光驱(`-cdrom`)启动。 - `-m 4096`:分配 4GB 内存(默认仅 128MB)。 - `-hda disk.img`:加载虚拟硬盘(需提前创建)。 #### **3. 使用虚拟磁盘文件** 创建并挂载虚拟硬盘: 1. **生成空磁盘文件**(1GB): ```bash qemu-img create -f qcow2 disk.qcow2 1G ``` - `-f qcow2`:动态分配空间的高效格式。 2. **启动虚拟机并挂载磁盘**: ```bash qemu-system-x86_64 -hda disk.qcow2 -cdrom ubuntu.iso ``` --- ### **三、常用参数详解** | 参数 | 说明 | 示例 | |------|------|------| | `-m <MB>` | 分配内存大小 | `-m 2048`(2GB) | | `-smp <N>` | 设置 CPU 核心数 | `-smp 4`(4 核) | | `-hda/-hdb` | 挂载主/从硬盘 | `-hda os.img` | | `-cdrom` | 挂载 ISO 镜像 | `-cdrom install.iso` | | `-net nic` | 启用虚拟网卡 | `-net nic,model=e1000` | | `-vga` | 指定显卡类型 | `-vga virtio`(高性能虚拟显卡) | | `-monitor` | 启用 QEMU 监控台 | `-monitor stdio`(交互式调试) | --- ### **四、调试与高级功能** #### **1. 启用串口输出** 将程序输出重定向到主机终端: ```bash qemu-system- 程序通过 `0x3F8` 串口发送的数据会显示在命令行中。 #### **2. 使用 QEMU 监控台** 启动时添加 `-monitor stdio`,进入交互式监控模式: ```bash qemu-system-x86_64 -drive file=boot.bin,format=raw -monitor stdio ``` 常用监控命令: - `info registers`:查看 CPU 寄存器状态。 - `xp /10i 0x7c00`:反汇编内存地址 `0x7C00` 处的代码。 - `savevm <快照名>` / `loadvm <快照名>`:保存/恢复虚拟机状态。 #### **3. 调试内核(GDB 集成)** 1. 启动 QEMU 并等待 GDB 连接: ```bash qemu-system-x86_64 -s -S -drive file=boot.bin,format=raw ``` - `-s`:开启 GDB 服务(默认端口 `1234`)。 - `-S`:启动时暂停 CPU(等待调试指令)。 2. 使用 GDB 连接: ```bash gdb -ex "target remote localhost:1234" -ex "break *0x7c00" -ex "c" ``` --- ### **五、常见问题解决** #### **1. 报错 `Failed to load option rom`** - 原因:缺少 BIOS 或固件文件。 - 解决:下载 [edk2 固件](https://www.kraxel.org/repos),通过 `-bios` 参数指定路径: ```bash qemu-system-x86_64 -bios OVMF.fd -hda disk.img ``` #### **2. 中文路径或空格导致文件无法加载** - 使用短路径或引号包裹路径: ```bash qemu-system-x86_64 -drive file="C:\My Folder\boot.bin",format=raw ``` #### **3. 图形窗口卡顿或黑屏** - 启用加速(需安装 [WHPX](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) 或 KVM): ```bash qemu-system-x86_64 -accel whpx -drive file=boot.bin,format=raw ``` --- ### **六、自动化脚本示例** 创建 `run.bat`,一键编译并启动: ```batch @echo off nasm boot.asm -f bin -o boot.bin qemu-system-x86_64 -drive format=raw,file=boot.bin pause ``` 双击运行即可自动编译并启动 QEMU。 --- 通过以上步骤,你可以在 Windows 下熟练使用 QEMU 运行汇编程序、调试操作系统内核,或测试完整的虚拟机镜像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值