Linuxカーネルのスクリプト構成


8

カーネル機能のリストを考慮して、指定されたすべての機能(および対応する依存関係)のみをサポートする最小限のLinux構成を作成します。

allnoconfigと機能を1つずつ有効にするツールを作成する方法はありますか?

.configファイルを編集することはできますが、依存関係が正しくありません。を使用することはできますがmake *config、私が知る限り、これらは対話型でのみ機能するか、デフォルトの構成を作成します。)


以下は、依存関係の解決によりLinuxカーネル構成を自動化するスクリプトです。Kernel Expect(kernelexpect)
T. Perkins

回答:


1

非対話的に行う必要がある場合は、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などを使用することをすでに検討していると思いますか?私は何年も最小限の設定を試みたことがありませんが、完全に使用できないカーネルを作成するためのいくつかのかなり明白でない方法があったことを覚えているようです。:)


「olddefconfig」もおそらく正常に動作します。defconfigファイルからデフォルトの構成オプションを取得する方法はありますか?(その場合、defconfigファイルは適切なベースを提供し、最小限のカスタムオプションを.configで設定できます。)
michas

-1

カーネル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)

1
これは、一見すると素晴らしいようです。残念ながら、依存関係はまったく気にしていないようです。:(
michas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.