0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Petalinux工具链帮助创建一个最小的Xen系统

XILINX开发者社区 来源:XILINX开发者社区 作者:AMD 赛灵思开发者 2022-10-14 10:19 次阅读

问题背景:

在使用 Xen dom0-less 的时候,会有一个问题产生: 可以用 'xl' 命令 boot 起来的 image,在 dom0-less 的情况下却 boot 不起来。

是否有参考例子可以用 Petalinux 工具链帮助创建一个最小的 Xen 系统?

是否有参考例子可以指导创建一个可以在 dom0_less下boot 起来的最小 DomU Linux image?

解决方案:

用下面两个 kconfig 选项在任何 ARM64 Linux kernel 下都可以生成 dom0less kernel:

4e77a700-4aef-11ed-a3b6-dac502259ad0.png

在 Petalinux kernel 下只需简单用下面这条命令来配置上述两项:

4e8b44cc-4aef-11ed-a3b6-dac502259ad0.png

打开配置界面:

4e9fcb2c-4aef-11ed-a3b6-dac502259ad0.png

选择这两个:

4ebf9588-4aef-11ed-a3b6-dac502259ad0.png

关于 rootfs,任何的 INITRD ("Image Packaging Configuration" -> "Root filesystem type" -> "INITRD") 都可以,没有特殊的要求。当然,越小越好,所以本文建议尽量去掉 rootfs 中的你认为不必要的东西,不需要 Xen 来支持dom0less domU rootfs 或 kernel,所以将其去掉以节省字节空间。

制作好 kernel 和 rootfs 后,就可以用 ImageBuilder 来创建一个可以 boot 的脚本 boot.scr

这里可以看到 dom0less DomU kernel 和 rootfs 的配置用了NUM_DOMUS=1, DOMU_KERNEL[0] 和 DOMU_RAMDISK[0],关于 MMC 的例子(也适用于其它的应用)

从 Petalinux 2019.1开始且没有修改 xen,比起手动编辑 xen.dtb,使用 ImageBuilder 更不容易出错。

假设 dom0 正在为您引导,那么此次将跳过 dom0 的指令。假设 “xen-Image” 是 dom0 的内核,“xen-root .cpio.gz” 是 dom0 的 rootfs。(可以从预构建的 2019.1 获取 xen-root .cpio.gz,方法是: dd if=xen-root .cpio.gz。U-boot =xen-root .cpio.gz bs=64 skip=1)

另外,作为一种快捷方式,本文没有提供关于如何使用 Petalinux 2019.1 构建 Xen 2021.2 的说明,而是直接从预构建的 2021.2 中获取 Xen 管理程序二进制文件:

4ee19228-4aef-11ed-a3b6-dac502259ad0.png

然后修改下面的 ImageBuilder配置文件 "xen.cfg":

4f03dacc-4aef-11ed-a3b6-dac502259ad0.png

正如您所看到的,我们还需要提供 “Image-domU” 和 “xen-rootfs-domU.cpio.gz”,它们是 domU 的内核和 ramdisk。

domU rootfs
===========
关于rootfs(用root权限):

4f3130f8-4aef-11ed-a3b6-dac502259ad0.png

增加:

4f620a5c-4aef-11ed-a3b6-dac502259ad0.png

需要这个的原因是一个 dom0less domU isttyAMA0 (不是 ttyPS0 )的控制台,所以需要在 etc/inittab 中添加一个 getty ttyAMA0 行。

domU kernel
===========
对于 domU 内核,以下步骤应该是足够的:

4f7eed20-4aef-11ed-a3b6-dac502259ad0.png

增加:

4f9f5402-4aef-11ed-a3b6-dac502259ad0.png

如果您对上面的命令有问题(已经看到它在这里的几个 Ubuntu 工作站崩溃),可以通过以下步骤实现相同的事情,在 sourcing 2019.1 tools/settings.sh 之后:

4fb34d0e-4aef-11ed-a3b6-dac502259ad0.png

ImageBuilder
============
最后,我们

运行 imagebuilder 如下:

4fe7aebe-4aef-11ed-a3b6-dac502259ad0.png

生成 uboot 脚本 xen_boot.scr, 在 0xC00000 地址加载:

500f2c78-4aef-11ed-a3b6-dac502259ad0.png

然后用如下命令开始运行系统:

503002d6-4aef-11ed-a3b6-dac502259ad0.png

之后可以看到两个 domains 开始运行了,并且可以通过 Ctrl-AAA 来在它们之间切换。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361823
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26920
  • MMC
    MMC
    +关注

    关注

    0

    文章

    71

    浏览量

    30344
  • rootfs
    +关注

    关注

    0

    文章

    19

    浏览量

    4634

原文标题:开发者分享|嵌入式 Xen dom0-less 解决方案

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在PetaLinux流程外创建模块

    PetaLinux 是一个强大的实用工具,支持设计人员轻松创建 Linux 镜像并在自己的目标平台上运行。PetaLinux 还能创建带有模
    发表于 09-28 11:01 829次阅读

    【Artix-7 50T FPGA试用体验】Petalinux安装教程

    。然后在/opt目录下创建petalinux安装路径/opt/pkg/petalinux。最后进行p
    发表于 12-03 19:12

    【Artix-7 50T FPGA试用体验】基于官方BSP的PetaLinux工程创建

    是BSP文件的存放路径,由于本人利用虚拟机开发,所以路径是共享文件夹。这样就创建PetaLinux的工程(硬件工程在BSP中),可以开始Linux软件开发。其中工程文件结构如下:
    发表于 12-14 19:04

    petalinux是否可以PLB总线支持Microblaze系统

    创建项目。然后我成功地迁移了petalinux并且运行良好。 现在PLB总线用于EDK9.2。当我编译linux的内核时,会出现
    发表于 05-08 08:19

    如何使用ZCU102 Petalinux教程获取BSP?

    我正在尝试在ZCU102板上运行些Xilinx 10G'参考设计(XAPP1305),我想使用petalinux创建和部署linux,但不使用Xilinx为板提供BSP。我正在
    发表于 10-21 07:46

    如何在petalinux上运行精灵?

    你好,我petalinux配置PL比特流创建BOOT.bin。我使用xsdk创建linu
    发表于 05-01 14:45

    petalinux项目创建错误显示参数无效的解决办法?

    你好我尝试使用安装在ubuntu机器上的petalinux 2016.3创建项目。dev @ Archeopteryx:〜/ petalinx2016-3 $
    发表于 05-07 07:07

    无法下载petalinux怎么办

    适用于所有操作系统,但我无法安装?我也无法下载petalinux,所以租赁帮助我通过些说明如何下载和安装petalinux以及如何在ubi
    发表于 05-22 15:03

    什么是交叉编译工具

    ,就不得不了解交叉编译的相关问题。本文章中记录了下嵌入式linux所使用的交叉编译工具的相关基础说明,帮助回顾些基础知识。
    发表于 11-04 07:05

    Altium Designer软件绘制stm32最小系统的电路原理图

    Altium Designer软件绘制stm32最小系统的电路原理图1.创建stm32原理图库(1)在工程文件下
    发表于 11-25 08:57

    怎样使用petalinux工具去制作linux系统

    基于xilinx zcu102开发板我的开发板的xilinx zcu102开发板,使用xilinx公司提供的petalinux工具制作linux系统。当linux
    发表于 12-15 09:04

    如何在Petalinux创建Linux内核模块?

    创建内核模块 Petalinux可以帮助工程师简化内核模块的创建工作。在petalinux工程目录下,使用命令“
    的头像 发表于 03-02 11:10 3914次阅读

    如何创建PetaLinux项目

    电子发烧友网站提供《如何创建PetaLinux项目.zip》资料免费下载
    发表于 11-01 14:34 0次下载
    如何<b class='flag-5'>创建</b><b class='flag-5'>PetaLinux</b>项目

    PetaLinux工具文档:参考指南

    电子发烧友网站提供《PetaLinux工具文档:参考指南.pdf》资料免费下载
    发表于 09-15 11:48 0次下载
    <b class='flag-5'>PetaLinux</b><b class='flag-5'>工具</b>文档:参考指南

    PetaLinux工具文档

    电子发烧友网站提供《PetaLinux工具文档.pdf》资料免费下载
    发表于 09-15 10:43 0次下载
    <b class='flag-5'>PetaLinux</b><b class='flag-5'>工具</b>文档