单一的一个文件hello.c是可以编译成功(hello.ko)并且运行的。但是增加了两个文件后(1.c和1.h)。编译成功但是insmod时出现:
module license 'unspecified' taints kernel
是Makefile写的有问题
hello.c和1.c应该编译成两个模块再链接成新的模块就ok了
新的Makefile:
obj-m = hello0.o
hello0-objs := 1.o hello.o
KDIR = /usr/src/linux-2.6-virtex
PWD = $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *~
本文介绍了一个关于Linux内核模块编译的问题。当尝试编译并加载包含多个源文件的内核模块时,遇到了模块许可证未指定导致内核被污染的错误。通过调整Makefile配置,将多个源文件正确地编译链接为单一模块,解决了这一问题。
965

被折叠的 条评论
为什么被折叠?



