使用友善之臂的Micro2440板子
Image内核版本为 2.6.29.4
使用光盘自带内核源码编译模块
源码本版2.6.29.4 编译模块时出现错误未找到autoconfig
进入源码路径 进行make menuconfig 保存config文件
编译模块成功
insmod的时候出现下面错误
version magic '2.6.29.4 mod_unload ARMv4 ' should be '2.6.29.4-FriendlyARM mod_unload ARMv4 '
insmod: cannot insert 'leddriver.ko': invalid module format
cp config_mini2440_n35 .config 导入预设配置信息
进入menuconfig 继续配置
General config ->
Local version -> 加入 -FriendlyARM
退出保存config 并且需要make一下 因为 编译模块时使用的是相关库文件 并没有直接使用原始文件(自认为)
不然仍会出现如上错误
再次insmod
rmmod 是 出现错误 rmmod: chdir(2.6.29.4-FriendlyARM): No such file or directory
原因是insmod等模块加载命令需要从lib/modules/(kernel version) 的目录下加载模块,所以必须先建立此目录,然后将模块放到此目录下面,否则将出现以下两种情况:
一是没有建立lib/modules/2.6.26.6目录,取决于内核版本号,将出现insmod: chdir(2.6.29.4-FriendlyARM): No such file or directory的错误
二是只将模块简单地放在根目录或其它文件夹,没有将其拷贝到指定的lib/modules/2.6.29.4-FriendlyARM/目录,将出现 insmod: module 'gpio_driver' not found错误 进入/lib/modules/目录 果真只有2.6.29.4目录 mkdir 2.6.29.4-FriendlyARM 再次加载卸载模块 成功!2011.5.26