web-dev-qa-db-ja.com

ソースからコンパイルされたカーネルに保持するハードウェア情報を取得し、ドライバーを選択するにはどうすればよいですか?

Webサーバー用の最小限のカーネルを作成したいと思います。

ソースからカーネルをコンパイルするとき、どのようにハードウェア情報を取得そして残りを削除できるようにカーネルに保持する必要があるドライバーを知っていますか?

6
Parmeet Nanner
  1. ArchやGentooのようないくつかのディストリビューションの下で知っておく必要があります。仮想化に利用できる特殊なカーネルがあります。たとえば、VirtuozzoまたはVMwareテクノロジーでLinuxを実行する場合です。

  2. コマンドlspci -nを使用して、出力を http://kmuto.jp/debian/hcl ;に貼り付けます。そのサイトは、一般的に必要なカーネルモジュールを提供します。次に、カーネル構成(例:menuconfig)に移動し、を押します。 / オプションを検索し、それらの場所を見つけてアクティブにします。

  3. カーネルのバージョンに応じて汎用カーネル用の.configファイルを作成する「カーネルシード」という名前のサイトがあります。カーネルオプションと不明なモジュールについては、.configを比較することをお勧めします。

  4. 自分でカーネルを構築し、configスクリプトをあまり使用しないようにしてください。ハードウェアに関連するカーネルオプションが必要な場合は、より適切です。

  5. 優れたライブCD/USBの最新バージョンを使用してマシンを起動してみてください。 bodhi linuxまたはFatDog/Puppy Linuxをお勧めします。次に、そこでlsmodを実行し、ロードされたモジュールのリストを確認します。これらは、カーネルに組み込むか、モジュールとしてカーネルに追加して起動時にロードする必要があるカーネルオプションのリストです。
5
r004

最近のカーネルに付属している便利なスクリプトstreamline_config.plがあります。1、これは、現在実行中のカーネルに必要なモジュールのみを含む.configファイルを作成するのに役立ちます。スクリプトには、必要なすべての手順を含む「ハウツー」というコメントがあります。

同じことを手動で実行する別の方法は、localmodconfigを使用することです。ダウンロードしたカーネルを解凍して準備したら、必要になる可能性のある外部デバイスを新しいカスタムカーネルに接続して、関連するモジュールが読み込まれるようにします。

次に、make localmodconfigコマンドを使用してコンパイルプロセスを開始すると、現在ロードされているモジュールのみに基づいて.configファイルが生成されます。

どちらの場合も、コンパイルの前に必要なものがすべてlsmodにリストされていることを確認することが最も重要です。そうしないと、これらのモジュールがビルドに使用されません。

これを最初に(数回)行うときは、コンパイルの前に生成された.configファイルを確認して、必要なものがあることを確認してください。

Arch Wikiには 従来の方法のコンパイルに関するページ があり、localmodconfigの使用に関する詳細が含まれています。


1. scripts/kconfig/にあります

2
jasonwryan