Search

搜尋核心 make menuconfig 配置菜單項

  • May 6, 2012

當我在 /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 中查找配置名稱(使用 /)。

當你按下/時,它會說

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

由於它不像其他的那樣有tristateorbool行,這表明它沒有出現在菜單中。

在同一個文件中搜尋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 的驅動程序會自動啟用它。

引用自:https://unix.stackexchange.com/questions/38022