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

时间:2015-02-02 13:19:00

标签: c kernel openwrt

我正在尝试通过复制/ package / fbtft目录中的所有必要文件来添加fbtft内核模块作为openwrt中的外部包,就像这个人做https://github.com/GBert/openwrt-misc/tree/master/fbtft

一样

问题是使用-DCONFIG_FB_DEFERRED_IO = 1编译fbtft。这个定义被一些帧缓冲结构使用,比如来自fb.h的fb_info。如果定义了CONFIG_FB_DEFERRED_IO,则结构具有不同的大小。 现在使用此fb_info结构的linux帧缓冲区文件(如fbsysfs.c)不会使用此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 framebuffer文件添加-DCONFIG_FB_DEFERRED_IO = 1标志,以便它们都具有正确的fb_info结构?

由于

1 个答案:

答案 0 :(得分:0)

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