内核模块makefile输出名称

Tom*_*mir 2 c linux makefile linux-kernel

我正在尝试编译我的内核模块..c文件名是file1.c,但我需要.ko文件名mod1.ko.

我怎样才能做到这一点?

我目前的makefile:

obj-m := mod1.o
KDIR :=/lib/modules/$(shell uname -r)/build
PDW := $(shell pwd)

all:
    $(MAKE) -C $(KDIR) M=$(PDW) modules

clean:
    $(MAKE) -C $(KDIR) M=$(PDW) clean
Run Code Online (Sandbox Code Playgroud)

Krz*_*ski 5

您应该将第一行更改为以下内容:

obj-m += module_name.o
module_name-y := file1.o
Run Code Online (Sandbox Code Playgroud)

module_name模块文件名在哪里(在这个例子中输出将是module_name.ko),它将从中构建file1.c.您可以将多个源文件添加到第二行,因此它可以是:

module_name-y := file1.o file2.o file3.o
Run Code Online (Sandbox Code Playgroud)

在这种情况下module_name.ko将构建file1.c,file2.cfile3.c.

如果要完全了解Linux内核makefile,则应阅读本文档.您的问题在第190行附近描述.