通过元层覆盖Yocto类

时间:2018-06-23 16:08:57

标签: linux embedded-linux yocto bsp

感谢您的时间和支持

我计划使用swupdate进行更新。因此,我需要创建一个额外的分区,其中需要存储恢复分区。

poky/meta/classes/image-live.bbclass

是创建分区并刷新根文件系统的类。我已经更新了上面的文件,以创建另一个分区并存储swupdate根文件系统。

如何在我自己的BSP层中重写该类,我不想触碰一些拙劣的源代码。

3 个答案:

答案 0 :(得分:6)

通常在 Yocto 中,无法像 .bb 文件一样使用 .bbappend 覆盖 .bbclass 文件。 em>),以存档需要复制整个类文件并移至另一层的方式,我能够使用以下配置进行管理:

层结构:

$ tree ../meta-test/
../meta-test/
├── classes
│   └── image-live.bbclass
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-example
    └── example.bb

3 directories, 5 files
example.bb 食谱的

内容:

$ cat ../meta-test/recipes-example/example/example.bb 
LICENSE = "CLOSED"
inherit image-live

最后是非常重要的事情* ,需要按以下顺序配置配置文件 conf / bblayers.conf 元/ 层上方:

$ tail -n6 conf/bblayers.conf 
BBLAYERS ?= " \
  /home/user/poky/meta-test \
  /home/user/poky/meta \
  /home/user/poky/meta-poky \
  /home/user/poky/meta-yocto-bsp \
  "

$ bitbake -e example -D | grep ^DEBUG:\\sInheriting\\s.*image-live.bbclass\\s\(from
DEBUG: Inheriting /home/user/poky/meta-test/classes/image-live.bbclass (from /home/user/poky/meta-test/recipes-example/example/example.bb:3)

*我不知道为什么bitbake layer priority在这里不起作用,仅通过修改 conf / bblayers.conf 中的排序层才能实现主要目标:

$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer                 path                                      priority
==========================================================================
meta                  /home/user/poky/meta        5
meta-test             /home/user/poky/meta-test   10
meta-poky             /home/user/poky/meta-poky   5
meta-yocto-bsp        /home/user/poky/meta-yocto-bsp  5
conf / bblayers.conf 中的 meta / 下面的

meta-test / 层:

$ tail -n6 conf/bblayers.conf 
BBLAYERS ?= " \
  /home/user/poky/meta \
  /home/user/poky/meta-test \
  /home/user/poky/meta-poky \
  /home/user/poky/meta-yocto-bsp \
  "    

$ bitbake -e example -D | grep ^DEBUG:\\sInheriting\\s.*image-live.bbclass\\s\(from
DEBUG: Inheriting /home/user/poky/meta/classes/image-live.bbclass (from /home/user/poky/meta-test/recipes-example/example/example.bb:3)

答案 1 :(得分:1)

它是在2012年由yocto邮件小组讨论的: https://lists.yoctoproject.org/pipermail/yocto/2012-January/004379.html

仅创建与astor555相同的类并重新排序图层。首先将解析/使用您的BSP层。

答案 2 :(得分:0)

另一种选择是将原始image-live.bbclass复制到您自己的现有图层中,并将其重命名为有意义的名称(my-image-live.bbclass),然后在需要的地方简单地以inherit my-image-live