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

...全文
1459 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文提供了电力系统潮流计算与风能、光伏、水电等多类型分布式电源接入IEEE33节点配电网系统的Matlab代码实现方案,系统涵盖了含分布式电源(DG)的潮流建模、多能源出力特性模拟、无功优化、分布式电源选址定容、储能配置及经济调度等关键技术环节。通过构建标准化IEEE33节点测试系统,实现了高比例可再生能源接入下的潮流分析与优化调度仿真,并结合遗传算法、粒子群优化等智能优化算法,解决配电网中的电压越限、网损增加、功率波动等问题,提升系统的运行稳定性、经济性与清洁能源消纳能力。文中还包含多场景仿真分析与数据可视化,为综合能源系统与智能配电网研究提供完整的算法支持与技术路径。; 适合人群:具备电力系统分析基础和Matlab编程能力的高校研究生、科研人员,以及从事新能源并网、配电网规划与优化、智能电网运行等相关工作的工程技术人员。; 使用场景及目标:①用于教学与科研中对含高渗透率可再生能源的配电网潮流特性进行仿真分析与验证;②支撑毕业设计、科研课题或工程项目中对分布式电源接入影响的评估与优化策略开发;③为无功优化、可靠性提升、低碳调度等实际工程问题提供算法验证与仿真平台。; 阅读建议:建议读者结合IEEE33标准节点系统拓扑图进行代码调试与参数设置,重点关注潮流计算模块与优化算法的接口逻辑设计,同时可借助YALMIP、CPLEX等优化工具包增强建模能力,并通过调整电源接入位置、负荷水平与天气场景,拓展至不同运行工况与更大规模系统的仿真研究。
内容概要:本文系统介绍了用于确定分数阶系统(FOS)Lyapunov指数谱的Matlab代码实现方法,重点涵盖分数阶Lorenz系统、4D分数阶Chen系统和分数阶Duffing振荡器三类典型的非线性动力学系统。通过数值计算Lyapunov指数谱,可有效识别系统的混沌行为、判断动力学稳定性,并为分数阶系统的分岔分析、混沌控制与同步提供关键理论支持。文中详细阐述了算法实现的核心原理,包括分数阶微分方程的数值积分方法(如Adams-Bashforth-Moulton)、Jacobi矩阵的构造与演化、正交化过程及Lyapunov指数的收敛计算,并提供了结构清晰、可直接运行与修改的Matlab代码框架,有助于用户深入理解与实践相关理论。; 适合人群:具备一定非线性动力学系统理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别适用于从事混沌系统理论、分数阶微积分建模、复杂系统动力学分析等相关领域研究的专业人士。; 使用场景及目标:① 分析和判定分数阶非线性系统的混沌特性与稳定性;② 精确计算多种分数阶动力学模型的Lyapunov指数谱;③ 为分数阶系统的控制策略设计、同步技术开发及参数优化提供定量分析基础;④ 支持高校与科研机构在非线性科学课程教学与科研项目中进行混沌现象的可视化展示与定量研究。; 阅读建议:学习者应在掌握分数阶微积分和Lyapunov指数基本理论的前提下,结合文中的算法原理深入理解代码逻辑,通过调试不同系统参数来观察其对Lyapunov指数谱的影响,并鼓励将该方法迁移至其他自定义的分数阶模型中进行验证与拓展应用。

24

社区成员

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