有一个选项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
但我没有看到这个选项都在menuconfig
和xconfig
.
看来我无法手动启用此选项,只能由其他模块启用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"