[dpdk-dev] [PATCH 06/10] mk: install kernel modules
Panu Matilainen
pmatilai at redhat.com
Wed Dec 2 10:53:49 CET 2015
On 12/02/2015 05:57 AM, Thomas Monjalon wrote:
> Add kernel modules to "make install".
> Nothing is done if there is no kernel module compiled.
>
> On native Linux, this path is suggested:
> kerneldir=/lib/modules/$(uname -r)/extra/dpdk
>
> Suggested-by: Mario Carrillo <mario.alfredo.c.arevalo at intel.com>
> Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> ---
> mk/rte.sdkinstall.mk | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
> index 5585974..46253ff 100644
> --- a/mk/rte.sdkinstall.mk
> +++ b/mk/rte.sdkinstall.mk
> @@ -36,6 +36,7 @@ BUILD_DIR := $O
>
> prefix ?= /usr/local
> exec_prefix ?= $(prefix)
> +kerneldir ?= $(exec_prefix)/kmod
> bindir ?= $(exec_prefix)/bin
> libdir ?= $(exec_prefix)/lib
> includedir ?= $(prefix)/include/dpdk
> @@ -89,6 +90,7 @@ ifeq '$(DESTDIR)$(if $T,,+)' ''
> else
> @echo ================== Installing $(DESTDIR)$(prefix)/
> $(Q)$(MAKE) O=$(BUILD_DIR) install-runtime
> + $(Q)$(MAKE) O=$(BUILD_DIR) install-kmod
> $(Q)$(MAKE) O=$(BUILD_DIR) install-sdk
> @echo Installation in $(DESTDIR)$(prefix)/ complete
> endif
> @@ -105,6 +107,12 @@ install-runtime:
> $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir))
> $(Q)cp -a $(RTE_SDK)/tools $(DESTDIR)$(datadir)
>
> +install-kmod:
> +ifneq '$(wildcard $O/kmod/*)' ''
> + $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir))
> + $(Q)cp -a $O/kmod/* $(DESTDIR)$(kerneldir)
> +endif
> +
> install-sdk:
> $(Q)$(call rte_mkdir, $(DESTDIR)$(includedir))
> $(Q)tar -chf - -C $O include | \
>
This by default installs the modules to /usr/local/kmod/ with no kernel
version etc. That's so broken that it'd be better not to install them at
all.
So either get the kerneldir right (the correct path is known on Linux
and surely BSD too) or dont install them at all unless kerneldir is
manually specified. For Linux, it should default to
/lib/modules/<kernelver>/extra/dpdk on Linux, where <kernelver> is the
version those modules were built against (which might or might not have
anything to do with uname -r output).
- Panu -
More information about the dev
mailing list