Chinaunix

标题: 新手求内核模块挂载问题 [打印本页]

作者: lpp540    时间: 2012-12-14 18:04
标题: 新手求内核模块挂载问题
pc机3.2的内核,开发板飞凌OK6410,内核3.0.1

在pc机上编译的模块,pc上能够挂载上,开以板上挂载不上。
[root@FORLINX6410]# insmod proc.ko
insmod: cannot insert 'proc.ko': invalid module format

求高手解答,谢谢!
作者: lpp540    时间: 2012-12-14 18:41
这是我的Makefile

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
作者: jhl19880722    时间: 2012-12-14 19:31
你用dmsg把错误显示出来看一下,如果内核的版本不一样也会出现这样的情况。
作者: lpp540    时间: 2012-12-14 19:37
回复 3# jhl19880722


    是pc机的版本和开发板的内核版本不一样,要怎样才能在pc机上编译后在开发板上挂载成功。
作者: jhl19880722    时间: 2012-12-14 20:00
将开发版的内核源码下下来,然后把你写的放进去,用交叉编译工具一起编译。你上网找找,这个还是很多的。
作者: lpp540    时间: 2012-12-14 20:11
谢谢jhl19880722的解答,没有其它的办法吗?
作者: rabbit2013    时间: 2012-12-14 21:14
应该用交叉编译
作者: jhl19880722    时间: 2012-12-15 09:23
回复 6# lpp540


   我只知道这么做
作者: flyingeagle1015    时间: 2012-12-16 11:03
make arch=arm试试
作者: lpp540    时间: 2012-12-16 11:32
回复 9# flyingeagle1015

谢谢!我试过了,不可以。

我PC机的内核版本和开发板的内核版本不一样,可我指定了开发板使用的内核源代码的目录,为什么编译还是不通过。
KDIR :=/lib/modules/linux-3.0.1/build

make: *** /lib/modules/linux-3.0.1/build: No such file or directory.  Stop.

   
作者: flyingeagle1015    时间: 2012-12-16 11:44
你PC上没有/lib/modules/linux-3.0.1/build吧,编译头文件什么的都是从这里找
拿linux-3.0.1的内核生成内核头文件 make arch=arm headers_install
作者: lpp540    时间: 2012-12-17 17:28
挂载问题解决了,卸载时又出问题了,

[root@FORLINX6410]# rmmod proc.ko
rmmod: chdir(/lib/modules): No such file or directory

作者: lpp540    时间: 2012-12-17 18:21
已解决,谢谢各位!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2