问题:insmod mod_name.ko 出现Invalid parameters,
dmesg显示信息:
mod_name: disagrees about version of symbol xx_func
mod_name: Unknown symbol xx_func (err -22)
解决方法:1(没有解决)
开始以为是/lib/module/'uname -r'/build/下的Module.symvers没有指明,则在Makefile中添加KBUILD_EXTRA_SYMBOLS:
SYM := /lib/modules/$(shell uname -r)/build/Module.symvers
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) KBUILD_EXTRA_SYMBOLS=$(SYM) modules
查了些资料(http://lxr.free-electrons.com/source/Documentation/kbuild/modules.txt#L469)469行,上面写如果自己写了两个模块,在模块2中引用模块1的方法,要中这个办法,而我这个方法没有解决方法。
解决方法:2
这篇文章说的就是这个问题(https://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/),是版本的问题。
xx_func和内核的版本不一样。