20
社区成员
预备知识:使用QEMU(x86)模拟运行ARM64架构并进行内核调试
在 QEMU 虚拟机(x86)中模拟运行 ARM64
内核:来自 jailhouse-images(rpi4、qemu)
文件系统:使用 busybox 制作
sudo mount busybox-1.29.0-rootfs_ext4.img rootfs/
sudo cp -raf something rootfs/
sudo umount rootfs
添加 jailhouse tools 搜索路径:
sudo vim /etc/profile
export PATH=$PATH:/usr/local/sbin/
在原生树莓派内核(5.4.16)下可以正常编译 Jailhouse
指定 qemu 内核之后,编译 Jailhouse 出错。并且在树莓派上替换 qemu 内核后,编译 Jailhouse 依然出错。
解决方法:使用静态编译 Jailhouse tools 方法,在 jailhouse/tools/Makefile
中添加 -static
参数:
解决方法:拷贝 jailhouse/hypervisor/jailhouse.bin
到 linux_rootfs/lib/firmware/
中。
mem=768M
。
qemu 启动命令: qemu-system-aarch64 -m 1024 -cpu cortex-a57 -smp 16 -machine virt,gic-version=3,virtualization=on -kernel Image.rpi4 -append "console=ttyAMA0 root=/dev/vda init=/linuxrc rw mem=768M" -hda busybox-1.29.0-rootfs_ext4.img -monitor stdio
使用 qemu-arm64.cell。
可能原因:使用支持树莓派启动 Jailhouse 的内核,非 QEMU 版本(支持Jailhouse)的内核(在该内核下编译 Jailhouse 出错)。
接下来准备使用 KGDB 方式,待后续...