Linux 内核自定义模块构建跳过模块

Linux 内核自定义模块构建跳过模块

我正在尝试在我的 Linux 机器上交叉编译(arm64)自定义模块。所以到目前为止我所做的是:

  • 安装目标内核源
  • 安装交叉编译器
  • 启用模块并使用交叉编译器构建内核。到目前为止,一切顺利,最后我正确构建了一个“图像”文件

现在,我正在尝试构建我的模块。我移动到我有源的文件夹中。这是生成文件:

bj-m := my_module.o
PWD := $(shell pwd)
DEBUG := 1
my_module-objs += my_module_core.o my_module_utils.o
ccflags-y += -O2 -Wall -DDEBUG

all:
        make ARCH=arm64 CROSS_COMPILE=$(CROSS) -C $(KERNEL) M=$(PWD) modules

然后我尝试运行构建

make KERNEL=/tmp/linux-kernel-src/ CROSS=aarch64-linux-gnu-

我得到这个结果:

make[1]: Entering directory '/tmp/linux-kernel-src'
  Building modules, stage 2.
  MODPOST 0 modules
make[1]: Leaving directory '/tmp/linux-kernel-src'

所以看起来我没有错误,但构建过程只是跳过当前文件夹中应编译的所有文件,并且没有任何反应。

我想我错过了一些明显的东西......但我没有抓住什么......你有什么想法吗?

我看到另一篇文章有​​一个非常相似的问题(构建内核模块),但这在路径中有一个方括号,这不是我的情况。

多谢!

答案1

好吧,我正式傻了!我发现了,只是Makefile开头少了“o”

:-(

obj-m := my_module.o

非常遗憾!

相关内容