arm 内核版本编译记录

1. 首先 menuconfig 生成配置文件

不然会报错:

2. 编译时报错

错误信息

make[1]: *** 没有规则可制作目标“debian/canonical-certs.pem

最后表现为上图所示。

有些文章,例如 会提及,即降低make的版本,实际上在此处不需要。

解决: 

.config文件中,将如下配置宏的值清空

直接把=后面的内容改成  "" 就可以。

3. 编译自己的模块代码

配置环境变量

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

export PATH=$PATH:$(pwd)/../../toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/

具体工具链的名称和路径根据自己的环境信息进行配置。

然后直接在源码路径下执行make,在执行前,主要修改内核源码路径即可。

4. 插入模块

       插入模块其实很简单,但是由于编译依赖的内核和实际商用OS上运行的内核有些许差异。而商用内核又开启了模块的版本魔数校验。

      例如本模块的插入时,提示如下信息:     

 insmod  wwww.ko
insmod: ERROR: could not insert module wwww.ko: Invalid module format

在dmesg里面报信息如下:   

dmesg
[  259.325391] wwww: version magic '4.19.0+ SMP mod_unload modversions aarch64' should be '4.19.115-g349e93465 SMP preempt mod_unload aarch64'

    解决方法

     网上提及的修改内核配置,例如 (12条消息) 模块加载时 insmod “Invalid module format ”问题解决_ymangu的博客-CSDN博客,将 模块加载的检查之类的去掉,在本案例中并不适用,因为此案例的宿主系统内核不受我们控制。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

proware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值