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、演示
本文来自博客园,作者:赛博狗尾草,转载请注明原文链接:https://www.cnblogs.com/gpysir/p/18910028
浙公网安备 33010602011771号