Configure dkms to build kernel modules.
In this example we will see the process for Nvidia propietary driver.
Dependencies
apt-get install dkms build-essential make
get the correct NVIDIA-Linux-ARCH-VERSION-pkgN.run driver installer from nvidia.com
or
NVIDIA-Linux-ARCH-VERSION.run
Prepare Source Code
Unpack code
mkdir -p /tmp/nvdkmsprep
sh /usr/src/nvidia/NVIDIA-Linux-ARCH-VERSION-pkgN.run >/dev/null --extract-only --target /tmp/nvdkmsprep/installer
cp driver to where dkms espects it:
mkdir -p /usr/src/nvidia-VERSION
cp -r /tmp/nvdkmsprep/installer/usr/src/nv/* /usr/src/nvidia-VERSION
If you .run file does not have a ‘-pkgN’ suffix, find code here:
cp -r /tmp/nvdkmsprep/installer/kernel/* /usr/src/nvidia-VERSION
dkms config
Create the config file:
cat > /usr/src/nvidia-VERSION/dkms.conf <<EOF
PACKAGE_NAME="nvidia"
PACKAGE_VERSION="'VERSION'"
#CLEAN="make clean"
CLEAN="true"
BUILT_MODULE_NAME[0]="nvidia"
SYSSRC=$kernel_source_dir"
#modified for squeeze see next line#MAKE[0]="make module KERNDIR=/lib/modules/$kernelver IGNORE_XEN_PRESENCE=1 IGNORE_CC_MISMATCH=1
MAKE[0]="make module IGNORE_CC_MISMATCH=1"
DEST_MODULE_LOCATION[0]="/kernel/drivers/video/nvidia"
AUTOINSTALL="yes"
EOF
Add code to dkms
Add the configured code to dmks:
dkms add -m nvidia -v VERSION
dkms build -m nvidia -v VERSION
dkms install -m nvidia -v VERSION
Show dkms status:
dkms status