[dpdk-dev] Incorrect install_dir for Linux kernel modules
Igor Ryzhov
iryzhov at nfware.com
Thu Jun 6 20:33:09 CEST 2019
Hi everyone,
I faced an issue today with install directory for rte_kni and igb_uio.
Modules are installed to '/usr/src/...' instead of '/lib/modules/...'.
Right now install_dir for both modules is set to:
install_dir: kernel_dir + '/../extra/dpdk'
where 'kernel_dir' is set manually or automatically to:
kernel_version = run_command('uname', '-r').stdout().strip()
kernel_dir = '/lib/modules/' + kernel_version + '/build'
I believe the intention of using '/../extra/dpdk' was to come back to
'/lib/modules/kernel_version/' and install the modules there, but as
'/lib/modules/kernel_version/build' is a symlink, we actually get into
the '/usr/src/linux-headers-kernel-version' and install modules there.
I see two possible solutions here:
1. Add new 'kernel_install_dir' option. If it is not set, set it
automatically:
kernel_version = run_command('uname', '-r').stdout().strip()
kernel_install_dir = '/lib/modules/' + kernel_version
and set install_dir to:
install_dir: kernel_install_dir + '/extra/dpdk'
2. Replace 'kernel_dir' option with new option 'kernel_version', and do the
following:
if kernel_version == ''
kernel_version = run_command('uname', '-r').stdout().strip()
then set 'kernel_dir' and 'kernel_install_dir' accordingly:
kernel_dir = '/lib/modules/' + kernel_version + '/build'
kernel_install_dir = 'lib/modules/' + kernel_version
and use it for building and installation:
custom_target('rte_kni',
...
command: ['make', '-j4', '-C', kernel_dir,
...
install_dir: kernel_install_dir + '/extra/dpdk',
...
I prefer the second one and already have a patch.
Can send the patch if maintainers are good with the solution.
Best regards,
Igor
More information about the dev
mailing list