【QEMU实战】在Kylin V10 X86_64宿主机上构建ARM64仿真环境:从源码编译到麒麟系统部署
2026/7/11 16:07:03 网站建设 项目流程

1. 为什么需要ARM64仿真环境

最近几年国产化替代浪潮席卷各行各业,很多单位开始将业务系统迁移到国产操作系统和国产芯片平台上。银河麒麟Kylin V10作为国产操作系统的代表之一,支持x86和ARM64两种架构。但现实情况是,很多开发者手头只有x86架构的电脑,想要测试ARM64环境下的软件兼容性就成了难题。

这时候QEMU就派上用场了。作为一款开源的硬件虚拟化工具,QEMU可以模拟包括ARM64在内的多种CPU架构。我在实际项目中就经常用它来搭建跨架构的测试环境,特别是在进行国产化软件适配时特别有用。比如最近要给某单位开发一个政务系统,需要在Kylin V10 ARM64上测试,但团队里没有ARM服务器,就是靠QEMU搭建的仿真环境完成的测试。

相比直接购买ARM服务器,使用QEMU仿真有几个明显优势:

  • 成本低:不需要额外购置硬件
  • 灵活:可以随时创建不同配置的虚拟机
  • 可复用:环境配置可以保存为镜像文件

不过要注意的是,仿真环境毕竟是通过软件模拟的,性能会比真机差一些。根据我的经验,在i7-10700的机器上仿真ARM64,性能大约是真机的30%-40%。但对于大多数功能测试来说已经够用了。

2. 环境准备

2.1 宿主机配置建议

我推荐使用Kylin V10 SP2 x86_64作为宿主机系统,这个版本对QEMU的支持比较完善。硬件配置方面:

  • CPU:建议4核以上,支持虚拟化技术(Intel VT-x或AMD-V)
  • 内存:至少8GB,建议16GB
  • 存储:需要50GB以上可用空间

在开始前,先更新系统:

sudo yum update -y

2.2 安装必要依赖

QEMU编译需要一堆开发工具和库,我整理了一个完整的依赖列表:

sudo yum install -y gcc gcc-c++ make ninja-build pixman pixman-devel \ libmount libmount-devel glib2 glib2-devel libtool flex bison \ clang zlib-devel libffi-devel python3-devel

特别注意,麒麟系统自带的GCC版本可能比较旧,建议升级到7.4.0以上。我之前写过一篇详细的GCC升级指南,可以参考:

sudo yum install -y devtoolset-9 scl enable devtoolset-9 bash

3. 编译安装QEMU 8.0.4

3.1 获取源码

直接从官网下载QEMU 8.0.4源码包:

wget https://download.qemu.org/qemu-8.0.4.tar.xz tar -xf qemu-8.0.4.tar.xz cd qemu-8.0.4

3.2 配置编译选项

创建一个单独的构建目录是个好习惯:

mkdir build && cd build

配置编译参数时,我通常会启用这些选项:

../configure --prefix=/usr/local/qemu \ --target-list=aarch64-softmmu \ --enable-virtfs \ --enable-kvm \ --enable-sdl \ --enable-gtk

解释几个关键参数:

  • --target-list=aarch64-softmmu:只编译ARM64仿真需要的组件
  • --enable-kvm:启用KVM加速(需要CPU支持)
  • --prefix:指定安装目录

3.3 编译和安装

开始编译前,建议先确认下CPU核心数:

nproc

然后用make并行编译,我一般用核心数*1.5的线程数:

make -j12

编译完成后安装:

sudo make install

最后把QEMU添加到PATH:

echo 'export PATH=/usr/local/qemu/bin:$PATH' >> ~/.bashrc source ~/.bashrc

4. 创建ARM64虚拟机

4.1 准备安装镜像

从麒麟官网下载ARM64版本的ISO镜像,我测试过Kylin-Server-V10-SP2-Release-Build09-20210524-aarch64.iso这个版本兼容性最好。

还需要准备UEFI固件文件:

wget https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd

4.2 配置虚拟网络

创建一个TAP设备实现网络连接:

sudo ip tuntap add tap0 mode tap sudo ip link set tap0 up sudo ip addr add 192.168.100.1/24 dev tap0

设置NAT转发:

sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE sudo iptables -I FORWARD -i tap0 -o ens33 -j ACCEPT sudo iptables -I FORWARD -i ens33 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT

4.3 创建虚拟磁盘

使用qcow2格式可以节省空间:

qemu-img create -f qcow2 kylin_arm64.qcow2 120G

4.4 启动安装程序

完整的启动命令如下:

qemu-system-aarch64 \ -m 4096 \ -cpu cortex-a72 \ -smp 4 \ -M virt \ -bios QEMU_EFI.fd \ -device virtio-net-device,netdev=net0 \ -netdev tap,id=net0,ifname=tap0,script=no \ -device nec-usb-xhci \ -device usb-kbd \ -device usb-mouse \ -device VGA \ -drive file=Kylin-Server-V10-SP2-Release-Build09-20210524-aarch64.iso,id=cdrom,media=cdrom \ -drive file=kylin_arm64.qcow2,id=hd0 \ -boot order=cd

安装完成后,去掉CDROM参数即可从硬盘启动:

qemu-system-aarch64 \ -m 4096 \ -cpu cortex-a72 \ -smp 4 \ -M virt \ -bios QEMU_EFI.fd \ -device virtio-net-device,netdev=net0 \ -netdev tap,id=net0,ifname=tap0,script=no \ -device nec-usb-xhci \ -device usb-kbd \ -device usb-mouse \ -device VGA \ -drive file=kylin_arm64.qcow2,id=hd0 \ -boot order=c

5. 常见问题解决

5.1 图形界面卡顿

如果发现图形界面响应慢,可以尝试:

  1. 增加内存到4GB以上
  2. 使用-display gtk代替默认的VGA
  3. 添加-accel kvm参数(需要宿主机支持)

5.2 网络连接问题

我遇到过虚拟机无法上网的情况,通常是因为:

  1. TAP设备没有正确配置
  2. iptables规则有误
  3. 虚拟机内没有配置静态IP

解决方法:

# 在虚拟机内配置静态IP ip addr add 192.168.100.2/24 dev eth0 ip route add default via 192.168.100.1

5.3 安装麒麟V10 SP3失败

有用户反馈安装SP3版本时会卡住,这是已知问题。建议:

  1. 使用SP2版本
  2. 尝试添加-machine virt,gic-version=3参数
  3. 检查ISO文件的MD5值是否完整

6. 性能优化技巧

经过多次实践,我总结出几个提升QEMU性能的方法:

  1. 启用KVM加速
qemu-system-aarch64 -accel kvm ...
  1. 使用多核CPU
-smp 4,cores=4,threads=1,sockets=1
  1. 调整内存分配
-m 4096,slots=2,maxmem=8G
  1. 使用virtio设备
-device virtio-blk-device,drive=hd0 \ -device virtio-net-device,netdev=net0
  1. 启用大页内存
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/hugepages,share=on \ -numa node,memdev=mem

在实际项目中,通过这些优化可以让ARM64虚拟机的性能提升2-3倍。特别是KVM加速,在我的i9-10900K上测试,性能提升能达到300%以上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询