您当前的位置:首页 > 计算机 > 编程开发 > Other

驱动模块(ko)文件加载失败分析

时间:08-16来源:作者:点击数:

在实际工作中,通常出现SDk编译出来的驱动模块,在最小系统中加载失败,即insmod xxx.ko 失败,“disagree param with the version"等之类的提示。

1.分析内核版本, uname -a 一看,最小系统的内核版本和编译SDK的内核版本一样。(因为SDK编译出来就是一个驱动ko,以及在驱动的基础上做了一个适配库.so),所以SDK本质上就是一个内核模块驱动+适配层代码。自然在编译时是需要依赖内核的。纳闷了,内核版本一样,工具链也是一套的,编译出来的ko却加载失败。

2.通过分析编译最小系统的内核和编译SDK的内核,发现两个内核虽然版本一样,但两个内核配置不一样。即最小系统的内核代码在make menuconfig 对内核做了裁剪。问题有眉目了,可能是最小系统的内核做了裁剪,而SDK编译的内核没有同步更新,造成SDk编译的驱动在最小系统中找不到对应的依赖。

解决办法:

  • 1.将最小系统的make menucofig所产生的.config 替换SDK编译的内核源码中,做到编译最新系统的内核源码和编译SDK的内核源码 .cofnig一致。
  • 2.OK 问题解决
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门