一般的にプログラムのソースをコンパイルする前に「.configureスクリプト」を実行すると、
「.configureスクリプト」は Linuxシステムにコンパイラが存在するかなどを確認した後、「Makefile」を生成する。
また実行ファイルのインストール先となるディレクトリや、プログラムのコンパイル時に付加するオプションなども指定できる。
※配布パッケージを展開すると「.configureスクリプト」がある
「.configureスクリプト」は Linuxシステムにコンパイラが存在するかなどを確認した後、「Makefile」を生成する。
また実行ファイルのインストール先となるディレクトリや、プログラムのコンパイル時に付加するオプションなども指定できる。
※配布パッケージを展開すると「.configureスクリプト」がある
Makefileのあるディレクトリ内でmakeコマンドを実行すると
Makefileの記述に基づいてソースがコンパイルされ実行ファイルが生成される。
Makefileの記述に基づいてソースがコンパイルされ実行ファイルが生成される。
カーネルの設定(コンフィギュレーション)は、.configファイルに記録される。
現在のカーネルコンフィギュレーションを新しい設定に反映させたい時、「make oldconfig」を実行する。
「make oldconfig」を実行すると新しい機能について問い合わせを行い、既存の設定を引き継ぐ。
現在のカーネルコンフィギュレーションを新しい設定に反映させたい時、「make oldconfig」を実行する。
「make oldconfig」を実行すると新しい機能について問い合わせを行い、既存の設定を引き継ぐ。
# cp /boot/config-2.6.18-6-686 .config ←現在の設定ファイルを.configファイル(カーネルの設定)にコピーする # make oldconfig
カーネルの設定とは、カーネルにどの機能を取り組むか(Y)、組み込まずカーネルモジュールにする(M)、組み込まない(N)などを決める。
以下のようなコマンドを使う。
以下のようなコマンドを使う。
make config ~ コンソール上で、順番にカーネルオプションの質問に答えて設定する make menuconfig ~ コンソール上で、メニュー形式のオプションを選んで設定する make xconfig ~ X上(KDEベース)で設定する make gconfig ~ X上(GNOME)で設定する
CUIなら→ make menuconfig
GUIなら→ make xconfig(KDE)と make gconfig(GNOME)
で実行すると便利
GUIなら→ make xconfig(KDE)と make gconfig(GNOME)
で実行すると便利
makeをターゲット指定せず実行すると、カーネルとカーネルもウールのコンパイルが行われ、
カーネルモジュール(/usr/src/linux/arch/アーキテクチャ/boot/bzImage)と
ローダブルモジュール(/lib/modules/カーネルバージョン/kernel以下に配置)が作成される
カーネルモジュール(/usr/src/linux/arch/アーキテクチャ/boot/bzImage)と
ローダブルモジュール(/lib/modules/カーネルバージョン/kernel以下に配置)が作成される
カーネルとカーネルモジュールのコンパイルと行う方法として
make zImage または make bzImage がある ※zImageだとコンベショナルメモリの制限に引っ掛かるかもしれないので、bzImageがよく使われる make modules ← カーネルモジュールのコンパイル
- カーネルとカーネルモジュールのインストール
make modules_install ← カーネルモジュールのインストール
カーネルモジュールを/lib/modules/カーネルバージョン以下にコピーする。及びmodules.depを作成
make install ← カーネルのインストール(root権限でのみ実行)
1.カーネルを/bootディレクトリ以下へ配置、ファイル名にバージョンを付け加えてコピー
2.初期RAMディスクが必要な場合は作成
3.ブートローダの設定ファイルに新しいカーネル用のエントリを追加
2.初期RAMディスクが必要な場合は作成
3.ブートローダの設定ファイルに新しいカーネル用のエントリを追加
- make installを実行できない場合は、手作業でのカーネルのインストールを行わければならない。
まず手作業でカーネルを配置する。
1.作成されたカーネルイメージが「/usr/src/linux/arch/アーキテクチャ/boot/bzImage」を
「/boot/vmlinuz-カーネルバージョン」にコピー
1.作成されたカーネルイメージが「/usr/src/linux/arch/アーキテクチャ/boot/bzImage」を
「/boot/vmlinuz-カーネルバージョン」にコピー
# cp /usr/src/linux/arch/アーキテクチャ/boot/bzImage /boot/vmlinuz-カーネルバージョン
2.同時に「/usr/src/linux/System.mapファイル」を/bootへコピー
その際、ファイル名は「/boot/System.mapカーネルバージョン」にする
その際、ファイル名は「/boot/System.mapカーネルバージョン」にする
# cp /usr/src/linux/System.map /boot/System.map-カーネルバージョン
3.「vmlinuz」,「System.map」というファイル名でもアクセスできるように
シンボリックリンクを作成する。
シンボリックリンクを作成する。
# ln -s /boot/vmlinuz-カーネルバージョン /boot/vmlinuz # ln -s /boot/System.map-カーネルバージョン /boot/System.map