From 7ec861d3c931eb9a1a53722baff5ece66ccb99e6 Mon Sep 17 00:00:00 2001 From: Naveen Saini Date: Thu, 15 Apr 2021 18:51:35 +0800 Subject: dpdk-module: add recipe This recipe builds rte_kni.ko module Signed-off-by: Naveen Saini Signed-off-by: Anuj Mittal --- recipes-extended/dpdk/dpdk-module_20.11.1.bb | 45 +++++++++++++ .../dpdk/dpdk/0001-Makefile-add-makefile.patch | 74 ++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 recipes-extended/dpdk/dpdk-module_20.11.1.bb create mode 100644 recipes-extended/dpdk/dpdk/0001-Makefile-add-makefile.patch diff --git a/recipes-extended/dpdk/dpdk-module_20.11.1.bb b/recipes-extended/dpdk/dpdk-module_20.11.1.bb new file mode 100644 index 0000000..ac931bc --- /dev/null +++ b/recipes-extended/dpdk/dpdk-module_20.11.1.bb @@ -0,0 +1,45 @@ +include dpdk.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/dpdk:" + +SRC_URI += " \ + file://0001-Makefile-add-makefile.patch \ +" +STABLE = "-stable" +BRANCH = "20.11" +SRCREV = "b1e71cf43153cca07db6cbb69fdca030ccf52234" +S = "${WORKDIR}/git" + +inherit module + +#kernel module needs 'rte_build_config.h', which is generated at buid time +DEPENDS += "dpdk" + +export S +export STAGING_KERNEL_DIR +export STAGING_INCDIR +export INSTALL_MOD_DIR="dpdk" + +do_configure[noexec] = "1" + +do_compile() { + cd ${S}/kernel/linux/kni + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \ + KERNEL_VERSION=${KERNEL_VERSION} \ + CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ + AR="${KERNEL_AR}" \ + O=${STAGING_KERNEL_BUILDDIR} \ + KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \ + ${MAKE_TARGETS} +} + +do_install() { + cd ${S}/kernel/linux/kni + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \ + INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \ + CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ + O=${STAGING_KERNEL_BUILDDIR} \ + ${MODULES_INSTALL_TARGET} +} diff --git a/recipes-extended/dpdk/dpdk/0001-Makefile-add-makefile.patch b/recipes-extended/dpdk/dpdk/0001-Makefile-add-makefile.patch new file mode 100644 index 0000000..18b75fb --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-Makefile-add-makefile.patch @@ -0,0 +1,74 @@ +From 768cef60957d5e840071d1d6514d4add3f3c2904 Mon Sep 17 00:00:00 2001 +From: Naveen Saini +Date: Wed, 14 Apr 2021 17:25:53 +0800 +Subject: [PATCH] Makefile: add makefile + +Current meson build for kernel module build does not fit in Yocto. +So added Makefile to build rte_kni.ko + +Upstream-Status: Inappropriate + +Signed-off-by: Naveen Saini +--- + kernel/linux/kni/Kbuild | 6 ------ + kernel/linux/kni/Makefile | 35 +++++++++++++++++++++++++++++++++++ + 2 files changed, 35 insertions(+), 6 deletions(-) + delete mode 100644 kernel/linux/kni/Kbuild + create mode 100644 kernel/linux/kni/Makefile + +diff --git a/kernel/linux/kni/Kbuild b/kernel/linux/kni/Kbuild +deleted file mode 100644 +index e5452d6c00..0000000000 +--- a/kernel/linux/kni/Kbuild ++++ /dev/null +@@ -1,6 +0,0 @@ +-# SPDX-License-Identifier: BSD-3-Clause +-# Copyright(c) 2018 Luca Boccassi +- +-ccflags-y := $(MODULE_CFLAGS) +-obj-m := rte_kni.o +-rte_kni-y := $(patsubst $(src)/%.c,%.o,$(wildcard $(src)/*.c)) +diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile +new file mode 100644 +index 0000000000..19897ee06e +--- /dev/null ++++ b/kernel/linux/kni/Makefile +@@ -0,0 +1,35 @@ ++# ++# Makefile for building rte_kni.ko ++# ++MODULE_CFLAGS += -include $(S)/config/rte_config.h ++MODULE_CFLAGS += -I$(S)/lib/librte_eal/include ++MODULE_CFLAGS += -I$(S)/lib/librte_kni ++MODULE_CFLAGS += -I$(S)/kernel/linux/kni ++MODULE_CFLAGS += -I$(S) ++MODULE_CFLAGS += -I$(STAGING_INCDIR) ++ ++rte_kni-objs = kni_misc.o kni_net.o ++ ++ccflags-y := $(MODULE_CFLAGS) ++cflags-y := $(MODULE_CFLAGS) ++obj-m := rte_kni.o ++ ++ ++KERNEL_MAKE_OPTS := -C $(STAGING_KERNEL_DIR) M=$(CURDIR) ++ifneq ($(ARCH),) ++KERNEL_MAKE_OPTS += ARCH=$(ARCH) ++endif ++ifneq ($(CROSS_COMPILE),) ++KERNEL_MAKE_OPTS += CROSS_COMPILE=$(CROSS_COMPILE) ++endif ++ ++build: ++ $(MAKE) $(KERNEL_MAKE_OPTS) modules ++ ++install: modules_install ++ ++modules_install: ++ $(MAKE) $(KERNEL_MAKE_OPTS) modules_install ++ ++clean: ++ $(MAKE) $(KERNEL_MAKE_OPTS) clean +-- +2.17.1 + -- cgit v1.2.3-54-g00ecf