linux3.14.38 解决不能正确加载驱动 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可以看到挂载的驱动。