What is dkms linux
Last updated: April 1, 2026
Key Facts
- DKMS automatically rebuilds kernel modules after kernel updates without manual intervention
- Originally developed by Dell for managing proprietary drivers on Linux systems
- Stores module source code in /usr/src/ and configurations in /etc/dkms/
- Commonly used for NVIDIA drivers, VirtualBox Guest Additions, and third-party hardware drivers
- Simplifies driver maintenance by removing the need for manual recompilation after every kernel upgrade
What is DKMS?
DKMS stands for Dynamic Kernel Module Support, a framework that manages the compilation and installation of kernel modules on Linux systems. It was originally created by Dell Technologies to address the challenge of maintaining driver compatibility when Linux kernels are updated. DKMS automates the process of recompiling kernel modules, ensuring that drivers continue to work properly after system updates.
How DKMS Works
When a kernel update occurs, DKMS detects the change and automatically rebuilds any registered kernel modules using the new kernel's sources. This happens transparently in the background, typically during the kernel update process. DKMS stores module source code in the /usr/src/ directory and maintains configuration files in /etc/dkms/, allowing it to manage multiple kernel versions and module versions simultaneously.
Common Uses
DKMS is widely used for managing proprietary drivers that don't ship with Linux distributions. Common applications include NVIDIA graphics drivers, AMD GPU drivers, VirtualBox Guest Additions, and various hardware manufacturer drivers. It's particularly valuable for systems that receive frequent kernel updates, as it eliminates the tedious process of manually recompiling drivers after each update.
Benefits of DKMS
The primary advantage of DKMS is automation and convenience. Instead of manually downloading source code, compiling modules, and troubleshooting compatibility issues, users can simply install a DKMS-enabled driver package once, and the system handles updates automatically. This reduces system maintenance overhead and minimizes downtime caused by incompatible drivers after kernel updates.
Installation and Management
Installing DKMS-managed modules is straightforward through package managers on most distributions. Once installed, modules can be managed using the dkms command-line tool, which provides options to build, install, remove, and query kernel modules. System administrators can monitor DKMS status and troubleshoot issues using standard Linux tools.
Related Questions
How do I check if DKMS is installed on my Linux system?
You can check DKMS installation by running 'dkms status' in terminal. If DKMS is installed, it will list all registered modules. You can also install it via your package manager if it's not present.
Why does DKMS fail to compile after a kernel update?
DKMS compilation failures usually occur due to missing kernel headers, incompatible source code with new kernel versions, or missing build tools like gcc and make. Installing kernel-headers and build-essential typically resolves these issues.
Can I manually disable DKMS for a specific module?
Yes, you can use 'dkms remove' to unregister modules or disable automatic compilation. You can also prevent specific modules from building by editing DKMS configuration files in /etc/dkms/.
More What Is in Daily Life
Also in Daily Life
More "What Is" Questions
Trending on WhatAnswers
Browse by Topic
Browse by Question Type
Sources
- Wikipedia - DKMSCC-BY-SA-4.0
- Dell - DKMS ProjectGPL
- Ubuntu Forums - DKMS GuideCC-BY-SA-3.0