C语言 使用 .o 文件构建 .ko 文件



我知道我们可以使用源 .c 文件制作一个 .ko 文件,并在下面给出后续的 makefile。现在,我想在不公开源代码的情况下创建一个相同类型的 .ko 文件。所以我计划使用 .o 对象文件来做到这一点。但是我没有走正确的路,如何根据此要求修改 Makefile?

obj-m += somesource.o
all:
    make -C $(KERNEL_SRC) M=$(PWD) modules 

clean:
    make -C $(KERNEL_SRC) M=$(PWD) clean

据我所知,不能在其他机器上创建的目标文件构建内核模块。唯一的例外是附带的文件,其中可能包含代码,但不能提供任何符号(变量或函数)。

我想这是防止在一个内核中使用函数和/或类型,在不同的内核中使用具有不兼容的函数签名或类型布局的保护。

如果您不想公开源代码,请在您的机器上构建完整的内核模块并分发它。

最新更新