对 yocto 相当陌生,我正在使用
meta-swupdate
生成 cpio 更新文件。该层将扫描 tmp/deploy/images
内的工件以构建 cpio。
我希望将编译后的可执行文件作为文件包含在 cpio 中。因此我需要将可执行文件复制到 tmp/deploy/images。
经过一番谷歌搜索后,我发现我可以使用可执行配方中的
deploy
类来制作副本,使用 addtask
并定义 do_deploy()
函数,我最终得到了可执行文件的副本!然而,可执行文件比应有的大小要大很多倍;这绝对不是最终出现的同一个文件 rootfs.tar.gz
如何告诉 yocto 将可执行文件的剥离版本复制到 tmp/deploy/images?
最后我找到了一个解决方法 - 尽管我认为这是一个黑客。 我查看了
image_types.bbclass
,能够创建一个新的 bbclass,基本上模仿 ext4
类的行为,除了它不是 .ext4
文件,它只是将我需要的内容复制到目录中。
然后我通过附加到 local.conf
和 IMAGE_CLASSES
将新文件系统添加到 IMAGE_FSTYPES
,最后根据通过附加到 IMAGE_DEPENDS
填充的新文件系统制作我的 swupdate 配方。
我最终在 tmp/deploy/images
中得到了一个新的文件系统,它只是一个包含我需要的文件的目录。