搜索内核 make menuconfig 配置菜单条目

搜索内核 make menuconfig 配置菜单条目

当我在 /usr/src/linux 目录中运行 make menuconfig 时,会出现内核配置向导。如何搜索 make menuconfig 向导中的菜单条目?我已经测试了 /,但是 / 似乎仅通过 .config 文件进行搜索。即,当我搜索“pci dma”时,没有结果,但是存在适当的内核菜单条目来为 PCI 设备启用 DMA。

我能够在 Kconfig 文件中找到菜单条目的文本。 Kconfig 文件位于 /usr/src/linux 目录的许多子目录中。尽管如此,搜索 Kconfig 文件并没有给我提供我想要查找的选项的实际“树”视图。我用来找到那个的命令:

grep -i --directories=recurse 'kprobes' /usr/src/linux --color=always | less

如何搜索 make menuconfig 向导中的菜单条目?

在此输入图像描述

//编辑:一个可行的解决方案:

find /usr/src/linux/ -name 'Kconfig' -exec egrep -i -B 1 '(tristate|bool|menu)' '{}' \; | grep -i -B 1 --color=always 'Device Drivers'

这将显示哪些内核 .config 名称包含指定的 .config 标签。我现在要做的就是在 make menuconfig 中查找配置名称(通过使用 /)。

答案1

当你按下 时/,它会说

Enter CONFIG_ (sub)string to search for (with or without "CONFIG_") 

这意味着它正在寻找名字选项的名称,而不是选项的标签。

在 Linux 3.3 中,我找到了使用 grep 的选项...

$ find . -name Kconfig -exec grep 'config.*PCI' {} + | grep DMA
./drivers/ide/Kconfig:config BLK_DEV_IDEDMA_PCI

然后打开文件./drivers/ide/Kconfig查看更多信息

config BLK_DEV_IDEDMA_PCI
    bool
    select BLK_DEV_IDEPCI
    select BLK_DEV_IDEDMA_SFF

由于它没有像其他一样有tristatebool行,这表明它不会出现在菜单中。

在同一文件中搜索BLK_DEV_IDEDMA_PCI,您可以看到很多引用它的条目,例如

config BLK_DEV_AMD74XX
    tristate "AMD and nVidia IDE support"
    depends on !ARM
    select IDE_TIMINGS
    select BLK_DEV_IDEDMA_PCI

因此,您似乎不应该显式启用 DMA:需要 DMA 的驱动程序会自动启用它。

相关内容