Dynamic Kernel Module Support
An open-source framework that builds and maintains Linux kernel modules whose source code is maintained outside the mainline kernel.
Last updated August 24, 2026
AI crawler reads
2requests
1companies- Anthropic2
- Profile
- 2
- Controversies
- 0
- JSON · MD
- 0
- First read
- Nov 4, 2026
- Latest read
- Nov 4, 2026
From this site's server log
Overview
Dynamic Kernel Module Support, commonly abbreviated as DKMS, is an open-source software framework for managing Linux kernel modules that are developed or distributed outside the mainline Linux kernel source tree. Its central purpose is to keep externally maintained drivers and other kernel extensions usable when a system receives a new kernel. Rather than requiring administrators to locate a matching precompiled module or manually rebuild the software after every kernel upgrade, DKMS can compile registered module source code against the headers and configuration of the installed kernel and install the resulting module. The project was created in 2003 by Dell's Linux Engineering Team. It addressed a recurring operational problem for Linux users and hardware vendors: kernel modules frequently need to be rebuilt whenever the kernel's internal interfaces or build environment change. DKMS provides a standardized workflow for adding module source code, describing how it should be built, compiling it for one or more installed kernels, installing or removing it, and rebuilding it when a new kernel is introduced. DKMS is particularly useful for drivers and extensions that are not included in the upstream Linux kernel. Examples include some proprietary graphics drivers, virtualization components, storage drivers, wireless drivers, and other vendor- or project-maintained modules. The framework can also make it possible to install a driver on an already deployed system running a kernel version for which the distributor does not provide a ready-made binary package, provided that the required source and build dependencies are available. A defining feature of DKMS is its integration with package and kernel installation workflows. Once a module is registered, distribution tooling can invoke DKMS during kernel installation so that the module is built for the new kernel. This helps preserve device and service functionality across kernel updates, although successful compilation still depends on the module source being compatible with the new kernel and on the availability of suitable kernel headers and compiler tools. DKMS supports both Debian-family and RPM-family packaging workflows and is included in or available through a range of Linux distributions, including Ubuntu, Debian, Fedora, SUSE, Mageia, and Arch. It is free software distributed under the GNU General Public License, version 2 or later. The project is best understood not as a consumer-facing hardware brand but as foundational Linux infrastructure used by distributions, system administrators, hardware vendors, and open-source projects.
History
Dynamic Kernel Module Support emerged from Dell's Linux Engineering Team in 2003. Its creation reflected a practical limitation in Linux administration: software maintained outside the main kernel source tree often had to be rebuilt whenever the operating system kernel changed. This was especially significant for hardware drivers and system extensions supplied by vendors or specialist projects rather than incorporated into the upstream kernel. DKMS introduced a repeatable mechanism for registering external module source code and associating it with build instructions. When a new kernel is installed, the framework can invoke those instructions against the new kernel's headers and build environment, producing a module appropriate for that kernel. This model reduces the need for administrators to perform manual compilation and reduces the dependency on vendors publishing a separate precompiled package for every supported kernel and distribution combination. The framework became part of the broader Linux distribution ecosystem. It supports both Debian-style and RPM-style packaging environments and has been included in or made available through distributions such as Ubuntu, Debian, Fedora, SUSE, Mageia, and Arch. Its adoption has been particularly relevant for modules that remain outside the mainline kernel, including certain graphics, virtualization, wireless, storage, and vendor-specific drivers. DKMS does not eliminate compatibility constraints. A module still has to compile successfully against the target kernel, and changes to kernel APIs, configuration, compiler behavior, or module source code can require maintenance by the module's developers. Kernel headers and other build dependencies must also be present. In this sense, DKMS automates the build and deployment process but does not guarantee that every external module will remain compatible with every future kernel. The project is released as free software under the GNU General Public License, version 2 or later. Its enduring role is that of enabling infrastructure: it connects Linux package and kernel update workflows with the source-based rebuilding of external kernel modules. Rather than operating as a conventional commercial product line, DKMS functions as a widely used tool in Linux system administration and hardware-support stacks.
- 2003
Project created at Dell
[1]Dell's Linux Engineering Team created Dynamic Kernel Module Support to automate rebuilding externally maintained Linux kernel modules when kernels changed.
Products and positioning
Technical infrastructure for Linux systems, focused on automating the compilation, installation, and maintenance of external kernel modules across kernel upgrades.
Linux system software · 2003
Dynamic Kernel Module Support
DKMS is a framework for registering, compiling, installing, removing, and rebuilding Linux kernel modules whose source code is maintained outside the mainline kernel tree. It can build a module for an existing kernel and can be invoked automatically when a new kernel is installed. The framework supports Debian and RPM packaging environments and is commonly used for external hardware drivers and other kernel extensions. Its effectiveness depends on compatible source code, kernel headers, and build tools being available for the target kernel.
Sources2 sources
Cite this profile: Cite the canonical profile. /brand-wiki/dynamic-kernel-module-support · Editorial policy · How profiles are compiled