カーネルツリーで 'make oldconfig'を実行するときにデフォルトに自動的に応答する


36

以前の構成に基づいて新しいカーネルを構築する場合、make oldconfigプロセスを自動化して新しいオプションをデフォルト値に設定する方法はありますか?

編集:つまり、新しいカーネルで.config(from /boot/config-*または/proc/config.gz)を使用すると、make oldconfigプロセスは古いカーネルでは利用できなかったオプションを有効にするかどうかを尋ねます。Y / n / mと答えるか、Enterキーを押してデフォルトを受け入れます。ユーザーの操作なしでデフォルトを自動的に受け入れたい。


@jscottこれは、すべてではなく、最初の質問に対して「Enterキーを押す」だけです。「yes」コマンドを使用して、文字列を無期限に印刷できます。
ローランパレントー

回答:


37

次のコマンドを使用します。

yes "" | make oldconfig

「yes」コマンドは、指定されたすべての文字列、またはデフォルトで「y」を含む行を繰り返し出力します。

したがって、これを使用して単純に「Enter」を押すと、「make oldconfig」コマンドのデフォルト値が使用されます。


ああ、「yes」コマンドで文字列を出力できることを知りませんでした。ありがとうございました!
ジャンフランソワシェヴレット

3
これは驚異的です。
イヴァンX

1
答えははるかに良いアイデアですserverfault.com/a/538150/18822
エヴァンキャロル

56
make olddefconfig

あなたが望むものです。ヘルプから(make helpカーネルソースディレクトリ内)

olddefconfig-silentoldconfigと同じですが、新しいシンボルをデフォルト値に設定します


私はしばらくの間このようなものを探していました...たくさんありがとう!
ジャファーコファヒ14

これはどのバージョンのLinuxに届きましたか?ちょっと興味があるんだけど。現在、古いバージョン(3.0)を処理していますが、まだインストールされていません。
クラック16

1
これが正解です。
suprjami

0

はい。ソースディレクトリの最上位の「.config」に保存されます。

さらに、ディストリビューションカーネルを使用する場合、RedHatなどの一部のディストリビューションでは、/ boot / config-$(uname -r)に保存されます。(カーネルバージョン)[1]

最後に、実行中のカーネルでコンパイルされている場合、/ proc / config.gzで利用可能です。このオプションを導入したバージョンを忘れました。

[1]これらのオプション:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

編集

/usr/src/linux/kernel/Documentation/kbuild/kconfig.txt(または適切なパス)を確認してください。推奨事項のいくつかを使用して、ソリューションをスクリプト化できます。スクリプトとtextutilsの組み合わせを使用して、説明した内容を実現します。

編集2

追加のメモとして、これは悪い考えです。環境に固有のオプションのハードウェアサポートが変更されたが、デフォルトではない場合はどうなりますか?悪影響を与える変更が発生した場合はどうなりますか?これは本当にインタラクティブなはずです。設定を行い、残りを自動化できます。

「make silentoldconfig」は少し冗長ですが、役に立つかもしれません。まだインタラクティブです。


そういう意味じゃない。達成したいことを説明するために、質問に詳細を追加しました。
ジャンフランソワシェヴレット

0

make silentoldconfig


2
メイクsilentoldconfigはそれだけでそれほど冗長で、まだインタラクティブである
ローランParenteau
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.