FHS(FileSystem Hierarchy Standard)は、ファイルシステムの標準的な階層配置を定めたもの。カーネルのソースは 「/usr/src/linux/」に展開するのが一般的。
●「/usr/src/linux/」内のファイル・ディレクトリ
ファイル
・.config カーネルのビルド設定ファイル
・Makefile makeの設定やカーネルバージョンが書いてある
ディレクトリ
・kernel/ カーネル本体
・Documentation/ ドキュメントの類
・arch/ アーキテクチャ固有のコード
・drivers/ デバイスドライバ
・fs/ ファイルシステム
・include/ インクルードファイル(他のファイルから呼び出すコードのまとまり)
・mm/ メモリ管理
・net/ ネットワーク
●make コマンド
ソースをコンパイルしてソフトウェアの実行ファイルを作る(ビルドする)
■カーネルをビルドする際の設定に関係する、代表的な make オプション(ターゲット)の一覧
・make config 対話的に(質問形式)設定を行う
・make menuconfig ターミナル上のGUIで設定を行う
・make xconfig X上のGUIで設定を行う
・make defconfig デフォルト状態の設定を引き継ぐ
・make oldconfig 現在のカーネルの設定を引き継ぐ
・make cloneconfig (oldconfigとほぼ同じ)
・make clean 設定ファイルを除いて一時ファイル等を削除
・make mrproper 設定ファイルを含めて一時ファイル等を削除
■ビルド対象に関連した動作を指定するターゲット
・make all カーネルとモジュールをビルド
・make install ビルドしたカーネルをインストール
・make modules カーネルモジュールをビルド
・make modules_install カーネルモジュールをインストール
・make rpm ビルド後にrpmパッケージ化
・make rpm-pkg ソースrpmパッケージを作る
・make binrpm-pkg バイナリrpmパッケージを作る
・make deb-pkg Debianパッケージを作る
●ソースからのカーネルのビルドとインストール(再構築)の基本的な手順
カーネルのソースは取得・展開済みであるとし、以下はすべてソースを展開したディレクトリ「/usr/src」直下で行う。
-
make mrproper で設定を初期化
make mrproper で設定ファイルを含めてディレクトリ内を初期化。 -
make oldconfig で設定を行う
初期化された設定を再構築用に設定。設定はカーネルをコンパイル(ビルド)する前に行なう。
他には make config 、make menuconfig 、make xconfig などがある。 -
makeでビルドを行う
単に make とするか、make all とすることで、依存関係の解消、カーネル本体とモジュールのビルド、一時ファイルの削除を自動的に行ってくれる。 -
システムにインストールする
ビルドを行っただけではシステムに配置されてはいないので、インストールを行う。通常、make modules_install としてモジュールをインストールしてから、make install としてカーネル本体をインストールする。
make install によって /boot 以下にカーネルイメージが配置され、ブートローダに新しいカーネルを使う起動設定が追加。
●DKMS(Dynamic Kernel Module Support)
カーネルとカーネルモジュールの依存関係による問題を解消し、カーネルのアップデート時に、自動的にカーネルモジュールを更新するための機能。
DKMSは、カーネルアップデートの際に、カーネルとは独立して自動的にカーネルモジュールをコンパイルし、インストール。
また、手動によりdkmsコマンドを使ってモジュールを構成したり、対象のカーネルモジュールの状態を表示することも可能。
主要な設定ファイルは各モジュールの設定を行うdkms.confと、全体の設定を行う/etc/dkms/framework.conf。