以上代码解释如下:
(1) obj-m := <模块名>.o:定义要生成的模块名称
(2) KERNELBUILD := /lib/modules/$(shell uname -r)/build : KERNELBUILD 为自定义名称,用于指向正在运行 Linux 的内核编译目录,其中“uname -r”标识显示对应的内核版本;
(3) CURRENT_PATH := $(shell pwd):CURRENT_PATH 为自定义名称,用于指向当前当前目录;
(4) all:编译执行的动作
(5) clean:zhixing make clean 需要的动作。“make clean”用于清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。
:wq保存退出
4.编译:
输入指令:make
可以看到编译后的文件
检查编译模块
也可通过 modinfo 命令进一步检查 :
5.插入模块
通过 insmod 命令插入模块,完成插入后可通过 lsmod 命令查看当前模块是否已经被加载到系统中:
第一个就是.
系统加载模块后,也会在“/sys/module”目录下新建以模块名命名的目录 :
6.查看日志输出
因 本 演示 中 prink()采 用 默认 输出 等级 ,可 通 过“ dmesg” 或“ tail /var/log/kern.log”命令查看输出结果。
到此这篇关于Ubuntu编译内核模块,内容体现系统日志中的文章就介绍到这了,更多相关buntu编译内核模块内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!