What is dkms

Last updated: April 1, 2026

Quick Answer: DKMS (Dynamic Kernel Module Support) is a Linux system that automatically maintains and recompiles kernel modules when the kernel is updated, preventing driver compatibility issues and downtime.

Key Facts

What is DKMS?

Dynamic Kernel Module Support (DKMS) is a framework for Linux systems that automatically maintains kernel modules throughout the lifecycle of your system. When you update your Linux kernel, drivers and other kernel modules often become incompatible because they were compiled for the previous kernel version. DKMS solves this by automatically recompiling and reinstalling these modules whenever necessary.

How DKMS Works

DKMS operates by storing the source code of kernel modules in the /usr/src/ directory. When a kernel update is detected, DKMS triggers the recompilation of all registered modules against the new kernel version. This happens automatically, either during installation or through system services, ensuring your hardware drivers remain functional without manual intervention.

Common Uses

DKMS is particularly valuable for:

Benefits

The primary advantage of DKMS is reduced system maintenance burden. Without DKMS, after every kernel update, users would need to manually recompile drivers, which could be time-consuming and error-prone. DKMS also prevents driver-related system crashes and ensures consistent hardware functionality across kernel versions. This is especially important for production systems where downtime is costly.

Installation and Management

DKMS is typically installed as a package on Debian/Ubuntu systems via apt and Red Hat systems via yum/dnf. Once installed, individual kernel modules can be registered with DKMS, and the system automatically manages them. System administrators can check the status of DKMS modules using command-line tools like dkms status to verify that all modules are properly maintained.

Related Questions

What is a Linux kernel module?

A kernel module is a piece of code that can be loaded into the Linux kernel at runtime without recompiling the entire kernel, allowing dynamic addition of features and drivers.

What happens if DKMS fails during a kernel update?

If DKMS fails, affected drivers may not load, potentially causing hardware to become unavailable. Most systems have fallback drivers or can boot into recovery mode for troubleshooting.

Do all Linux drivers require DKMS?

No, many drivers are built into the kernel directly. Only third-party and proprietary drivers typically need DKMS for ongoing compatibility with kernel updates.

Sources

  1. Wikipedia - Dynamic Kernel Module Support CC-BY-SA-4.0
  2. Dell DKMS GitHub Repository GPL-2.0