insmod modprobe加载驱动出现Invalid module format

来源:互联网 发布:如何优化手机系统 编辑:程序博客网 时间:2024/05/17 02:38

出现这个的问题主要是linux主机的内核版本和目标机的版本不一致,其实交叉编译是不会理会编译主机的内核版本的,但是还需要指定目标机的内核位置,如:

 选取一个驱动的Makefile文件

obj-m := mchpar1xxx.o

KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)


default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 
gcc -o inputactivate inputactivate.c
gcc -o inputverify inputverify.c

clean:
rm -f *.o *.cmd *.mod.c .*.o* .*.ko* *~ *.ko inputactivate inputverify
rm -rf .tmp_versions/


其中的KDIR指的是内核目录,这里指向的是主机的/lib/modules/...文件夹,最后找到的是主机的3.11版本,修改KDIR

指定为目标机内核的目录:

KDIR := /home/program/I.MX53/kernel-source/linux-2.6.35.3

这样重新编译驱动,就可以正常加载了

0 0
原创粉丝点击