gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:21:29 24 4
gpt4 key购买 nike

我正在尝试通过复制/package/fbtft 目录中的所有必要文件来将 fbtft 内核模块添加为 openwrt 中的外部包,就像这个人那样 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 结构?

谢谢

最佳答案

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

关于c - 如何向内核模块添加额外的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28278663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com