searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

x86平台下使用QEMU实现ARM系统模拟

2023-06-02 02:10:07
231
0

实践环境及准备:

宿主机 系统ctyunos release 2.0.1 , 内核版本4.19.90-2102.2.0.0062.ctl2.x86_64
qemu 

QEMU emulator version 7.0.0

aarch64镜像 ctyunos-aarch64-20220523093214.qcow2

 

备注:

编译qemu时可以以--target-list 参数指定需要的架构,若未指定,该参数默认为ALL,即均支持。若编译时未支持aarch64版本的话就不会有对应的qemu-system-aarch64 二进制。

 

 

创建虚拟机

 

一个基于QEMU搭建基础的ARM系统的指令如下:

 

#!/bin/bash
/var/qemu-7.0.0/bin/qemu-system-aarch64 \
        -m 128G \
        -bios /var/qemu-7.0.0/share/qemu/edk2-aarch64-code.fd \
        -object memory-backend-file,id=mem0,size=128G,mem-path=/dev/hugepages,share=on,prealloc=yes \
        -numa node,memdev=mem0 \
        -machine virt,gic-version=3 \
        -cpu cortex-a57 \
        -smp 96,sockets=8,cores=12,threads=1 \
        -drive file=/var/wanglei7/ctyunos-aarch64.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=writeback \
        -device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
        -vnc :0 \
        --nographic

 

 

关键参数解释:

-m 设置内存大小。

-bios 设置启动arm系统所需的 UEFI固件文件所在路径。

-object 该行指定了虚机所使用大页路径。

-machine virt 设置机器型号为QEMU 7.0 ARM Virtual Machine,不同的机器型号所支持的cpu数不同。同时针对virt类型,通过gic-version指定ARM通用中断控制器GIC的版本,默认v2版本只支持最多8个CPU,v3版本支持最多512个CPU。

-smp 设置CPU核数。

--nographic 设置为无图像模式。

 

注意事项:

machine及cpu需在aarch64所支持的版本列表中,该支持列表可使用如下命令查询

qemu-system-aarch64 -machine ?
qemu-system-aarch64 -cpu ?

 

 

 

0条评论
0 / 1000