C 如何向内核模块添加额外的依赖项

C 如何向内核模块添加额外的依赖项,c,kernel,openwrt,C,Kernel,Openwrt,我正试图通过复制/package/fbtft目录中所有必要的文件,将fbtt内核模块作为一个外部包添加到openwrt中,就像这家伙所做的那样 问题是fbtft是使用-DCONFIG\u FB\u DEFERRED\u IO=1编译的。这个定义被一些帧缓冲区结构使用,比如fb.h中的fb_info。如果定义了CONFIG_FB_DEFERRED_IO,则结构具有不同的大小。 现在,linux帧缓冲区文件(如fbsysfs.c)使用此fb_info结构,而不是使用此CONFIG_fb_DEFERR

我正试图通过复制/package/fbtft目录中所有必要的文件,将fbtt内核模块作为一个外部包添加到openwrt中,就像这家伙所做的那样

问题是fbtft是使用-DCONFIG\u FB\u DEFERRED\u IO=1编译的。这个定义被一些帧缓冲区结构使用,比如fb.h中的fb_info。如果定义了CONFIG_FB_DEFERRED_IO,则结构具有不同的大小。 现在,linux帧缓冲区文件(如fbsysfs.c)使用此fb_info结构,而不是使用此CONFIG_fb_DEFERRED_IO标志编译,这会导致fb_info具有不同的大小。Fbtft使用fbsysfs.c为fb_info结构分配内存,但两者的大小不同,因为它们不是用相同的标志编译的

我试图从“make kernel_menuconfig”中添加FB_BROADSHEET和FB_AUO_K190X(取决于FB_DEFERRED_IO),但fbsysfs.c和其他帧缓冲区文件仍然没有使用所需的标志编译(我可以通过查看.fbsysfs.o.cmd文件看到这一点)。 如何在编译时为所有linux帧缓冲区文件添加-DCONFIG\u FB\u DEFERRED\u IO=1标志,使它们都具有正确的FB\u信息结构


感谢

通过查看kbuild文档,帧缓冲区文件似乎不需要任何额外的定义标志,如-DCONFIG\u FB\u DEFERRED\u IO=1,因为所有定义都是在include/generated/autoconf.h中进行的,所有文件(间接)都包含了该文件。
现在,fb_info结构在任何地方都具有相同的大小,模块加载时没有分段错误。

还有一个问题:如果.CONFIG文件中的CONFIG_fb_DEFERRED_IO=y,则所有文件都应使用-DCONFIG_fb_DEFERRED_IO=1进行编译?构建工具如何选择使用什么定义标志编译哪些文件?