[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