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

错误原因总结 及 解决方法

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

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

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

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

        ① make menuconfig 配置内核

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

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

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

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

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

                

        

猜你喜欢

转载自blog.csdn.net/weixin_39127054/article/details/82689084