阅读:1122回复:5
请教关于LINUX
写了一个模块,用insmod去加载该模块,系统提示:模块被编译的内核版本是2.4-20,而内核版本是2.4.20-8,所以不能加载。
我就把usr/src/linux-2.4.20-8/include/linux覆盖了以前linux目录,再编译,再用insmod去加载该模块,系统提示无license 请教各位大虾如何解决,我系统装得是REDHAT9。0 |
|
沙发#
发布于:2003-10-10 10:19
是不是忘记在module里输入
MODULE_LICENSE(\"GPL\")了 ? |
|
板凳#
发布于:2003-10-11 15:17
gokimi:
thank you! 加上MODULE_LICENSE(\"GPL\"),问题解决了,但不知我用2.4.20-8的include去覆盖2.4.20这种做法是否会对编译其它程序有影响? 另外,听说,用GCC编译时,可以指定内核版本。不知gokimi知不知道如何用。 :) |
|
地板#
发布于:2003-10-14 11:14
只要在insmod后加-f参数就行了吧
|
|
地下室#
发布于:2003-10-21 08:18
thank you!
|
|
5楼#
发布于:2003-10-22 09:33
上述方法可行但是不好。你在Makefile这么写就可以了
KERNELDIR = /usr/src/linux /*linux内核原代码目录*/ include $(KERNELDIR)/.config CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include \\ -O -Wall |
|