問題: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和內核的版本不一樣。