Kconfig:为什么内核配置工具不显示``CONFIG_DRM_TTM``?

Kconfig:为什么内核配置工具不显示``CONFIG_DRM_TTM``?

有一个选项drivers/gpu/drm/Kconfig

   config DRM_TTM
           tristate
           depends on DRM

此选项添加了 DRM GPU 驱动程序用于管理显卡内存的几个功能,因此正如我们所见,它依赖于 DRM。

它也被模块使用。

config DRM_RADEON
        tristate "ATI Radeon"
...
        select DRM_TTM

我已经DRM启用了,当我启用其中一个模块时select,我看到这CONFIG_DRM_TTM=y是我的.config 到目前为止,一切都很好。

但现在我想启用此选项,但禁用所有使用它的模块(因为我需要它用于不属于内核源代码树的第 3 方模块),所以我只启用DRM我没有看到这个选项都在menuconfigxconfig.

看来我无法手动启用此选项,只能由其他模块启用select它。

据我了解,此选项必须显示为,<>因为它是tristate并且取决于DRM,因此当我启用时,DRM我必须看到此选项。但我不。

怎么会这样? Kconfig 上是否有任何类型的“隐藏”或“帮助程序”选项无法手动设置,而只能通过其他选项设置?我在哪里可以读到它(当然除了“mconf.c”,因为我认为我的问题太众所周知了,无法阅读源代码)

答案1

是的,存在“不可见”的配置符号,它们是由select附加到其他配置条目的语句设置的。例如,DRM_TTM由需要它的GPU驱动程序选择;它是三态,因为依赖于它的选项本身就是三态。

这在中进行了简要描述语言kconfig文档;的条目select

一般情况下,仅选择不可见的符号(任何地方都没有提示)和没有依赖性的符号。这将限制实用性,但另一方面又可以避免非法配置。

如果配置条目没有提示,无论是遵循其类型还是使用显式prompt指令,它都是不可见的。要使DRM_TTM配置条目可见,请给出提示:

config DRM_TTM
        tristate "TTM"

或者

config DRM_TTM
        tristate
        prompt "TTM"

相关内容