出现insmod: can't insert 'kernel_hello.ko': invalid module format解决方法:
问题:
~ >: ls
: info proc tmp
apps init root usr
bin
kernel_hello.ko s3c_led.ko var
data lib sbin
dev linuxrc sys
etc mnt test_s3c_led
~ >:lsmod
~ >: insmod kernel_hello.ko
insmod: can't insert 'kernel_hello.ko': invalid module format
错误原因:这个错误是因为驱动模块与开发板现在正在运行的内核不一致,重新编译升级最新的Linux内核之后重新测试OK!
解决方法:
进入到虚拟机的内核部分:
[wudongxu@localhost linux-3.0]$ ls
arch firmware kernel modules.order sound
block fs kk Module.symvers System.map
build.sh include lib net tools
COPYING init linuxrom-s3c2440.bin README usr
CREDITS ipc MAINTAINERS REPORTING-BUGS virt
crypto k Makefile samples vmlinux
Documentation Kbuild mm scripts vmlinux.o
drivers Kconfig modules.builtin security
[wudongxu@localhost linux-3.0]$ make clean
//清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件//
[wudongxu@localhost linux-3.0]$make
//从新编译内核//
[wudongxu@localhost linux-3.0]$sz linuxrom-s3c2440.bin
//把内核文件传到windos下//
从新从开发版上下载:
~ >: rm -rf kernel_hello.ko
//删除之前的kernel_hello.ko文件//
~ >: tftp -gr kernel_hello.ko 192.168.1.172
kernel_hello.ko 100% |*******************************| 23798 0:00:00 ETA
~ >: ls
: info proc tmp
apps init root usr
bin
kernel_hello.ko s3c_led.ko
var
data lib sbin
dev linuxrc sys
etc mnt test_s3c_led
~ >: lsmod
~ >: insmod kernel_hello.ko
hello,wudongxu IoT Studio!
~ >: lsmod
kernel_hello 561 0 - Live 0xbf004000
这样就OK啦!