在内核模块配方中发送额外文件

时间:2016-05-09 14:14:50

标签: yocto bitbake openembedded

在构建out of tree kernel模块时,有没有办法可以发送更多文件?

我尝试过这样的事情:

FILES_${PN} += "${bindir}/my_program"
do_install_append() {
    install -d ${D}${bindir}
    install -m 0755 ${D}/my_program ${D}${bindir}/my_program
}

就像这样:

FILES_kernel-module-${PN} += "${bindir}/my_program"
do_install_append() {
    install -d ${D}${bindir}
    install -m 0755 ${D}/my_program ${D}${bindir}/my_program
}

但仍然抱怨:

ERROR: QA Issue: my-module: Files/directories were installed but not shipped in any package:
  /usr
  /usr/bin
  /usr/bin/my_program
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
my-module: 3 installed and not shipped files. [installed-vs-shipped]

3 个答案:

答案 0 :(得分:3)

这是非常常见的情况 - 您已经安装了额外的二进制文件,但它尚未添加到输出包中(已安装但尚未发货)。

解决方案应基于您需要添加到输出图像的文件类型。

检查此主题:2 step solution to ERROR: QA Issue: Files/directories were installed but not shipped

此外,如果您需要快速验证文件是否正确构建等,您可以在build / local.conf中添加此行(因为您已经安装了它们):

  

IMAGE_INSTALL + =" {binary_name}"

编辑:

除了以下OP的评论: 对不起我的误解,看起来你需要在你的食谱中继承 module.bbclass ,看看doc:Yocto Mega Manual - module.bbclass并告诉我这是否适合你。 您还可以查看这个简单的教程:Howto build a kernel module out of the kernel tree

答案 1 :(得分:0)

FILES _ $ {PN}不能用于内核配方,因为内核至少默认情况下$ {PN}不会出现在PACKAGES中。 “kernel-module - $ {PN}”也无效。我猜你想把文件添加到基于内核的包中,如下所示:

FILES_kernel-base += "${bindir}/my_program"

答案 2 :(得分:0)

我不相信module.bbclass会从PACKAGES中删除$ {PN},但确实会清除FILES _ $ {PN}。因此,如果要将任何文件添加到包中,则必须在继承模块后设置文件_ $ {PN}