Saya menemukan solusinya, saya menempatkan file sumber saya di sub folder:
Makefile
src/mymodule.c
src/mymodule_func.c
#Makefile
obj-m += mymodule.o
mymodule-objs := ./src/mymodule.o ./src/mymodule_func.o
all:
make -C $(KERNEL_PATH) M=$(PWD) modules
clean:
make -C $(KERNEL_PATH) M=$(PWD) clean
Cara yang tepat untuk memperbaiki file kernel make adalah sebagai berikut:
#
obj-m+= my_module.o
#append other source files except my_module.c which would be include by default
my_module-objs+= src1.o src2.o
Sesuai pemahaman saya, tidak mungkin memiliki nama modul dan nama sumber yang sama. Akan lebih baik untuk memberikan nama modul sebagai module.o
dan gunakan Makefile untuk mengkompilasi modul kernel yang dapat dimuat seperti yang ditunjukkan di bawah ini,
Makefile
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
**obj-m := module.o
module-objs := mymodule.o mymodule_func.o**
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
EXTRA_CFLAGS += -DDEBUG
else
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean
Cara membuka port 2195 di iptables CentOS 6 untuk aktivasi APNS
Ulangi perintah secara otomatis di Linux