Search code examples
dpdk

insmod: error when inserting DPDK igb_uio.ko module


I use centos 7.3. When I run insmod igb_uio.ko, I get this error in /var/logs/message:

  • igb_uio: loading out-of-tree module taints kernel.
  • WARNING: module'igb_uio' built without retpoline-enable compiler, may affect Spectre v2 mitigation
  • igb_uio: module verification failed: signature and/or required key missing - tainting kernel.
  • igb_uio: disagrees about version of symol __uio_register_device
  • igb_uio: Unknown symbol __uio_register_device (err -22) ...

This happens after I did some patches to OS and kernel. After patch, the kernel version is: 3.10.0.957.21.3.e17.x86_64

Before patch, it works well. The patch is for some TCP critical vulnerability. I prefer to run the patch.

I use DPDK 17.08.1, I also tried 18.11.2. Both get same error.

I try to rebuild from source, after patch. The rebuild get errors: (before patch, build is successfully.):

  • make: *** /lib/modules/3.10.0-957.21.3.el7.x86_64/build: No such file or directory. Stop.
  • make[6]: *** [igb_uio.ko] Error 2
  • make[5]: *** [igb_uio] Error 2
  • make[4]: *** [linux] Error 2
  • make[3]: *** [kernel] > Error 2
  • make[2]: *** [all] Error 2
  • make[1]: *** [pre_install] Error 2
  • make: *** [install] Error 2

Solution

  • You need to build your igb_uio module against the right kernel headers. If you patched/updated the kernel then you should do the same for the headers. If your headers are patched but you still get the errors then try compiling it like this:

    RTE_KERNELDIR=/path/to/headers make -j