1

INTRODUCTION

I got an Linux built with bitbake that has an application which starts up some containers. Everytime i start this application, 'dmesg' tells me, that there is a version missmatch of dm-ioctl.h (4.35(kernel) to 4.39(application).

Im building the Linux for an Raspberrypi using a 64 bit kernel(4.9). If i go into my .bb recipe of the module that starts the containers, i see it grabs the headers frp, the recipe-sysroot where the other dm-ioctl.h is located. The application is pretty small and gets build via cmake.

this is the recipe:

DESCRIPTION = "Container management utility"
LICENSE = "CLOSED"
PACKAGES = "${PN} ${PN}-dbg"

DEPENDS = "util-linux openssl rapidjson virtual/kernel"


do_compile[depends] += "virtual/kernel:do_shared_workdir"


SRC_URI = " <files to include>"

S ="${WORKDIR}"
IMAGE_DEPLOY_DIR ?= "${@d.getVar('IMGDEPLOYDIR', False) o d.getVar('DEPLOY_DIR_IMAGE',False)}"

inherit pkgconfig cmake

sbindir = "/sbin"
 bindir = "${INSTALLP}"


# Files to be packaged
FILES_${PN} = "${sbindir}/container_start"
FILES_${PN}-dbg = "${sbindir}/.debug /usr"

I already tried to modify the .bb recipe of this module with the help of this question: How to write a BitBake driver recipe which requires kernel source header files?

but it always stays the same and if i go to tmp/work/aarch64-poky-linux/ i can see, that it has the wrong header in usr/include in the recipe-sysroot folder.

QUESTIONS

  1. Is it possible to change the recipe-sysroot so that it grabs the same headers that my kernel uses and compiles my module with them and not the 'wrong ones'

  2. How do i get the source from where this wrong header is included (it has to come from newer kernel headers, but i cant figure out where this one is located)

thank you in advance for anyone that has some sort of answer to my questions!

0 Answers0