【发布时间】:2015-02-04 15:41:52
【问题描述】:
我正在尝试将 fbtft 内核模块添加为 openwrt 中的外部包,方法是复制 /package/fbtft 目录中的所有必要文件,就像这个人所做的 https://github.com/GBert/openwrt-misc/tree/master/fbtft
问题是 fbtft 是使用 -DCONFIG_FB_DEFERRED_IO=1 编译的。这个定义被一些帧缓冲结构使用,比如来自 fb.h 的 fb_info。如果定义了 CONFIG_FB_DEFERRED_IO,则结构具有不同的大小。 现在像 fbsysfs.c 这样使用这个 fb_info 结构的 linux 帧缓冲文件不会使用这个 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_FB_DEFERRED_IO=1 标志,以便它们都具有正确的 fb_info 结构?
谢谢
【问题讨论】:
-
还有一个问题:如果 .config 文件中的 CONFIG_FB_DEFERRED_IO=y 所有文件都应该用 -DCONFIG_FB_DEFERRED_IO=1 编译?构建工具如何选择使用什么定义标志编译哪些文件?