[lkml]   [2003]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[ANNOUNCE] DKMS: Dynamic Kernel Module Support
DKMS is a framework where device driver source can reside outside the kernel
source tree so that it is very easy to rebuild modules as you upgrade
kernels. This allows Linux vendors to provide driver drops without having to
wait for new kernel releases (as a stopgap before the code can make it back
into the kernel), 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.

The latest DKMS version is available at It
is licensed under the GPL. You can also find a sample DKMS enabled QLogic
RPM to show you how it all works (or, a mocked-up tarball if you don't like
RPMs). If you use the sample RPM, you'll have to install it with --nodeps as
it requires the DKMS RPM to be installed (which I haven't provided).

===Using DKMS===

DKMS is one bash executable that supports 7 sub-actions: add, build,
install, uninstall, remove, status and match.

add: Adds an entry into the DKMS tree for later builds. It requires that
source be located in /usr/src/<module>-<module-version>/ as well as the
location of a properly formatted dkms.conf file (each dkms.conf is module
specific and is the configuration file that tells DKMS how to build and
where to install your module).

build: Builds your module but stops short of installing it. The resultant
.o files are stored in the DMKS tree.

install: Installs the module in the LOCATION specified in dkms.conf.

uninstall: Uninstalls the module and replaces it with whatever original
module was found during install (returns your module to the "built" state).

remove: Uninstalls and expunges all references of your module from the DKMS

status: Displays the current state (added, built, installed) of modules
within the DMKS tree as well as whether any original modules have been saved
for uninstallation purposes.

match: Allows you to take the configuration of DKMS installed modules for
one kernel and apply this config to some other kernel. This is helpful when
upgrading kernels where you would like to continue using your DKMS modules
instead of certain kernel modules.

Check out the man page for more details.

Gary Lerhaupt
Linux Development
Dell Computer Corporation

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:33    [W:0.026 / U:22.880 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site