This recipe builds rte_kni.ko module

Signed-off-by: Naveen Saini <[email protected]>
---
 recipes-extended/dpdk/dpdk-module_20.11.1.bb  | 45 +++++++++++
 .../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 <[email protected]>
+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 <[email protected]>
+---
+ 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 <[email protected]>
+-
+-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
+
-- 
2.17.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6998): 
https://lists.yoctoproject.org/g/meta-intel/message/6998
Mute This Topic: https://lists.yoctoproject.org/mt/82113572/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to