From ed47409f52b66ef02de34916563de197955259b3 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 25 Oct 2021 12:30:36 -0400 Subject: meta-agl-lxc: Support rcar3 kernel module headers in guests Add a bbclass that can be used to disable compilation in module.bbclass based recipes, and dynamically activated bbappends for the rcar3 kernel module recipes that use it and guest-build-specific do_install overrides to get the userspace API headers installed transparently to the userspace recipes. This avoids the complications that would arise from using a full linux-renesas kernel build for guest container images. Bug-AGL: SPEC-4089 Signed-off-by: Scott Murray Change-Id: I917e66ca024a2a507e615ba3a2a58c603a691142 --- meta-agl-lxc/classes/guest-kernel-module.bbclass | 21 +++++++++++++++++++++ .../kernel-module-mmngr.bbappend | 7 +++++++ .../kernel-module-mmngrbuf.bbappend | 6 ++++++ .../kernel-module-uvcs-drv.bbappend | 6 ++++++ .../kernel-module-vsp2driver.bbappend | 9 +++++++++ .../kernel-module-vspm/kernel-module-vspm.bbappend | 8 ++++++++ .../kernel-module-vspmif.bbappend | 6 ++++++ 7 files changed, 63 insertions(+) create mode 100644 meta-agl-lxc/classes/guest-kernel-module.bbclass create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspmif.bbappend diff --git a/meta-agl-lxc/classes/guest-kernel-module.bbclass b/meta-agl-lxc/classes/guest-kernel-module.bbclass new file mode 100644 index 00000000..bbe25c20 --- /dev/null +++ b/meta-agl-lxc/classes/guest-kernel-module.bbclass @@ -0,0 +1,21 @@ +DEPENDS:remove:aglcontainerguest = "${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-dummy", "linux-renesas", "", d)}" + +do_configure[depends] = "${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-dummy", "", "make-mod-scripts:do_compile", d)}" + +python __anonymous () { + # Need to use inline python here as, contrary to the BitBake docs, + # having noexec set at all disables the task, so using + # oe.utils.conditional to set it to "0" still ends up with the task + # disabled. + if d.getVar("PREFERRED_PROVIDER_virtual/kernel") == "linux-dummy": + d.setVarFlag("do_compile", "noexec", "1") +} + +do_install:aglcontainerguest() { + # Create destination directory + install -d ${D}/${includedir}/ +} + +# Guest doesn't build the module, so go ahead and quiet warnings about +# double '/' in base recipe definition +FILES_${PN}:aglcontainerguest = "" diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend new file mode 100644 index 00000000..a9d09a77 --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend @@ -0,0 +1,7 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file to ${includedir} + install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_public_cmn.h ${D}/${includedir}/ + install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_private_cmn.h ${D}/${includedir}/ +} diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend new file mode 100644 index 00000000..2323de93 --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header files to ${includedir} + install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/include/mmngr_buf_private_cmn.h ${D}/${includedir}/ +} diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend new file mode 100644 index 00000000..7c221585 --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file + install -m 644 ${S}/include/uvcs_ioctl.h ${D}/${includedir}/ +} diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend new file mode 100644 index 00000000..f41a0ec4 --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend @@ -0,0 +1,9 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file to ${includedir} + install -m 644 ${S}/vsp2driver/linux/vsp2.h ${D}/${includedir}/ +} + +PACKAGES:append:aglcontainerguest = " ${PN}-dev" +FILES_${PN}-dev:aglcontainerguest += "${includedir}" diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend new file mode 100644 index 00000000..eb478bea --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend @@ -0,0 +1,8 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header files + install -m 644 ${S}/${VSPM_DRV_DIR}/include/vspm_cmn.h ${D}/${includedir}/ + install -m 644 ${S}/${VSPM_DRV_DIR}/include/vsp_drv.h ${D}/${includedir}/ + install -m 644 ${S}/${VSPM_DRV_DIR}/include/fdp_drv.h ${D}/${includedir}/ +} diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspmif.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspmif.bbappend new file mode 100644 index 00000000..00078b9c --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspmif.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file + install -m 644 ${S}/${VSPMIF_DRV_DIR}/include/vspm_if.h ${D}/${includedir}/ +} -- cgit 1.2.3-korg