DKMS is a framework designed to allow individual kernel modules to be upgraded without changing the whole kernel. It is also very easy to rebuild modules as you upgrade kernels.
http://pkg-dkms.alioth.debian.org/
DKMS is a framework designed to allow individual kernel modules to be upgraded without changing the whole kernel. It is also very easy to rebuild modules as you upgrade kernels.
DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels. This will allow Linux vendors to provide driver drops without having to wait for new kernel releases while also taking out the guesswork for customers attempting to recompile modules for new kernels.
For veteran Linux users it also provides some advantages since a separate framework for driver drops will remove kernel releases as a blocking mechanism for distributing code. Instead, driver development should speed up as this separate module source tree will allow quicker testing cycles meaning better tested code can later be pushed back into the kernel at a more rapid pace. Its also nice for developers and maintainers as DKMS only requires a source tarball in conjunction with a small configuration file in order to function correctly.
yum install -y dkms
chkconfig --list | grep dkms
dkms_autoinstaller 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mkdir /usr/src/module-module-version
mkdir /usr/src/r8168-8.015.00
cd /usr/src/r8168-8.015.00
wget http://download.hetzner.de/drivers/r8168-8.015.00.tar.bz2
tar -xf r8168-8.015.00.tar.bz2
rm -f r8168-8.015.00.tar.bz2
mv r8168-8.015.00/* ./
rm -r r8168-8.015.00
vi dkms.conf
PACKAGE_NAME="r8168"
PACKAGE_VERSION="8.015.00"
BUILT_MODULE_NAME[0]="r8168"
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/"
AUTOINSTALL="yes"
dkms add -m r8168 -v 8.015.00
dkms build -m r8168 -v 8.015.00
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=2.6.18-164.6.1.el5 -C /lib/modules/2.6.18-164.6.1.el5/build M=/var/lib/dkms/r8168/8.015.00/build....
Error! Build of r8168.ko failed for: 2.6.18-164.6.1.el5 (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/r8168/8.015.00/build/ for more information.
mv src/* ./
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)/src modules
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
dkms build -m r8168 -v 8.015.00
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=2.6.18-164.6.1.el5 -C /lib/modules/2.6.18-164.6.1.el5/build M=/var/lib/dkms/r8168/8.015.00/build.....
cleaning build area....
DKMS: build Completed.
dkms install -m r8168 -v 8.015.00
r8168.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/2.6.18-164.6.1.el5/extra/
Adding any weak-modules
depmod....
DKMS: install Completed.
find /lib | grep 8168
/lib/modules/2.6.18-164.6.1.el5/extra/r8168.ko
yum install -y ovzkernel-devel.x86_64
dkms build -m r8168 -v 8.015.00
Error! Your kernel source for kernel 2.6.18-164.2.1.el5.028stab066.7 cannot be found at
/lib/modules/2.6.18-164.2.1.el5.028stab066.7/build or /lib/modules/2.6.18-164.2.1.el5.028stab066.7/source.
You can use the --kernelsourcedir option to tell DKMS where it's located.
dkms build -m r8168 -v 8.015.00 --kernelsourcedir=/usr/src/kernels/2.6.18-164.2.1.el5.028stab066.10-x86_64/
dkms install -m r8168 -v 8.015.00
find /lib | grep 8168
/lib/modules/2.6.18-164.6.1.el5/extra/r8168.ko
/lib/modules/2.6.18-164.2.1.el5.028stab066.7/extra/r8168.ko