使用QEMU(x86)模拟运行ARM64架构的 Jailhouse 并调试

Jiaming
操作系统领域优质创作者
博客专家认证
2023-05-08 17:08:30

预备知识:使用QEMU(x86)模拟运行ARM64架构并进行内核调试

在 QEMU 虚拟机(x86)中模拟运行 ARM64
内核:来自 jailhouse-images(rpi4、qemu)
文件系统:使用 busybox 制作

目录

  • 根文件系统的修改使用方式
  • 使用 QEMU 调试 Jailhouse
  • 非原生内核编译 Jailhouse 出错
  • tools/jailhouse 工具 not found ... 问题
  • jailhouse.bin failed with error -2
  • request_mem_region failed ...
  • jailhouse enable 成功后立刻挂掉

根文件系统的修改使用方式

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/

使用 QEMU 调试 Jailhouse

非原生内核编译 Jailhouse 出错

在原生树莓派内核(5.4.16)下可以正常编译 Jailhouse

在这里插入图片描述

指定 qemu 内核之后,编译 Jailhouse 出错。并且在树莓派上替换 qemu 内核后,编译 Jailhouse 依然出错。

在这里插入图片描述


解决方法:在 QEMU 中启动时,使用树莓派内核以及在树莓派中编译运行成功的 Jailhouse。

tools/jailhouse 工具 not found ... 问题

在这里插入图片描述

解决方法:使用静态编译 Jailhouse tools 方法,在 jailhouse/tools/Makefile 中添加 -static 参数:

在这里插入图片描述

jailhouse.bin failed with error -2

在这里插入图片描述

解决方法:拷贝 jailhouse/hypervisor/jailhouse.binlinux_rootfs/lib/firmware/ 中。

request_mem_region failed ...

在这里插入图片描述


解决方法:添加内核启动参数:mem=768M

jailhouse enable 成功后立刻挂掉

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 方式,待后续...

...全文
422 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

20

社区成员

发帖
与我相关
我的任务
社区描述
Jailhouse是一个Siemens 在 GPLv2 协议下发布的针对工业级应用程序的小型分区型 Hypervisor,本社区旨在提供Jailhouse相关知识分享/帮助,欢迎加入!
车载系统嵌入式硬件linux 技术论坛(原bbs) 甘肃省·兰州市
社区管理员
  • Jia ming
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

尊敬的Jailhouse社区/论坛成员:

Jailhouse Hypervisor 是一款非常优秀且广泛使用的工具,它能够帮助用户实现对虚拟机的精细化管理和便捷操作。我们相信,在这个社区/论坛上,我们能够一起分享 Jailhouse 的使用经验和技巧,相互学习和提高。

以下是一些我们希望在这个社区/论坛上看到的内容:

  1. 内容分享。您可以分享您在Jailhouse中使用到的有趣功能、技巧或者经验,以及您对Jailhouse的看法和想法等;您可以在这里谈论Jailhouse相关的技术问题,例如虚拟机管理程序的工作原理、性能优化、安全性等;您可以在这里分享Jailhouse的使用教程、脚本和插件等。
  2. 问题求助及意见建议。如果您遇到了Jailhouse相关的问题,您可以在这里寻求帮助和解决方案。
  3. 社区活动。您可以在这里组织与Jailhouse相关的活动,例如线下聚会、技术交流会等。

我们希望这个社区/论坛能够成为大家交流和学习的平台,共同推动Jailhouse技术的发展和进步。如果您有任何建议或者意见,欢迎随时联系我们 — Jiaming

谢谢!

试试用AI创作助手写篇文章吧