搭建QEMU+ARM64+Ubuntu模拟环境

QEMU是一个强大的模拟器,可以模拟各种CPU裸机,也可以模拟包括CPU在内的一些系统级组件。QEMU和KVM结合,还可以在主机上运行性能接近主机的虚拟机。

本文记录了我在Ubuntu 18.04上用QEMU搭建ARM64+Ubuntu20.04虚拟机的过程。

1. 安装aarch64交叉编译环境
 

sudo apt install gcc-aarch64-linux-gnu

Ubuntu18.04上安装的arm64编译器版本为7.5.0

2. 编译Linux内核
下载Linux kernel 5.10.146代码
 

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.146.tar.xz
tar xf linux-5.10.146.tar.xz
cd linux-5.10.146
make ARCH=arm64 defconfig O=../build/ CROSS_COMPILE=aarch64-linux-gnu-
make ARCH=arm64 Image O=../build/ CROSS_COMPILE=aarch64-linux-gnu-

产生的内核文件位于../build/arch/arm64/boot/Image

3. 编译QEMU
由于Ubuntu18.04上安装的QEMU版本过低,运行5.10.146的内核会出现以下错误

rom: requested regions overlap (rom bootloader. free=0x0000000041e5c200, addr=0x0000000040000000)
qemu-system-aarch64: rom check and register reset failed

因此只能考虑编译最新的QEMU,我下载了最新的QEMU 7.1.0

git clone https://gitlab.com/qemu-project/qemu.git
mkdir build
./configure
make -j16
sudo make install

qemu最新版本会默认安装到/usr/local/bin,其中需要用到的是/usr/local/bin/qemu-system-aarch64

4. 执行QEMU

我们选择QEMU支持的ARM平台中的virt平台,它不对应任何实际的板子,主要的外设都是用virtio设备模拟,但是对于研究Linux内核和Ubuntu系统,virt平台已经足够使用

执行以下命令,可以看到刚才编译的5.10.146 arm64内核可以在virt上启动起来,但是由于没有设置rootfs,所以最后内核会panic

qemu-system-aarch64 -ke
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值