【QEMU】如何拉起arm版并且支持kvm模式的QEMU

从0开始拉起一个arm版并且支持kvm硬件加速的qemu

在arm上编译qemu并验证结果

  • 编译qemu
step 1: git clone https://gitcode.com/openUBMC/qemu.git
step 2: mkdir build & cd build
step 3:
 ../configure \
 	   --target-list=aarch64-softmmu \
 	   --enable-kvm \
 	   --disable-docs \
 	   --disable-werror
step 4: ninja -j"$(nproc)" qemu-system-aarch64
  • 验证编译结果
 	 ./qemu-system-aarch64 -accel help
 	 ./qemu-system-aarch64 -machine help | grep hi1711
 	 grep -E 'CONFIG_ARM_GIC_KVM|CONFIG_OPENUBMC_HI1711' \
 	   aarch64-softmmu-config-devices.mak
 	 ```
 	 
 	 预期输出包含:
 	 
 	 ```text
 	 Accelerators supported in QEMU binary:
 	 kvm
 	 tcg
 	 
 	 hi1711               Hi1711 Boards (Cortex-A55)
 	 CONFIG_ARM_GIC_KVM=y
 	 CONFIG_OPENUBMC_HI1711=y
 	 CONFIG_OPENUBMC_HI1711_BOARD=y

在manifest里面拉起qemu

  • 修改相关代码,新增kvm使能
    在~/manifest/build/works/packet/qemu_shells/vemake_1711.py 中,启动脚本处新增:
- machine hi1711,kvm

- machine 启动参数有两处,全部都要改,新增kvm使能

  • 拉起qemu
    运行vemake_1711.py脚本,自动下载cpio包等配套设施,并且在下载完了之后,ctrl+c停止运行,使用第一步生成的qemu-system-aarch64 (arm版本) 替换
~/manifest/temp/qemu_temp/qemu_start_temp

中的qemu-system-aarch64-release 编译产物(这个远程下载的是x86的),替换了之后记得重新命名为qemu-system-aarch64-release,然后重新运行vemake_1711.py即可重新拉起在arm下支持kvm加速的QEMU,并进行后续的操作

1 个赞