最近学习嵌入式Linux驱动开发,遇到不少问题。最麻烦的就是
"Module.symvers is missing"
的问题。以下简要介绍一下此问题以及驱动开发开始阶段我遇到的问题的解答。我用的系统是fedora9和RHEL5,都测试通过。
1 内核源代码解压之后,无论如何,先到源代码目录下,编写.config文件,一般开发板厂商都给有了的,可以执行
"cp config_mini2440_t35 .config"
这个config_mini2440_t35是厂商给的配置文件。
然后执行
"make oldconfig && make prepare && make scripts"或者 "make oldconfig && make prepare "
再执行make
执行几分钟后就ctrl+c中断。(一直执行的话,大概要半小时)
这样做是为了生成一些编译驱动模块必须的文件,不这样做的话,后面可能会看到报错。
2 到驱动模块源码目录下,编写好Makefiel,记得内核源码指向刚做好的内核源码目录,编译器用arm-linux-gcc。执行make
3 如果提示"Module.symvers is missing",可在内核源码目录下,执行make命令(不是make zImage),内核和Module.symvers都会生成,我已试过,编译大概需要半个小时...不过也有网友说这样不能生产Module.symvers。
用此方法,简单的驱动模块都可以编译了,至于更复杂的模块编译时候会不会有问题,还不知道...
转自
http://hi.baidu.com/balenor/item/9883188382619fece596e0fd 在此表示感谢