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 编译前准备

参考:

1
2
3
4
5
6
7
8
9
10
11
sudo apt update

# 必须软件包
sudo apt install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build

# 推荐软件包
sudo apt install -y libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libbz2-dev \
libcap-ng-dev libcurl4-gnutls-dev libgtk-3-dev libxen-dev liblzo2-dev libssh-dev librbd-dev \
libibverbs-dev libjpeg8-dev libncurses5-dev libnuma-dev libvdeplug-dev libvte-2.91-dev \
librdmacm-dev valgrind xfslibs-dev git-email libsasl2-dev libsdl2-dev libseccomp-dev \
libvde-dev libsnappy-dev libnfs-dev libiscsi-dev

2 编译安装命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 下载解压源码包
wget https://download.qemu.org/qemu-10.1.1.tar.xz
tar xf qemu-10.1.1.tar.xz
cd qemu-10.1.1

# 创建存放编译临时文件的目录
mkdir build && cd build

# 设置编译选项
../configure --target-list=riscv64-softmmu,riscv64-linux-user,riscv32-softmmu,riscv32-linux-user --prefix=/home/ubuntu/.local/qemu-10.1.1 --enable-slirp

# 编译
make -j$(nproc)

# 将可执行文件安装到 --prefix 指定的路径
make install

安装后可以设置用户环境变量便于使用,在 ~/.bashrc~/.zshrc 文件中添加:

1
2
3
export PATH="$HOME/.local/qemu-10.1.1/bin:$PATH"
# check
which qemu-system-riscv64

编译后可以删除 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


本站由 @gsh1209 使用 Stellar 主题创建
Copyright © 2023 - CuriosityNotes.DEV
Favicon图标来自 @ChenCJ
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处
正在计算运行时间...