搜尋核心 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 中查找配置名稱(使用 /)。
當你按下
/
時,它會說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
orbool
行,這表明它沒有出現在菜單中。在同一個文件中搜尋
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 的驅動程序會自動啟用它。