web-dev-qa-db-ja.com

カーネルの構成にない設定は `<setting> = n`として解釈されるべきですか、それとも` defaults`が使用されますか?

問題のトラブルシューティング カーネル構成設定でCONFIG_SECCOMPCONFIG_HAVE_Arch_SECCOMP_FILTER、およびCONFIG_SECCOMP_FILTERを探しています。

最初のものはカーネルの設定ファイルにCONFIG_SECCOMP=yとして存在しますが、他の2つは単に存在しません。これは私にそれをどのように解釈するのか疑問に思います。

カーネルの構成にない設定は<setting>=nとして解釈されるべきですか、それともdefaultsが使用されますか?

5
woosting

ブール値またはトライステートのyes/no/module設定の場合、missingとnは同等です。

ブール設定は、定義されているかどうかに関係なく、Cプリプロセッサマクロに対応します。ソースファイルは、マクロが#ifdefで定義されているかどうかを確認します。設定がnの場合、マクロは定義されていません。これはデフォルトの状態と同等です。

はい/いいえ/モジュールのトライステート設定はメイクファイルで展開されます。オプションをyに設定すると、ソースファイルがコンパイルされ、結果のオブジェクトファイルがメインカーネルイメージにリンクされます。オプションをmに設定すると、ソースファイルがコンパイルされ、結果のオブジェクトファイルが別のモジュールとしてリンクされます。オプションをnに設定しても、何もビルドされません。

一部の構成オプションはファイルに直接影響を与えませんが、構成インターフェイスに設定のカテゴリの入力を求めるだけです。

カーネルソースツリーに.configファイルがある場合は、make oldconfigを実行して、不明なオプションを削除し、ファイルに存在しないオプションをデフォルト設定で追加してファイルを再生成できます。カテゴリプロンプトオプションをnに設定してカテゴリをスキップすると、結果のファイルから一部のオプションがスキップされます。