如何使用;“已装运”;内核模块中的makefile

如何使用;“已装运”;内核模块中的makefile,makefile,linux-kernel,Makefile,Linux Kernel,我想通过链接一个构建的对象文件来生成一个.ko文件。。我读过关于“kbuild”系统中提供的信息,但没有足够的详细信息 请提供帮助。Kbuild系统根据清除命令删除所有对象文件(*.o)。任何外部对象文件也将被删除,除非将其扩展名从.o更改为.o以保留它们 下面的示例Makefile演示了如何使用\u shipped链接模块8123.ko中的对象文件8123\u bin.o\u shipped: ifneq ($(KERNELRELEASE),) # kbuild part of makefil

我想通过链接一个构建的对象文件来生成一个.ko文件。。我读过关于“kbuild”系统中提供的信息,但没有足够的详细信息


请提供帮助。

Kbuild系统根据
清除
命令删除所有对象文件(
*.o
)。任何外部对象文件也将被删除,除非将其扩展名从
.o
更改为
.o
以保留它们

下面的示例
Makefile
演示了如何使用
\u shipped
链接模块
8123.ko
中的对象文件
8123\u bin.o\u shipped

ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
obj-m  := 8123.o
8123-y := 8123_if.o 8123_pci.o 8123_bin.o

else
# normal makefile
KDIR ?= /lib/modules/`uname -r`/build

default:
        $(MAKE) -C $(KDIR) M=$$PWD

# Module specific targets
genbin:
        echo "X" > 8123_bin.o_shipped
endif
基本上,
.o\u附带的
文件与
.o
文件相同,只是Kbuild系统知道它是一个二进制blob,按原样提供,其源代码在内核/模块源目录中不可用。因此,即使在清理源代码时,
*.o_装运的
二进制blob也将保留


有关更多详细信息,请参见

您能解释一下您需要什么吗?