通过元层覆盖 Yocto 类
Overwriting Yocto Classes through meta-layer
感谢您的时间和支持
我打算使用 swupdate 进行更新。所以,我需要创建一个额外的分区,我需要在其中存储恢复分区。
poky/meta/classes/image-live.bbclass
是class,它创建分区并刷新根文件系统。我已经更新了上面的文件以创建一个分区并存储 swupdate 根文件系统。
如何在我自己的 BSP 层中覆盖此 class,我不想触及 poky 源代码..
通常在 Yocto 中无法像 那样覆盖 .bbclass 文件。 bb 文件(使用 .bbappend),存档需要复制整个 class 文件并移动到另一层,我能够管理它使用此配置:
层结构:
$ 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
layer meta-test/ below meta/ in conf/bblayers.conf:
$ 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)
2012 年在 yocto 邮件组上讨论过:
https://lists.yoctoproject.org/pipermail/yocto/2012-January/004379.html
仅创建与 astor555 所写相同的 class 和重新排序层。您的 BSP 层将首先 parsed/used。
另一种选择是将原始 image-live.bbclass
复制到您自己现有的图层中,并将其重命名为有意义的名称 (my-image-live.bbclass
),然后在您需要的地方简单地继承它,如 inherit my-image-live
感谢您的时间和支持
我打算使用 swupdate 进行更新。所以,我需要创建一个额外的分区,我需要在其中存储恢复分区。
poky/meta/classes/image-live.bbclass
是class,它创建分区并刷新根文件系统。我已经更新了上面的文件以创建一个分区并存储 swupdate 根文件系统。
如何在我自己的 BSP 层中覆盖此 class,我不想触及 poky 源代码..
通常在 Yocto 中无法像 那样覆盖 .bbclass 文件。 bb 文件(使用 .bbappend),存档需要复制整个 class 文件并移动到另一层,我能够管理它使用此配置:
层结构:
$ 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
layer meta-test/ below meta/ in conf/bblayers.conf:
$ 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)
2012 年在 yocto 邮件组上讨论过: https://lists.yoctoproject.org/pipermail/yocto/2012-January/004379.html
仅创建与 astor555 所写相同的 class 和重新排序层。您的 BSP 层将首先 parsed/used。
另一种选择是将原始 image-live.bbclass
复制到您自己现有的图层中,并将其重命名为有意义的名称 (my-image-live.bbclass
),然后在您需要的地方简单地继承它,如 inherit my-image-live