Building kernel module using dkms, missing headers

So, Finally, I have managed to install driver ixgbevf v. 2.15.3 for kernel version 3.13.0-43.

But, there are some important points:

  1. First of all, I tried to use make to build it manually and got the same result:

    Makefile:64: *** Kernel header files not in any of the expected locations.
    Makefile:65: *** Install the appropriate kernel development package, e.g.
    Makefile:66: *** kernel-devel, for building kernel modules and try again.  Stop.
    
  2. Secondly, I ran apt-get upgrade and apt-get dist-upgrade to update kernel from 3.13.0-36 to 3.13.0-43, and reboot machine after, to update kernel. Details are here. It installed kernel headers for 3.13.0-43 as well.

  3. Thirdly, I had to change dkms.conf configuration file, like here:

    MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
    CLEAN="make -C src/ clean"
    BUILT_MODULE_NAME=ixgbevf
    BUILT_MODULE_LOCATION=src/
    DEST_MODULE_LOCATION="/updates"
    PACKAGE_NAME=ixgbevf-dkms
    PACKAGE_VERSION=2.15.3
    REMAKE_INITRD=no
    

After that, It was able to build driver. If you have the same problem and need help, feel free to contact me. @Faheem Mitha, Thanks a lot for your helping.


There is a patch released for Ubuntu14.04 https://gist.github.com/cdgraff/1c31727901e5c76d5ea8

I can confirm it's working:

root@ip-172-31-119-53:~# modinfo ixgbevf
filename:       /lib/modules/3.13.0-45-generic/updates/dkms/ixgbevf.ko
version:        2.16.1
license:        GPL
description:    Intel(R) 10 Gigabit Virtual Function Network Driver
author:         Intel Corporation, <[email protected]>
srcversion:     3F8AACF779F38FD444B1CD3
alias:          pci:v00008086d00001515sv*sd*bc*sc*i*
alias:          pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:        
vermagic:       3.13.0-45-generic SMP mod_unload modversions 
parm:           InterruptThrottleRate:Maximum interrupts per second, per    vector, (956-488281, 0=off, 1=dynamic), default 1 (array of int)