Webサーバー用の最小限のカーネルを作成したいと思います。
ソースからカーネルをコンパイルするとき、どのようにハードウェア情報を取得そして残りを削除できるようにカーネルに保持する必要があるドライバーを知っていますか?
ArchやGentooのようないくつかのディストリビューションの下で知っておく必要があります。仮想化に利用できる特殊なカーネルがあります。たとえば、VirtuozzoまたはVMwareテクノロジーでLinuxを実行する場合です。
コマンドlspci -n
を使用して、出力を http://kmuto.jp/debian/hcl ;に貼り付けます。そのサイトは、一般的に必要なカーネルモジュールを提供します。次に、カーネル構成(例:menuconfig
)に移動し、を押します。 / オプションを検索し、それらの場所を見つけてアクティブにします。
カーネルのバージョンに応じて汎用カーネル用の.config
ファイルを作成する「カーネルシード」という名前のサイトがあります。カーネルオプションと不明なモジュールについては、.config
を比較することをお勧めします。
自分でカーネルを構築し、configスクリプトをあまり使用しないようにしてください。ハードウェアに関連するカーネルオプションが必要な場合は、より適切です。
lsmod
を実行し、ロードされたモジュールのリストを確認します。これらは、カーネルに組み込むか、モジュールとしてカーネルに追加して起動時にロードする必要があるカーネルオプションのリストです。最近のカーネルに付属している便利なスクリプトstreamline_config.pl
があります。1、これは、現在実行中のカーネルに必要なモジュールのみを含む.config
ファイルを作成するのに役立ちます。スクリプトには、必要なすべての手順を含む「ハウツー」というコメントがあります。
同じことを手動で実行する別の方法は、localmodconfig
を使用することです。ダウンロードしたカーネルを解凍して準備したら、必要になる可能性のある外部デバイスを新しいカスタムカーネルに接続して、関連するモジュールが読み込まれるようにします。
次に、make localmodconfig
コマンドを使用してコンパイルプロセスを開始すると、現在ロードされているモジュールのみに基づいて.config
ファイルが生成されます。
どちらの場合も、コンパイルの前に必要なものがすべてlsmod
にリストされていることを確認することが最も重要です。そうしないと、これらのモジュールがビルドに使用されません。
これを最初に(数回)行うときは、コンパイルの前に生成された.config
ファイルを確認して、必要なものがあることを確認してください。
Arch Wikiには 従来の方法のコンパイルに関するページ があり、localmodconfig
の使用に関する詳細が含まれています。
1. scripts/kconfig/
にあります