2017-01-30 10 views
2

、次のようなカーネルオプションを設定することができます。カーネルCONFIG_にはどのアプローチを使用しますか?ファイルをdefconfigで

CONFIG_<optionName>=y 
CONFIG_<optionName>=m 
CONFIG_<optionName>=n 
# CONFIG_<optionName> is not set 

を私は何を私が理解したいことは#3 &#4との間の差である、そしてときに最初の2

を理解します各使う - 特にカーネルソースは私の特定のケースでCONFIG_ {...}

の#if CONFIG_の#ifdef {...} 、時には、 を使用することを考えると、私は明らかにそのオプション名があると言いたいです利用不可。

おかげ

+0

これを調べてからしばらく経っていますが、実際のマクロのCONFIG_xxxは、設定ファイルに基づいて生成されたヘッダファイルautoconf.hにあるはずです。したがって、 'CONFIG_xxxは設定されていません '、' CONFIG_xxx = n'は等価でなければなりません。 – Ram

答えて

0

CONFIG_ = Nそれはあなたが明示的にあなたのdefconfigファイルからこの設定項目を無効にしていることを意味します。だからあなたの.configファイルではのように表示されます#CONFIG_は設定されていません

#CONFIG_が設定されていませんこの場合も、この設定を明示的に無効にしています。生成された設定ファイル(.config)は のように表示されます#CONFIG_は設定されていません

ただし、これらのオプションを使用すると、設定項目を無効にすることができます。 @アレクサンドルのコメントによれば、 "設定されていない"と思われるのは適切な方法です。

あなたはの.configとdefconfigファイルについての詳細は以下のリンクを参照することができます:

What exactly does Linux kernel's `make defconfig` do?

+2

いいえ、オプションを無効にする適切な方法は、「設定されていません」を使用することです。 'n'は使用されるべきではありません(unicore32と2011年以降の日付でカーネルで使用されることはありません)。 –

+0

@AlexandreBelloni、これは私がより多くの設定とより多くのディストリビューションを見るようになった今、正解と思われます – user3342339

1

CONFIG_<optionName>=nは有効ではありません。それは、Kconfigオプションがどのように指定されているかではありません。 # CONFIG_<optionName> is not setは、オプションが設定されていないことを指定する方法です。

関連する問題