pc机3.2的内核,开发板飞凌OK6410,内核3.0.1
在pc机上编译的模块,pc上能够挂载上,开以板上挂载不上。
[root@FORLINX6410]# insmod proc.ko
insmod: cannot insert 'proc.ko': invalid module format
编译驱动,要看你编译的驱动在哪里加载,也就是看驱动的使用环境。如果在虚拟机内加载,你就要知道虚拟机里linux内核的版本,如果你在开发板上加载,那么你就要知道开发板使用的内核版本,这个版本就对应Makefile中的内核路径 ,你可以参考我在http:-//bbs.csdn.-net/topics/390316390中给予楼主的回答。附上你可能使用这个Makefile就可以了
obj-m := proc.o
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
ifneq ($(KERNELRELEASE),)
modules-obj := proc.c
obj-m += proc.o
else
KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.k0
rm -rf *.o
rm -rf *.mod.*
rm -rf .*.cmd
endif
如果你在虚拟机上insmod,那么你就用我给你的Makefile。如果你想在板子上insmod,你要看你放在虚拟机里内核的路径对不对。