Ship extra files in kernel module recipe

倖福魔咒の 提交于 2019-12-22 10:08:33

问题


Is there a way I can ship more files when building an out of tree kernel module?

I have tried something like this:

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

And like this:

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

But still complains:

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]

回答1:


This is quite common situation - you have installed additional binary but it hasn't been added to output package (installed but not shipped).

Solution should be based on type of file that you need to add to output image.

Check this thread: 2 step solution to ERROR: QA Issue: Files/directories were installed but not shipped

Also if you need to quickly verify if the files were properly build etc., you can just add this line in your build/local.conf (as you have already installed them):

IMAGE_INSTALL += "{binary_name}"

Edit:

In addition to below comment from OP: Sorry for my misunderstanding, it looks that you need to inherit module.bbclass in your recipe, check out the doc: Yocto Mega Manual - module.bbclass and let me know if this suits you. You can also check this simple tutorial: Howto build a kernel module out of the kernel tree




回答2:


FILES_${PN} can't be used for kernel recipes, since for the kernel at least by default ${PN} does not appear in PACKAGES. "kernel-module-${PN}" isn't valid either. I'm guessing you'd want to add the file to the kernel-base package like so:

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




回答3:


I don't believe that module.bbclass removes ${PN} from PACKAGES but it does clear FILES_${PN}. So if you want to add any files to your package, you must set FILES_${PN} after inheriting module.



来源:https://stackoverflow.com/questions/37118062/ship-extra-files-in-kernel-module-recipe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!