XV6——运行make qemu时卡住问题

本人最近在做mit课程中的xv6操作系统内核实现,做lab1时发现make qemu运行卡住,一动不动。上网也找不到什么有用的解决方法。

问题直接上图(图片来自网络)

解决方案:

修改qemu版本,我使用的是qemu7.2.0,更换至低版本4.1.0就可以运行了。

sudo apt-get install build-essential pkg-config libboost-all-dev autoconf libtool libssl-dev flex bison ninja-build libglib2.0-dev    libpixman-1-dev libslirp-dev libncurses5-dev libncursesw5-dev

wget https://download.qemu.org/qemu-4.1.0.tar.xz

tar xvJf qemu-4.1.0.tar.xz

cd qemu-4.1.0/

./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu "

make -j$(nproc)

sudo make install

export PATH=$PATH:/opt/qemu/bin

qemu-system-riscv64 –version  查看版本

cd ..   返回上级目录,再看一次版本,检查是否环境配置好了
qemu-system-riscv64 --version

对你有帮助请点赞收藏下吧!

图片来自:xv6在make qemu 后卡住_服务器-优快云问答

### QEMU 卡住的原因及解决方法 #### 可能原因分析 QEMU 卡住的现象可能由多种因素引起,以下是常见的几种可能性及其对应的解决方案: 1. **编译内核方式不正确** 如果使用的内核版本较旧或者编译过程中存在问题,则可能导致 QEMU 启动失败并卡住。例如,在某些场景下,如果未按照目标平台的要求正确配置和编译内核,可能会导致无法正常加载操作系统环境[^1]。 2. **强制退出中断进程** 当 `make qemu` 或其他命令执行,如果没有等待相关调用完全执行完毕便强行终止程序(如直接关闭终端窗口),则下次启动可能出现异常状态。此可以尝试通过快捷键组合 `Ctrl+A`, 松开后再按 `X` 正常退出来恢复环境设置[^2]。 3. **BIOS 文件缺失或错误** 对于 ARM 架构而言,若未指定合适的 BIOS 文件 (`QEMU_EFI.fd`),也可能造成系统停留在引导阶段而无法继续初始化硬件资源。具体表现为始终停驻在 QEMU Monitor 页面上而不显示任何进一步操作提示信息[^3]。 4. **依赖库支持不足** 安装 QEMU 之前需确保所有必要的开发工具链均已准备齐全;否则即使成功构建了二进制文件,在实际运行期间仍会因为缺乏特定功能模块的支持而导致性能下降甚至崩溃现象发生。比如对于图形界面渲染部分就需要额外安装 SDL 库等相关组件才能正常使用其全部特性[^4]。 --- #### 推荐解决方案 针对以上提到的各种潜在问题,这里给出一些通用性的排查步骤以及相应的修复措施: - **升级至最新稳定版 QEMU** 确认当前所使用的 QEMU 版本是否已经过期,并考虑将其更新到至少 v3.x 的系列版本以获得更好的兼容性和稳定性改进效果。这一步骤通常能够有效缓解许多已知缺陷带来的困扰。 - **验证镜像文件完整性** 需仔细检查待加载的操作系统映像是否存在损坏情况。如果是从网络源获取而来的话,最好再次对比官方发布的校验码值来进行确认无误后再投入使用。 - **提供正确的固件选项** 根据不同处理器架构需求选取匹配类型的 EFI 固件作为辅助加载项传入给虚拟机实例化过程之中。例如针对 AArch64 平台来说,应当明确指明 `-bios ./QEMU_EFI.fd` 参数指向合法路径下的预置文件位置。 - **优化启动参数设定** 调整默认配置中的各项数值大小使之更加贴近真实物理设备规格标准有助于提升整体效率表现水平。下面展示了一个典型的用于测试目的的完整命令行范例供参考: ```bash qemu-system-aarch64 \ -M virt \ -cpu cortex-a72 \ -smp 8 \ -m 2G \ -nographic \ -kernel /path/to/vmlinuz \ -initrd /path/to/initramfs.cpio.gz \ -append "root=/dev/vda console=ttyS0 earlyprintk=uart" \ -drive file=./disk_image.qcow2,format=qcow2,if=virtio \ -net nic,model=virtio-net-pci \ -net user \ -serial mon:stdio \ -bios ./QEMU_EFI.fd ``` --- ### 注意事项 除了上述提及的技术层面调整之外,还需要注意日常维护习惯方面的一些细节之处以免引入不必要的麻烦。例如定期备份重要数据资料以防万一遭遇不可预见的风险事件影响业务连续性计划安排等。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值