DKMS(8) System Manager's Manual DKMS(8) (NAME) dkms - (Dynamic Kernel Module Support) (SYNOPSIS) dkms [action] [options] [module/module-version] [/path/to/source-tree] [/path/to/tarball.tar] [/path/to/driver.rpm] (DESCRIPTION) dkms . (ACTIONS) add [module/module-version | /path/to/source-tree | /path/to/tarball.tar] /- (tree) . module/module-version -m module/module-version -m module -v module-version /usr/src/-/ dkms.conf . /path/to/source-tree dkms.conf /path/to/source-tree /usr/src/module-module-version () . /path/to/tarball.tar ldtarball . remove [module/module-version] [-k kernel/arch] [--all] / /// . (uninstall) original_module ( ) . --all . build [module/module-version] [-k kernel/arch] [--force] / / (build ). -k . /var/lib/dkms///build/ . /- dkms build add . --force . unbuild [module/module-version] [-k kernel/arch] [--all] / /// (undo ). original_module . . --all . install [module/module-version] [-k kernel/arch] [--force] [/path/to/driver.rpm] / . . dkms . dkms . install build add . --force . .rpm dkms rpm -Uvh RPM autoinstall . uninstall [module/module-version] [-k kernel/arch] [--all] /- / -k -k . --all . (built) . remove . match [--templatekernel kernel/arch] [-k kernel/arch] Match templatekernel . dkms templatekernel . mktarball [module/module-version] [-k kernel/arch] [--archive /path/to/tarball.tar] [--source-only] [--binaries-only] (tarball) DKMS / . ( ) . ( -k kernel1/arch1 -k kernel2/arch2 ). --archive . --binaries-only . --source-only . mktarball ldtarball . ldtarball [/path/to/tarball.tar] [--force] mktarball DKMS . (built) dkms install . ldtarball . --force . status [module/module-version] [-k kernel/arch] . / // . 'source' / 'broken' () . dkms / . . 'source' add / dkms . autoinstall (revision) . autoinstaller DKMS (stub) . generate_mok Secure Boot . DKMS . () . (OPTIONS) -m / . -m . -v . -m . -k / . -k / . ( ). DKMS . -a, --arch . -k . ( uname -m ). -a . -k -a . DKMS -a -k . : -k kernel1 -k kernel2 -a i386 -k kernel3 -a i686 -a x86_64 DKMS : kernel1-i386 kernel2-i686 kernel3-x86_64. -q, --quiet (Quiet). -V, --version dkms . -h, --help . -c dkms.conf. add /usr/src/-/ . dkms.conf . --config build include/config/auto.conf . dkms dkms include/config/auto.conf ( .config) . --archive ldtarball DKMS . --archive . --templatekernel : match. Match templatekernel / . --force build install ldtarball . --force-version-override ( ). --binaries-only mktarball DKMS . . - DKMS . DKMS - ( ). --source-only mktarball DKMS . --all / /- . remove unbuild uninstall . -k kernel1 -a arch1 -k kernel2 -a arch2 . --no-depmod depmod DKMS install uninstall () . --modprobe-on-install modprobe . --kernelsourcedir . /usr/lib/modules/$kernel_version/build . --directive <"cli-directive=cli-value"> (directives) . --directive . --rpm_safe_upgrade DKMS RPM . add remove spec RPM DKMS RPM RPM dkms . --dkmstree path/to/place . . --sourcetree path/to/place DKMS . (root) DKMS . --installtree path/to/place dkms install . -j number number -j make(1) . nproc(1) . 0 . --verbose DKMS . (ORIGINAL MODULES) dkms /usr/lib/modules/ . "original_module" dkms . DKMS /usr/lib/modules//updates/ $DEST_MODULE_LOCATION ( dkms.conf ) . find . . ( ) "original_module" . /var/lib/dkms//original_module/$kernelver/collisions ** . DKMS /collisions . DKMS.CONF (DKMS.CONF) add dkms.conf . DKMS . . dkms.conf dkms (source) ( 'DIRECTIVE="directivetextgoeshere"' ). (ALL CAPS) . DKMS . . MAKE[#] MAKE_MATCH[#] . PATCH[#] PATCH_MATCH[#] . BUILT_MODULE_NAME[#] BUILT_MODULE_LOCATION[#] DEST_MODULE_NAME[#] DEST_MODULE_LOCATION[#] STRIP[#] . dkms.conf 0 . PACKAGE_NAME= . -m MODULE_NAME . DKMS . PACKAGE_VERSION= dkms . DKMS . BUILT_MODULE_NAME[#]= . DKMS . ".o" ".ko" . dkms # BUILT_MODULE_NAME BUILT_MODULE_LOCATION DEST_MODULE_NAME DEST_MODULE_LOCATION 0 ( BUILT_MODULE_NAME[0]="qla2200" BUILT_MODULE_NAME[1]="qla2300" ). BUILT_MODULE_LOCATION[#]= DKMS . ( dkms.conf ) . DKMS BUILT_MODULE_NAME[#] . dkms # BUILT_MODULE_NAME BUILT_MODULE_LOCATION DEST_MODULE_NAME DEST_MODULE_LOCATION 0 ( BUILT_MODULE_LOCATION[0]="some/dir/" BUILT_MODULE_LOCATION[1]="other/dir/" ). DEST_MODULE_NAME[#]= . BUILT_MODULE_NAME[#] DEST_MODULE_NAME[#] . ".o" ".ko" . BUILT_MODULE_NAME[#] . dkms # BUILT_MODULE_NAME BUILT_MODULE_LOCATION DEST_MODULE_NAME DEST_MODULE_LOCATION 0 ( DEST_MODULE_NAME[0]="qla2200_6x" DEST_MODULE_NAME[1]="qla2300_6x" ). DEST_MODULE_LOCATION[#]= . original_modules . . "/kernel" /usr/lib/modules//kernel . dkms # BUILT_MODULE_NAME BUILT_MODULE_LOCATION DEST_MODULE_NAME DEST_MODULE_LOCATION 0 ( DEST_MODULE_LOCATION[0]="/kernel/drivers/something/" DEST_MODULE_LOCATION[1]="/kernel/drivers/other/" ). DEST_MODULE_LOCATION Fedora Red Hat Enterprise Linux SuSE Linux Enterprise Server openSUSE Ubuntu . . STRIP[#]= strip "yes" . "no" DKMS strip -g (debug symbols) . STRIP[0] STRIP . MAKE[#]= MAKE DKMS make . make MAKE[0] . MAKE MAKE_MATCH[#] ( grep -E) . MAKE_MATCH[#] MAKE[#] # > 0 MAKE . MAKE_MATCH[0] MAKE[0] . MAKE_MATCH MAKE[#] . MAKE MAKE_MATCH DKMS make . KERNELRELEASE=$kernelver -j$parallel_jobs MAKE[#] . make : 'make'. MAKE_MATCH[#]= MAKE[#] . DKMS make MAKE[#] . NO_WEAK_MODULES= NO_WEAK_MODULES "yes" dkms weak-updates . weak modules kABI . "yes" "no" . kABI Red Hat Enterprise Linux ( ) SUSE Linux Enterprise Server openSUSE Leap . OBSOLETE_BY= . BUILD_EXCLUSIVE_KERNEL_MAX OBSOLETE_BY . DKMS () . (upstream) ABI (bump) . "2.6.24" "2.6.24-16" ABI . . ()MODULE_VERSION . ()MODULE_VERSION OBSOLETE_BY . / OBSOLETE_BY / . PATCH[#]= PATCH (patches) . -p1 patch -p1 . patches ( /usr/src/-/patches/ ) /etc/dkms//patches/ ( ) . /var/lib/dkms///build/ . PATCH_MATCH[#] PATCH_MATCH[#] dkms PATCH[#] . PATCH_MATCH[#]= PATCH[#] . PATCH_MATCH PATCH[#] . AUTOINSTALL= "yes" autoinstaller DKMS . DKMS (DKMS AUTOINSTALLER) . "yes" "no" . BUILD_DEPENDS[#]= . PACKAGE_NAME dkms . . [--force] . autoinstall dkms . dkms ( ) autoinstall . autoinstall dkms (deferred) : added autoinstall . postinst dkms . autoinstall . : A B A . A autoinstall (kernel post hook) . A B . BUILD_DEPENDS_REBUILD= yes BUILD_DEPENDS . /etc/dkms/.conf . /var/lib/dkms//-/.dep_ . . --force . BUILD_EXCLUSIVE_KERNEL= DKMS . ( BUILD_EXCLUSIVE_* ) 77 . dkms autoinstall . ="^2.4.*" 2.6 . BUILD_EXCLUSIVE_KERNEL_MIN= BUILD_EXCLUSIVE_KERNEL_MAX= . ( ) . BUILD_EXCLUSIVE_KERNEL_MIN "=3.5" "3.5-rc2" "3.6.18" "3.4.999" . BUILD_EXCLUSIVE_KERNEL_MAX ="4.12" "4.11.999" "3.9-rc5" "4.12-rc1" . BUILD_EXCLUSIVE_ARCH= BUILD_EXCLUSIVE_KERNEL . ="i.86" ia32e x86_64 amd64 s390 . BUILD_EXCLUSIVE_CONFIG= ("CONFIG_FOO") ".config" ( ) ( "!CONFIG_BAR") . ="CONFIG_PCI !CONFIG_PREEMPT_RT" PCI RT . BUILD_EXCLUSIVE_KERNEL[#]=, BUILD_EXCLUSIVE_KERNEL_MIN[#]=, BUILD_EXCLUSIVE_KERNEL_MAX[#]=, BUILD_EXCLUSIVE_ARCH[#]=, BUILD_EXCLUSIVE_CONFIG[#]= . BUILD_EXCLUSIVE . BUILD_EXCLUSIVE () . : BUILD_EXCLUSIVE_KERNEL[0]="^5..*" BUILD_EXCLUSIVE_KERNEL[1]="^6..*" 0 5.x 1 6.x . POST_ADD= add . . POST_BUILD= build . . POST_INSTALL= install . . POST_REMOVE= remove . . PRE_BUILD= build . . PRE_INSTALL= install . . . . (POST_ADD PRE_BUILD POST_BUILD PRE_INSTALL POST_INSTALL POST_REMOVE) /etc/dkms// . /etc/dkms// . DKMS.CONF (DKMS.CONF VARIABLES) DKMS . $kernelver . MAKE INCLUDE ( MAKE="make all INCLUDEDIR=/usr/lib/modules/${kernelver}/build/include"). $kernel_source_dir . /usr/lib/modules/$kernelver/build --kernelsourcedir . DKMS.CONF (DKMS.CONF OVERRIDES) dkms.conf (override) . dkms.conf dkms : /etc/dkms/.conf /etc/dkms/-.conf /etc/dkms/--.conf /etc/dkms/---.conf dkms.conf . /etc/dkms// : /etc/dkms//patches/ -- ( /etc/dkms//patches/subdir/patch.patch subdir/patch.patch ) /etc/dkms// -- PRE_BUILD POST_BUILD ( ) FRAMEWORK.CONF (FRAMEWORK.CONF MAIN CONFIGURATION) /etc/dkms/framework.conf DKMS . dkms (source) . . . /etc/dkms/framework.conf /etc/dkms/framework.conf.d/*.conf . dkms_tree, source_tree, install_tree, tmp_location DKMS (artifacts) . verbose (null) DKMS . symlink_modules /usr/lib/modules . --dkmstree --sourcetree --installtree --symlink-modules . autoinstall_all_kernels postinst DKMS . . . sign_file sign-file . $kernelver . . mok_signing_key, mok_certificate Secure Boot. $kernelver . : mok_signing_key mok_certificate dkms . mok_signing_key sign-file "...:pkcs11" PKCS#11 . modprobe_on_install . parallel_jobs . compress_gzip_opts, compress_xz_opts, compress_zstd_opts . . build_environment (export ) source DKMS (import) . gcc $kernelver . : GCC ( export CC=/opt/gcc12/bin/gcc ): build_environment="/opt/gcc12/env" gcc-toolset-11 UEK Oracle Linux: build_environment="/opt/rh/gcc-toolset-11/enable" post_transaction dkms autoinstall dkms install dkms remove/unbuild/uninstall. initrd ( kexec DKMS ) . eval $kernelver . : (ram disk) : post_transaction="dracut --force --kver $kernelver" ( Red Hat) post_transaction="update-initramfs -k $kernelver" ( Debian). : post_transaction="/path/to/script.sh" : post_transaction="systemctl restart something.service" : post_transaction="dracut --force --regenerate-all" ( Red Hat) post_transaction="update-initramfs -k all" ( Debian). DKMS (DKMS AUTOINSTALLER) autoinstaller DKMS ( dkms_autoinstaller dkms.service ) (boot-time) AUTOINSTALL="yes" dkms.conf . DKMS . (AUTHOR) Gary Lerhaupt, Emil Velikov, Simone Caronni, Xu Zhen (WEBPAGE) https://github.com/dkms-project/dkms dkms-3.4.3 16 Aug 2026 DKMS(8)