1. 首先 menuconfig 生成配置文件
不然会报错:
2. 编译时报错
错误信息:
make[1]: *** 没有规则可制作目标“debian/canonical-certs.pem
最后表现为上图所示。
有些文章,例如 会提及,即降低make的版本,实际上在此处不需要。
解决:
.config文件中,将如下配置宏的值清空
直接把=后面的内容改成 "" 就可以。
3. 编译自己的模块代码
配置环境变量
具体工具链的名称和路径根据自己的环境信息进行配置。
然后直接在源码路径下执行make,在执行前,主要修改内核源码路径即可。
4. 插入模块
插入模块其实很简单,但是由于编译依赖的内核和实际商用OS上运行的内核有些许差异。而商用内核又开启了模块的版本魔数校验。
例如本模块的插入时,提示如下信息:
在dmesg里面报信息如下:
解决方法:
网上提及的修改内核配置,例如 (12条消息) 模块加载时 insmod “Invalid module format ”问题解决_ymangu的博客-CSDN博客,将 模块加载的检查之类的去掉,在本案例中并不适用,因为此案例的宿主系统内核不受我们控制。