# Dynamic Kernel Module Support

> software framework for installing and updating Linux kernel modules from source

**Wikidata**: [Q1246922](https://www.wikidata.org/wiki/Q1246922)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support)  
**Source**: https://4ort.xyz/entity/dynamic-kernel-module-support

## Summary  
Dynamic Kernel Module Support (DKMS) is a software framework that enables the installation and updating of Linux kernel modules directly from source code. It allows out-of-tree kernel modules to be automatically recompiled when the kernel is updated, ensuring continued functionality without manual intervention. DKMS is widely used in Linux distributions to manage third-party drivers and kernel extensions.

## Key Facts  
- Created by Dell in 2003 as a solution for managing out-of-tree kernel modules.  
- Licensed under the GNU General Public License (GPL).  
- Latest stable release is version 2.8.5, published on August 24, 2021.  
- Written primarily in GNU Bash.  
- Operates exclusively on Linux-based operating systems.  
- Official source repository hosted at https://github.com/dell/dkms.  
- Packaged across major Linux distributions including Ubuntu, Fedora, Debian, Arch Linux, and openSUSE.  
- Instance of free software, utility software, and a software framework.  

## FAQs  
### Q: What is Dynamic Kernel Module Support used for?  
A: DKMS is used to build and install Linux kernel modules from source, allowing them to persist across kernel updates. It's especially useful for third-party hardware drivers that aren't part of the mainline kernel.

### Q: Who developed Dynamic Kernel Module Support?  
A: DKMS was developed by Dell and first released in 2003 to improve driver management on Linux systems.

### Q: Is DKMS still actively maintained?  
A: Yes, DKMS continues to receive updates, with the latest version being 2.8.5 released in August 2021.

## Why It Matters  
DKMS plays a critical role in Linux system administration by automating the compilation and installation of kernel modules. Without DKMS, every time a Linux kernel is updated, manually compiled kernel modules—such as proprietary graphics or wireless drivers—would break and require recompilation. DKMS solves this by maintaining a registry of module sources and automatically rebuilding them upon kernel upgrades. This significantly reduces maintenance overhead for system administrators and improves compatibility for hardware vendors who rely on out-of-tree modules. Its adoption across major Linux distributions underscores its importance in modern Linux ecosystems.

## Notable For  
- First introduced by Dell in 2003 to streamline driver support on enterprise Linux systems.  
- Enables seamless integration of third-party kernel modules without requiring inclusion in the mainline kernel.  
- Maintains cross-distribution compatibility through standardized packaging (e.g., .deb, .rpm).  
- Supports automatic rebuilds of modules during kernel upgrades, reducing system downtime.  
- Widely adopted in enterprise and community-driven Linux environments alike.

## Body  

### Overview  
Dynamic Kernel Module Support (DKMS) is a software framework designed to simplify the process of building and managing loadable kernel modules (LKMs) from source code. Unlike static kernel modules built into the kernel tree, DKMS handles out-of-tree modules—those not included in the official Linux kernel source. This makes it essential for managing proprietary or custom drivers that must be compiled separately.

### Development and Licensing  
DKMS was originally created by Dell in 2003 and has since been maintained as free software under the GNU General Public License (GPL). The project’s source code is publicly hosted on GitHub at https://github.com/dell/dkms. As a utility software framework, DKMS is classified as both free software and a software framework.

### Technical Functionality  
DKMS works by registering module source code along with instructions for building it. When a new kernel is installed, DKMS automatically recompiles the registered modules against the new kernel headers. This ensures continued operation of drivers such as NVIDIA graphics drivers or wireless network adapters that depend on kernel-specific interfaces.

Key features include:
- Automatic module rebuilding after kernel updates
- Support for multiple kernel versions simultaneously
- Integration with package managers like APT and YUM
- Command-line interface via `dkms` with associated man page `dkms.8`

### Supported Platforms and Packaging  
DKMS operates exclusively on Linux-based systems and is packaged for all major Linux distributions:
- **Ubuntu/Debian**: `dkms` package in apt repositories
- **Fedora/RHEL**: Available via DNF/YUM as `dkms`
- **Arch Linux**: Packaged as `dkms` in the official repositories
- **openSUSE**: Available as `dkms` through zypper
- **Gentoo**: Documented on the Gentoo Wiki under the article “DKMS”

It is also referenced in multilingual documentation, including articles in German, Spanish, French, Portuguese, Russian, Hebrew, Hungarian, Italian, Polish, and Belarusian.

### Version History  
DKMS has seen steady development over the years, with recent releases improving stability and compatibility:
- **v2.8.5** – Released August 24, 2021  
- **v2.8.4** – Released November 30, 2020  
- **v2.8.3** – Released July 15, 2020  
- **v2.8.2** – Released May 20, 2020  
- **v2.8.1** – Released October 31, 2019  
- **v2.7.1** – Released May 13, 2019  
- **v2.6.1** – Released April 25, 2018  
- **v2.5** – Released November 30, 2017  
Earlier versions include 2.4.0 (May 25, 2017) and 2.2.0.3 (December 7, 2011).

Each version typically includes bug fixes, improved build logic, and expanded compatibility with newer kernels and distribution packaging tools.

### Community and Documentation  
DKMS benefits from active community engagement:
- Stack Exchange tag: https://stackoverflow.com/tags/dkms
- ArchWiki article available in English, Spanish, French, Portuguese, and Russian
- Gentoo Wiki hosts a dedicated DKMS guide
- Man page (`dkms.8`) provides detailed usage instructions

Its presence in numerous online forums and wikis reflects its widespread use and importance in Linux administration workflows.

## References

1. [release new dkms version to v2.5](https://github.com/dell/dkms/releases)
2. [Release 2.5. 2017](https://github.com/dell/dkms/releases/tag/v2.5)
3. [Release 2.6.1. 2018](https://github.com/dell/dkms/releases/tag/v2.6.1)
4. [Release 2.7.1. 2019](https://github.com/dell/dkms/releases/tag/v2.7.1)
5. [Release 2.8.1. 2019](https://github.com/dell/dkms/releases/tag/v2.8.1)
6. [Release 2.8.2. 2020](https://github.com/dell/dkms/releases/tag/v2.8.2)
7. [Release 2.8.3. 2020](https://github.com/dell/dkms/releases/tag/v2.8.3)
8. [Release 2.8.4. 2020](https://github.com/dell/dkms/releases/tag/v2.8.4)
9. [Release 2.8.5. 2021](https://github.com/dell/dkms/releases/tag/v2.8.5)
10. [Release 2.8.6. 2021](https://github.com/dell/dkms/releases/tag/v2.8.6)
11. [Release 2.8.7. 2021](https://github.com/dell/dkms/releases/tag/v2.8.7)
12. [Release 2.8.8. 2021](https://github.com/dell/dkms/releases/tag/v2.8.8)
13. [Release 3.0.0. 2021](https://github.com/dell/dkms/releases/tag/v3.0.0)
14. [Release 3.0.1. 2021](https://github.com/dell/dkms/releases/tag/v3.0.1)
15. [Release 3.0.2. 2021](https://github.com/dell/dkms/releases/tag/v3.0.2)
16. [Release 3.0.3. 2021](https://github.com/dell/dkms/releases/tag/v3.0.3)
17. [Release 3.0.4. 2022](https://github.com/dell/dkms/releases/tag/v3.0.4)
18. [Release 3.0.5. 2022](https://github.com/dell/dkms/releases/tag/v3.0.5)
19. [Release 3.0.6. 2022](https://github.com/dell/dkms/releases/tag/v3.0.6)
20. [Release 3.0.7. 2022](https://github.com/dell/dkms/releases/tag/v3.0.7)
21. [Release 3.0.8. 2022](https://github.com/dell/dkms/releases/tag/v3.0.8)
22. [Release 3.0.9. 2022](https://github.com/dell/dkms/releases/tag/v3.0.9)
23. [Release 3.0.10. 2023](https://github.com/dell/dkms/releases/tag/v3.0.10)
24. [Release 3.0.11. 2023](https://github.com/dell/dkms/releases/tag/v3.0.11)
25. [Release 3.0.12. 2023](https://github.com/dell/dkms/releases/tag/v3.0.12)
26. [Release 3.1.0. 2024](https://github.com/dell/dkms/releases/tag/v3.1.0)
27. [Release 3.1.1. 2024](https://github.com/dell/dkms/releases/tag/v3.1.1)
28. [Release 3.1.2. 2024](https://github.com/dell/dkms/releases/tag/v3.1.2)
29. [Release 3.1.3. 2024](https://github.com/dell/dkms/releases/tag/v3.1.3)
30. [Release 3.1.4. 2024](https://github.com/dell/dkms/releases/tag/v3.1.4)
31. [Release 3.1.5. 2025](https://github.com/dell/dkms/releases/tag/v3.1.5)
32. [Release 3.1.6. 2025](https://github.com/dell/dkms/releases/tag/v3.1.6)
33. [Release 3.1.7. 2025](https://github.com/dell/dkms/releases/tag/v3.1.7)
34. [Release 3.1.8. 2025](https://github.com/dell/dkms/releases/tag/v3.1.8)
35. [Release 3.2.0. 2025](https://github.com/dell/dkms/releases/tag/v3.2.0)
36. [Release 3.2.1. 2025](https://github.com/dell/dkms/releases/tag/v3.2.1)
37. [Release 3.2.2. 2025](https://github.com/dell/dkms/releases/tag/v3.2.2)
38. [Release 3.3.0. 2025](https://github.com/dkms-project/dkms/releases/tag/v3.3.0)
39. [Release 3.4.0. 2026](https://github.com/dkms-project/dkms/releases/tag/v3.4.0)
40. Freebase Data Dumps. 2013
41. Quora