linux3.14.38 解决不能正确加载驱动 insmod: can't insert 'xxx.ko':invalid module format

本文详细解析了驱动加载失败的原因,主要由于内核版本不匹配或模块版本检测问题。提供了两套解决方案,一是确保驱动程序与运行内核版本一致,二是修改内核配置,强制加载驱动并关闭模块版本检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误原因总结 及 解决方法

1、  原因:这是因为 正在运行的板子的内核版本 与 编译驱动的内核版本 不一致造成的。

        解决方法:确保在与开发板运行的相同的内核版本下,编译你的驱动程序,如果正常情况 这个问题是可以解决的。

 

 2、 原因:如果你确定你的问题不是第1种情况,那么你把内核配置中的模块版本检测给去掉 并 强制加载驱动的选项给选上,我是通过这办法解决的。     

        解决方法: 将内核配置为强制加载驱动模块(我用的内核版本是 linux-3.14.38)

        ① make menuconfig 配置内核

        ② 选中 Enable loadable module support,并且敲回车进入

             选中 Forced module loading,强制加载驱动程序

             取消 Module versioning support,去掉模块版本检测

          ③ 编译内核,把这个内核烧写到开发板中。在此这个内核里,在编译好你的内核程序

               在开发板上就可以用insmod成功加载了,lsmod可以看到挂载的驱动。

                

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值