コンパイル中に静的に構築されるカーネルモジュールを決定するには?

コンパイル中に静的に構築されるカーネルモジュールを決定するには?

ちょうど新しいカーネルをコンパイルし、自分に質問しました。コンパイル中にどのカーネルモジュールがカーネルに静的に組み込まれているかを判断するにはどうすればよいですか?

その後、それをアンインストールして再/lib/modules起動した後、システムが正常に動作していることを確認しました。したがって、必要なすべてのモジュールがカーネルに静的に組み込まれているように見えました。

それ以外の場合、/lib/modulesカーネルは22個のモジュールをロードします。ディレクトリが存在する場合は、67個のモジュールをロードします。

答え1

構成中に通常ランタイムまたはmake config同様のmake menuconfig。モジュールを内蔵(でマーク*)またはモジュール式(でマークM)に設定できます。

make menuconfigスクリーンショットでこれの例を見ることができます。ここ:

メニュー設定スクリーンショット

答え2

/kernel他にタグを追加したことを考慮すると、/linux-kernel一般的なケースにも興味があるとします。

1991年以来、Solarisでは、デフォルトのカーネルグルーコード、デフォルトのスケジューラ、およびポケットベル/スワップを除くすべてが動的にロードされました。

ルートファイルシステムコードとモジュールローダも動的にロードされます。

これにより、カーネルを手動で構成する必要がなくなります。 Solarisではサイズ固有の機能構成は必要ないため、手動構成は必要ありません(十分なメモリーを使用できる限り、実行時に新しいカーネルオブジェクトが自動的に作成されます)。

Linuxがいつこの自動化状態に達するのか疑問に思いますが、理論的に不要なカーネル構成(Solarisを参照)がユーザーにとって興味深い方法で使用されるため、決して起こらないと思いますhey, you are able to control the linux kernel

関連情報