RISC-V 作为新兴架构,在 QEMU 新版本中常有新特性和 bug 修复,而系统包管理器中的版本选择较为保守,在我目前使用的系统 Ubuntu 24.04.3 LTS 中,apt 包管理器安装的 QEMU 版本为 8.2.2,而 QEMU 官网中已经以源代码形式发布了最新版 10.1.1(2025-10-08 发布),所以需要使用源代码编译安装。
QEMU 编译安装非常简单,也有较为详细的官方文档(QEMU Building Guide)可供参考,本文仅作为备忘供我需要时直接复制命令。
1 编译前准备
参考:
docs/devel/build-system.txt- QEMU Building Guide
1 | sudo apt update |
2 编译安装命令
1 | # 下载解压源码包 |
安装后可以设置用户环境变量便于使用,在 ~/.bashrc 活 ~/.zshrc 文件中添加:
1 | export PATH="$HOME/.local/qemu-10.1.1/bin:$PATH" |
编译后可以删除 build 目录,如不需要再次编译,可以直接删除整个源代码目录
1 | rm -rf qemu-10.1.1 |
3 参数简要说明
--target-list:指定要编译的 QEMU 架构和模式,只编译需要的目标平台可以减少编译时间。riscv64-softmmu:指定编译支持 RISC-V 64 位架构的系统级仿真(softmmu,模拟整个硬件和操作系统)。riscv64-linux-user:指定编译支持 RISC-V 64 位架构的 Linux 用户态仿真(linux-user,只模拟用户态程序)。riscv32-*:(可选)一些开源内容使用 RISC-V 32 位架构以简化代码,如果想不做修改就运行这些项目需要使用支持 32 位架构的 QEMU。
--prefix:设定安装的目标路径。编译安装(make install)后,所有的二进制、库文件、配置文件都会安装到这个目录下,便于多版本管理。--enable-slirp:启用 slirp 用户态网络后端。slirp 是 QEMU 用于仿真网络的一种方法,允许虚拟机通过宿主机访问外部网络,以后如果需要在 QEMU 中运行 openEuler 这种大型 Linux 系统,可能会用到。
slirp 暂时未用到,相关内容在需要时补充,参考:QEMU Doc Networking