web-dev-qa-db-ja.com

カーネルのmakemenuconfig構成メニューエントリを検索します

/ usr/src/linuxディレクトリ内でmake menuconfigを実行すると、カーネル構成ウィザードが表示されます。 make menuconfigウィザード内のメニューエントリを検索するにはどうすればよいですか? /をテストしましたが、/は.configファイルのみを検索しているようです。つまり「pcidma」を検索しても結果はありませんが、PCIデバイスに対してDMA)を有効にするための適切なカーネルメニューエントリがあります。

Kconfigファイル内のメニューエントリのテキストを見つけることができました。 Kconfigファイルは、/ usr/src/linuxディレクトリの多くのサブディレクトリにあります。それでも、Kconfigファイルを検索しても、検索したいオプションの実際の「ツリー」ビューは表示されません。私がそれを見つけるために使用したコマンド:

_grep -i --directories=recurse 'kprobes' /usr/src/linux --color=always | less_

Make menuconfigウィザード内のメニューエントリを検索するにはどうすればよいですか?

enter image description here

//編集:実用的な解決策:

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内で(/を使用して)構成名を探すことだけです。

4
colemik

/を押すと、

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

つまり、オプションのラベルではなく、オプションのnamesを探しています。

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を必要とするドライバは、自動的に有効にします。

9
Mikel