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

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

23

社区成员

发帖
与我相关
我的任务
社区描述
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创作助手写篇文章吧