文章目录
- 一、环境
- 二、步骤
一、环境
ubuntu 20.04
内核版本:5.15-generic
二、步骤
先看一下ubuntu用的哪个内核版本:
到内核目录下:
随便建个文件夹存一下编译完的ko模块:
写测试代码:
写makefile:
编译:
插入模块,测试:
第一次加载的时候报警告了,污染了内核,有两条信息。第一条报警信息:
my_kotest: loading out-of-tree module taints kernel.
可能的原因:
- 模块没有声明GPL协议(以声明)
- 当前linux内核版本和编译模块使用的内核版本不一致(不存在,Makefile的路径就是ubuntu内核版本路径)
- 使用内核源代码未包含的树外模块,应该是这个问题。
第二条报警信息:
my_kotest: module verification failed: signature and/or required key missing - tainting kernel
是验签不通过,因为内核开启了签名验证:
但是没开启强制验证,否则直接加载不了。不过问题不大,只是为了测试用的,反正能正常加载。