日期:2014-05-16  浏览次数:20632 次

大家有研究wifi驱动的移植的吗?帮我看下!多谢!
首先我的pc机上linux内核版本是2.6.18。
下载的wifi驱动程序本身带有已经编译好的可执行.ko文件。我只是想把这些.ko文件加载到开发板的内核中验证一下。可是开发板的内核是2.4版本的,因此在加载驱动的过程中出现了问题。如:
insmod:unresolved symbol set_irq_type;
  unresolved symbol preempt_schedule;
  unresolved symbol finish_wait;
  unresolved symbol malloc_sizes;
  unresolved symbol pxa_gpio_mode;
  ................
本人在网上也搜集了资料,也是了很多方法,总是不行。请问各位高手有什么解决办法!
多谢啊!
注:我的wifi模块是是spi接口的

------解决方案--------------------
对应的库没有加入,或者路径不对,或者文件名不对,所以报错了
------解决方案--------------------
没有用过2.4的内核,不过ko是不是2.6内核才有的?
------解决方案--------------------
每一版本的内核驱动程序各种结构的都是有变动的,你都不知道是那个版本的内核下编译的驱动程序,就想用,你觉得能好使吗
------解决方案--------------------
原则上讲,与你pc的内核版本没有关系,仅与交叉编译环境的内核(开发板使用的内核)有关系,你使用2.4内核编译的驱动文件的扩展名不会是.ko。驱动程序与你开发板内核息息相关,必须完全吻合。
------解决方案--------------------
就算是同样2.6 ,几个重要到参数不同就不能加载driver,何况相对2.4 几乎全改了
------解决方案--------------------
makefile设置貌似是对的
版本不一样 insmod 的错误不是这样的
这个错误 应该是你驱动 调用了什么库,而你的库没有放在板子上 所以在加载驱动的时候 那个函数没有加载上提示那个错误。。。检查下吧。。
------解决方案--------------------
1xpq00,您好:
对于你说的这个原因,我该怎么改呢?得要比对板子上的库函数,然后找到出错的地方,加个export生命?还是怎么样,请问你也什么解决的办法吗?
请指教!
------解决方案--------------------
insmod:unresolved symbol set_irq_type;
unresolved symbol preempt_schedule;
unresolved symbol finish_wait;
unresolved symbol malloc_sizes;
unresolved symbol pxa_gpio_mode;
查看这些 set_irq_type preempt_schedule finish_wait malloc_sizes pxa_gpio_mode 这些函数所在的实现地方,要么是被单独编译到库文件里面去了,要么是系统库,如果编译到库文件里面去了,把这个库放入linux系统lib文件夹下面即可,如果是系统库,去下个这个系统对应的库即可,我个人感觉应该变为库文件了,以前一直wifi到没遇到过这个样的问题。。。希望对你有帮助 。。