アプライアンスのように単一のタスクを実行するようにサーバーを構成する場合、カスタムカーネルを構築する必要が生じる可能性があります。たとえば、ディスク領域を節約します。
Ubuntu Core 13.10 AMD64 root filesystem is a 38 MB ダウンロード、ここで「linux-image必要な依存関係を含む-generic "メタパッケージはアーカイブ79 MBをダウンロードし、kernel-image-xyz-genericパッケージのサイズは- 14 MB 。
ハードウェアが使用しないモジュールから削除されたカーネルを構築するには、make localmodconfig
コマンドは、ジョブに適したツールです。ただし、ビルドおよびテスト環境を実行する仮想マシンは、ターゲットのデプロイメントハードウェアとは異なるモジュールをロードします。またはしばらくすると、展開ハードウェアが機能しなくなり、別のハードウェアが使用されます。また、カーネルのアップデートがリリースされる頻度では、ハードウェア構成ごとにカスタムカーネルを構築するのが面倒になる可能性があります。
いくつかの異なるハードウェアボックスで動作するカスタムLinuxカーネルをすばやく構築する方法は?
make localmodconfig
コマンドは、依然としてジョブに適したツールです。実際 make localmodconfig
はscripts/kconfig/streamline_config.pl
を実行します。
streamline_config.pl
(Perl)ソースコードを読み取る場合、文書化されていない機能my $lsmod_file = $ENV{'LSMOD'};
があり、lsmod
コマンドからの出力の代わりに、ロードされたモジュール検出用のファイル入力が可能です。
Localmodconfigは出力lsmod
を使用して、ロードされたモジュールを検出するためです。さまざまなハードウェア設定のそれぞれでUbuntu Live CDを実行し、ターミナルを開きます(Ctrl+Alt+T)、lsmod
を実行してその出力を保存します。
lsmod
出力ファイルを連結しながら連続するヘッダー行を削除することにより、必要なすべてのカーネルモジュールをカバーする入力ファイルをすばやく作成できます。モジュールリストを手動で確認し、より手動のレシピを使用します。
$ cd linux-3.11.0/
またはmakeコマンドを実行するディレクトリに移動します
$ lsmod > lsmod.txt
ロードされたモジュールでテキストファイルを作成します
$ nano lsmod.txt
ナノテキストエディターが開きます。もちろん、お気に入りのエディターアプリケーションを使用できます
まだ存在していない必要なモジュールをこのファイルの最後に追加し(例:この回答の下部を参照)、準備ができたら保存します。
注:タブではなくスペースを使用して、列集計の位置を一致させます。
$ make LSMOD="lsmod.txt" localmodconfig
これにより、localmodconfigがlsmod.txtファイルをロード済みモジュール検出の入力として使用するようになります
Steveline Rostedt(steamline_config.plの作者)に関して、ステップ5で短い表記を提案してくれました。
Intel D33217CKメインボードには、読み取りたいIntel温度センサーがあるため、次の行を追加します
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
しかし、このハードウェアで仮想マシンを実行したくないので、これらの行をスキップします
kvm_intel 128218 0 kvm 364766 1 kvm_intel
Apple(Broadcom)GibabitイーサネットアダプタがThunderboltポートに接続されているため、以下を追加します:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
ボリュームのミラーリングは必要ないと思われるため、追加しないでください:
dm_mirror 21715 0 dm_region_hash 15984 1 dm_mirror dm_log 18072 2 dm_region_hash,dm_mirror
また、グラフィックス出力(テキストはヘッドレスサーバーで実行されます)も必要ないため、次の項目は含めません
i915 589697 3 i2c_algo_bit 13197 1 i915 drm_kms_helper 46867 1 i915 drm 242354 4 i915,drm_kms_helper
別のマシンでは、さらにこのRealtekイーサネットドライバが必要です:
r8169 61434 0
mii 13654 1 r8169