カーネル機能のリストを考慮して、指定されたすべての機能(および対応する依存関係)のみをサポートする最小限のLinux構成を作成します。
allnoconfigと機能を1つずつ有効にするツールを作成する方法はありますか?
(.config
ファイルを編集することはできますが、依存関係が正しくありません。を使用することはできますがmake *config
、私が知る限り、これらは対話型でのみ機能するか、デフォルトの構成を作成します。)
カーネル機能のリストを考慮して、指定されたすべての機能(および対応する依存関係)のみをサポートする最小限のLinux構成を作成します。
allnoconfigと機能を1つずつ有効にするツールを作成する方法はありますか?
(.config
ファイルを編集することはできますが、依存関係が正しくありません。を使用することはできますがmake *config
、私が知る限り、これらは対話型でのみ機能するか、デフォルトの構成を作成します。)
回答:
非対話的に行う必要がある場合は、make oldconfigまたはmake olddefconfigを使用できる場合があります。make * configは依存関係を修正しますが、それらはmenuconfigのように冗長ではありません。(それ以外の場合、menuconfigは機能を1つずつ有効にするのに最適です。ヘルプテキストも含まれています!)
make oldconfigは「新しい」構成オプションを要求するので、非対話型で作業したい場合は、無効なオプションに対して次のようなコメントを挿入する必要があります。
# CONFIG_KERNEL_GZIP is not set
一方、make olddefconfigは要求しないようですが、デフォルト値を使用します。silentoldconfigもありますが、場合によっては確認を求められるため、それほど静かではありません。
メイクヘルプから:
oldconfig - Update current config utilising a provided .config as base
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
olddefconfig - Same as silentoldconfig but sets new symbols to their default value
免責事項:私は、必要だとわかっている一部のライブラリのオプションを削除する簡単なテストのみを試みました。それらはolddefconfigとoldconfigによって追加されました。これが大規模な構成にどのように適用されるかはわかりません。
いずれにせよ、これを始める前にmake localmodconfigなどを使用することをすでに検討していると思いますか?私は何年も最小限の設定を試みたことがありませんが、完全に使用できないカーネルを作成するためのいくつかのかなり明白でない方法があったことを覚えているようです。:)
カーネル2.6.29以降、次の場所にあるスクリプトがあります。 /kernel_extracted_dir/scripts/config
例えば
/kernel_extracted_dir/scripts/config --set-val CONFIG_LOG_BUF_SHIFT 14
/kernel_extracted_dir/scripts/config --enable CONFIG_PRINTK_TIME
(それが原因であると信用するために、私はこのブログから例をとりました)
次のオプションがあります(ヘルプからコピー)
--enable|-e option Enable option
--disable|-d option Disable option
--module|-m option Turn option into a module
--set-str option string
Set option to "string"
--set-val option value
Set option to value
--undefine|-u option Undefine option
--state|-s option Print state of option (n,y,m,undef)
--enable-after|-E beforeopt option
Enable option directly after other option
--disable-after|-D beforeopt option
Disable option directly after other option
--module-after|-M beforeopt option
Turn option into module directly after other option commands can be repeated multiple times
options:
--file config-file .config file to change (default .config)
--keep-case|-k Keep next symbols' case (dont' upper-case it)