[dpdk-dev] [PATCH] kernel/linux: fix modules install path

Bruce Richardson bruce.richardson at intel.com
Mon Jun 10 11:37:17 CEST 2019


On Mon, Jun 10, 2019 at 11:25:52AM +0300, Igor Ryzhov wrote:
> Currently kernel modules are installed into /usr/src/ instead of
> /lib/modules when meson build system is used. This patch fixes that.
> 
> Old build option "kernel_dir" is changed to "kernel_version".
> 
> Signed-off-by: Igor Ryzhov <iryzhov at nfware.com>
> ---
>  kernel/linux/igb_uio/meson.build |  2 +-
>  kernel/linux/kni/meson.build     |  2 +-
>  kernel/linux/meson.build         | 16 +++++++++-------
>  meson_options.txt                |  4 ++--
>  4 files changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build
> index f5a9d5ccf..5093610e3 100644
> --- a/kernel/linux/igb_uio/meson.build
> +++ b/kernel/linux/igb_uio/meson.build
> @@ -16,5 +16,5 @@ custom_target('igb_uio',
>  		'modules'],
>  	depends: mkfile,
>  	install: true,
> -	install_dir: kernel_dir + '/../extra/dpdk',
> +	install_dir: kernel_install_dir + '/extra/dpdk',
>  	build_by_default: get_option('enable_kmods'))
> diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
> index a9f48b0e6..8a902d2ed 100644
> --- a/kernel/linux/kni/meson.build
> +++ b/kernel/linux/kni/meson.build
> @@ -25,5 +25,5 @@ custom_target('rte_kni',
>  	depends: kni_mkfile,
>  	console: true,
>  	install: true,
> -	install_dir: kernel_dir + '/../extra/dpdk',
> +	install_dir: kernel_install_dir + '/extra/dpdk',
>  	build_by_default: get_option('enable_kmods'))
> diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build
> index a37c95752..5a9303b33 100644
> --- a/kernel/linux/meson.build
> +++ b/kernel/linux/meson.build
> @@ -3,19 +3,21 @@
>  
>  subdirs = ['igb_uio', 'kni']
>  
> -# if we are cross-compiling we need kernel_dir specified
> -if get_option('kernel_dir') == '' and meson.is_cross_build()
> -	warning('Need "kernel_dir" option for kmod compilation when cross-compiling')
> +# if we are cross-compiling we need kernel_version specified
> +if get_option('kernel_version') == '' and meson.is_cross_build()
> +	warning('Need "kernel_version" option for kmod compilation when cross-compiling')
>  	subdir_done()
>  endif

Looking at the patch now, I'm not sure that this change from kernel_dir to
kernel_version is the right thing to do - since it almost certainly cause
issues for cross-compiling. The kernel modules almost certainly won't be in
the host's /lib/modules folder in cross-compile cases, so I think we need
to continue to specify a path to the kernel modules folder.

To me the simplest option is that we should take the path to the kernels
module folder i.e. same as now, just without the "/build". A comment update
in the meson_options.txt file should be all that is needed to modify that
parameter, and we should be able to have the meson.build file automatically
strip "/build" off the path in order to enable backward compatibility. What
do you think?

/Bruce



More information about the dev mailing list