【发布时间】:2014-10-13 15:11:13
【问题描述】:
我正在修改现有的内核模块 SCTP。我已经把它做成了一个可加载的内核模块,这样我就可以修改模块并在运行时进行测试。该模块的Makefile为:
#
# Makefile for SCTP support code.
#
obj-$(CONFIG_IP_SCTP) += sctp.o
obj-$(CONFIG_NET_SCTPPROBE) += sctp_probe.o
sctp-y := sm_statetable.o sm_statefuns.o sm_sideeffect.o \
protocol.o endpointola.o associola.o \
transport.o chunk.o sm_make_chunk.o ulpevent.o \
inqueue.o outqueue.o ulpqueue.o command.o \
tsnmap.o bind_addr.o socket.o primitive.o \
output.o input.o debug.o ssnmap.o auth.o
sctp_probe-y := probe.o
sctp-$(CONFIG_SCTP_DBG_OBJCNT) += objcnt.o
sctp-$(CONFIG_PROC_FS) += proc.o
sctp-$(CONFIG_SYSCTL) += sysctl.o
sctp-$(subst m,y,$(CONFIG_IPV6)) += ipv6.o
当我运行 make 时,它会创建 3 个文件 sctp_probe.o, sctp.o and modules.order。但是sctp_probe.ko and sctp.ko不是由上面的Makefile创建的。
如何修改上面的Makefile来创建这两个内核对象文件?
更新了@vinay hunachyal 的答案的其他部分。
我尝试了这个方法。在诊断出一些错误之后。现在我在内核编译结束时得到这个错误。
depmod: WARNING: /lib/modules/3.16.1/kernel/fs/dlm/dlm.ko needs unknown symbol sctp_do_peeloff
sh ./arch/x86/boot/install.sh 3.16.1 arch/x86/boot/bzImage \
System.map "/boot"
depmod: WARNING: /lib/modules/3.16.1/kernel/fs/dlm/dlm.ko needs unknown symbol sctp_do_peeloff
【问题讨论】:
-
正确更新问题..因为错误是在depmod期间而不是在模块编译时。所以把你尝试的一些步骤和错误日志。?
标签: linux-kernel makefile kernel kernel-module