基于ARM64的Qemu/KVM学习环境搭建2

简介: 基于ARM64的Qemu/KVM学习环境搭建2

基于ARM64的Qemu/KVM学习环境搭建中介绍了搭建环境的方法。

使用新的Qemu版本:qemu-8.0.0

#!/bin/bash
../configure --prefix=`pwd` \
        --target-list=x86_64-softmmu,aarch64-softmmu \
        --enable-virtfs \
        --enable-kvm \
        --enable-sdl \
        --enable-slirp

运行模式

ARMv8运行虚拟机有两种模式,一种是Hyp mode,一种是VHE mode。

VHE是ARMv8.1引入的,如果要使用VHE模式,需要使用支持这个特性的CPU。ARM官网提供了[不同Cortex-A系列的处理器特性对比](Arm Cortex-A Processor Comparison Table "不同Cortex-A系列的处理器特性对比")。

使用Hyp Mode

Cortex-A72或者A53等:

sudo /home/pengdl/work/qemu-8.0.0/build/aarch64-softmmu/qemu-system-aarch64 \
        -M virt,gic-version=3,virtualization=on,type=virt \
        -cpu cortex-a72 \
        -nographic \
        -m 8G \
        -smp 8 \
        -kernel /home/pengdl/work/Qemu/arm64/$kernel/arch/arm64/boot/Image \
        -append "noinitrd root=/dev/vda rootfstype=ext4 rw console=ttyAMA0 crashkernel=256M" \
        -fsdev local,security_model=passthrough,id=fsdev0,path=/home/pengdl/work/Qemu/arm64/share \
        -device virtio-9p-pci,id=fs1,fsdev=fsdev0,mount_tag=hostshare \
        -drive if=none,format=qcow2,file=/home/pengdl/work/Qemu/arm64/ubuntu20.qcow2,id=hd0 \
        -device virtio-blk-device,drive=hd0 \
        -netdev user,id=eth0,hostfwd=tcp::8080-:22 -device virtio-net-device,netdev=eth0 \
        -nographic

可以看到启动日志里有如下内容:

[    2.341397] kvm [1]: Hyp mode initialized successfully

使用VHE mode

使用Cortex-A76,实现了ARMv8.2扩展:

sudo /home/pengdl/work/qemu-8.0.0/build/aarch64-softmmu/qemu-system-aarch64 \
        -M virt,gic-version=3,virtualization=on,type=virt \
        -cpu cortex-a76 \
        -nographic \
        -m 8G \
        -smp 8 \
        -kernel /home/pengdl/work/Qemu/arm64/$kernel/arch/arm64/boot/Image \
        -append "noinitrd root=/dev/vda rootfstype=ext4 rw console=ttyAMA0 crashkernel=256M" \
        -fsdev local,security_model=passthrough,id=fsdev0,path=/home/pengdl/work/Qemu/arm64/share \
        -device virtio-9p-pci,id=fs1,fsdev=fsdev0,mount_tag=hostshare \
        -drive if=none,format=qcow2,file=/home/pengdl/work/Qemu/arm64/ubuntu20.qcow2,id=hd0 \
        -device virtio-blk-device,drive=hd0 \
        -netdev user,id=eth0,hostfwd=tcp::8080-:22 -device virtio-net-device,netdev=eth0 \
        -nographic

也可以写成-cpu max

可以从启动日志中看到:

[    2.444577] kvm [1]: VHE mode initialized successfully

GDB

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
4月前
|
缓存 安全 程序员
【ARM学习】Cortex- A系列程序员学习指南
【ARM学习】Cortex- A系列程序员学习指南
222 0
|
18天前
|
Ubuntu KVM 虚拟化
基于ARM64的Qemu/KVM学习环境搭建
基于ARM64的Qemu/KVM学习环境搭建
|
22天前
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
76 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
|
16天前
|
Ubuntu NoSQL Linux
在Ubuntu上用Qemu模拟ARM版本的Fedora39
在Ubuntu上用Qemu模拟ARM版本的Fedora39
|
17天前
|
Go 开发工具 git
在Qemu+ARM上运行Minix3内核
在Qemu+ARM上运行Minix3内核
|
4月前
|
存储 算法 Linux
内存系列学习(五):ARM处理器中的Cache和Write Buffer
内存系列学习(五):ARM处理器中的Cache和Write Buffer
189 0
内存系列学习(五):ARM处理器中的Cache和Write Buffer
|
4月前
|
缓存 算法
内存系列学习(七):ARM处理器的快速上下文切换技术
内存系列学习(七):ARM处理器的快速上下文切换技术
119 0
|
4月前
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
297 0
|
4月前
|
存储 缓存 Linux
内存系列学习(三):ARM处理器地址变换过程
内存系列学习(三):ARM处理器地址变换过程
115 0
|
4月前
|
存储 缓存 算法
内存系列学习(二):ARM处理器中CP15协处理器
内存系列学习(二):ARM处理器中CP15协处理器
101 0