![](/img/trans.png)
[英]Building an out-of-tree Linux kernel module in a separate object directory
[英]Building an out-of-tree linux kernel module with separate output directory
我想构建一个树外内核模块,输出目录与我的源目录分开? 我该怎么做? 我愿意走任何一条路。 我对内核构建系统的改动很小,我可以复制源文件(但是,如果我没有对源文件进行任何更改,我不想重建,如果我复制,这将不起作用源文件通常),我可以设置参数或其他东西。
很多人都面临这个问题,包括我。 支持在单独的输出目录中构建外部模块。 我修改了kbuild:
首先,在scripts/Makefile.build
和scripts/Makefile.clean
修改 src 变量
-src := $(obj)
+src := $(if $(KBUILD_EXTMOD_SRC),$(KBUILD_EXTMOD_SRC)$(patsubst $(KBUILD_EXTMOD)%,%,$(obj)),$(obj))
其次,修改scripts/Makefile.modpost
-src := $(obj)
+src := $(if $(KBUILD_EXTMOD_SRC),$(KBUILD_EXTMOD_SRC),$(obj))
# Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS
-include $(if $(wildcard $(KBUILD_EXTMOD)/Kbuild), \
- $(KBUILD_EXTMOD)/Kbuild, $(KBUILD_EXTMOD)/Makefile)
+include $(if $(wildcard $(src)/Kbuild), \
+ $(src)/Kbuild, $(src)/Makefile)
然后像这样构建外部模块:
make -c $(kernel_src) M=$(extmod_outpu_dir) KBUILD_EXTMOD_SRC=$(extmod_src_dir) modules
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.