当我在 /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
由于它没有像其他一样有tristate
或bool
行,这表明它不会出现在菜单中。
在同一文件中搜索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 的驱动程序会自动启用它。