前言
上篇 ubuntu22.04搭建QEMU运行环境
已经搭好了qemu环境,这篇来使用下
使用virt板卡
这个是qemu官方的aarch64板子,他自己会生成设备树
(说到设备树这个东西真头疼啊,我是不会配,只会用现成的,然后qemu又找不到现成可用的aarch64板子——唯一一个还是aspeed公司的ast2700板卡,使用cortex-a35;但是这个板子是最近几天才提交的,我没跑起来,那还是用virt吧)
编译内核
下载内核
想下其他版本也可以,但是linux6.x里有对virt的适配
make config
按照我上篇 ubuntu22.04搭建QEMU运行环境 文章搭建环境的话这里是没有什么问题的
直接make defconfig
再make virt.config
然后还需要一步
make menuconfig
把ram disk支持打开,不然一会qemu刚跑起来就挂了
运行
进入到qemu的build/aarch64-softmmu目录下
../qemu-system-aarch64 \
-nographic \
-M virt \
-cpu cortex-a55 \
-smp 4 \
-m 1G \
-kernel Image \
-append "root=/dev/ram0 console=ttyAMA0 init=/linuxrc ignore_loglevel nokaslr" \
-L /home/kirin7/qemu/qemu-8.1.5/pc-bios
(注:这个ttyAMA0是pl011驱动默认使用的设备)
执行
(如果报错说找不到rom文件的话就把那行注释也加上(路径改成你的))
注:arm系统在bootloader之后启动的三件套
设备树、内核、initrd
这里我们只用了内核,initrd还没做,设备树用的virt默认的
运行结果:
启动咯!
寄咯
(因为没挂initrd)
做initrd的内容下次再写