dkms动态内核模块使用介绍

DKMS(Dynamic Kernel Module Support)是一种动态内核模块支持机制,它允许用户在每次内核更新时自动重新编译和安装内核模块,从而避免因内核版本更新导致的模块不兼容问题。dkms 命令是用于管理 DKMS 模块的工具

 

包名:dkms

安装

apt install dkms

 

功能使用:

添加模块

要将内核模块添加到 DKMS 管理中,你需要将模块源代码放置在 /usr/src 目录下,并按照特定的目录结构组织

将my_module的模块,版本为1.0,添加到dkms

sudo dkms add -m my_module -v 1.0

 

构建模块

该命令会根据模块的 Makefile 或 dkms.conf 文件来编译模块

sudo dkms build -m my_module -v 1.0

 

安装模块

安装完成后,模块会被加载到当前内核中

sudo dkms install -m my_module -v 1.0

 

列出已管理的模块

dkms status

~# dkms status

mpt3sas, 50.00.00.00, 4.9.0-8-linx-security-amd64, x86_64: installed (original_module exists)

 

删除模块

--all选项表示删除该模块在所有内核版本中的安装

sudo dkms remove -m my_module -v 1.0 --all

 

补充:

1、当内核更新时,DKMS 会自动重新编译和安装所有已管理的模块。你可以通过查看 /var/lib/dkms目录来确认模块是否已更新

2、其他常用选项

--force:在构建或安装模块时使用该选项可以强制操作,即使存在一些警告或错误。

--dry-run:在执行操作之前进行模拟运行,显示将要执行的命令,但不实际执行

3、示例配置文件 dkms.conf

在 /usr/src/my_module-1.0 目录下,通常需要有一个 dkms.conf 文件来描述模块的构建和安装信息。以下是一个示例:

PACKAGE_NAME="my_module"

PACKAGE_VERSION="1.0"

BUILT_MODULE_NAME[0]="my_module"

DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"

AUTOINSTALL="yes"

这个配置文件指定了模块的名称、版本、构建后的模块名称、安装位置以及是否自动安装。

4、演示

posted on 2025-06-04 13:52  赛博狗尾草  阅读(363)  评论(0)    收藏  举报

导航