LPIC 201 カーネル関連 その1

linuxカーネル 再構築の流れ

  1. 現在のバージョンの確認 → uname -r か cat /proc/version
  2. カーネルsourceのダウンロード → https://www.kernel.org/
  3. /usr/src配下に展開する。
  4. カーネルコンフィグの設定
  5. カーネルコンパイル
  6. カーネルコンフィグのコンパイル
  7. カーネルとモジュールの配置
  8. 初期RAMディスク作成
  9. ブートローダの設定変更
  10. リブート

 

1は説明省略

2について

コマンドではwget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.14.74.tar.gzとかでもって来る(-oで保存先指定?)

 置き場所は/usr/src/

 

3について

tar zxvf (オプション→.gz解凍、取り出し、詳細表示、ファイル名指定) tarボール名

で解凍、展開する

 →linux ディレクトリにシンボリックリンク ln -s linux-ver linux

 

4について

 make config(menuconfig、xconfig、gconfig)でコンフィグの設定をする

 →ncursesとncurses-develが入っていない場合、yumで入れる必要あり(デビアンはlibncurses5-dev?)

 もしくはmake oldconfigをする

Y,M,N (イエスかローダブルモジュールかノー)

カーパラは

Makefile(makeコマンドの動作を設定するファイル)の先頭、EXSTRAVERSIONにtestとか入れて2.6.20.testみたいにする

 

5,6について

make (カーネルとモジュール両方いっぺんにコンパイル)もしくはmake all

 

7,8,9について

make module_install

make install

カーネルの移動(コピー)&リネームvmlinuz-、初期RAMディスク作成、ブートローダの設定ファイルにエントリ追加を自動でできる

 

手動でやる場合は以下の流れ

System.mapと/arch/アーキテクチャ/bootにあるbzimageをvmlinuz-バージョンという名前で/bootにコピー

vmlinuzとSystem.mapという名前のシンボリックリンクを作成

初期RAM作成 ファイルをマウントして、HDDのファイルシステムをマウントする準備

mkinitrd ファイル名 バージョン

mkinitramfs -o ファイル名 バージョン

/boot/grub/menu.lst (grub Legacy) にエントリを追加する

 

ビルド化やパッケージ化などmake につけるターゲット多し

 

(hd0)と/dev/sdaマッチング→device.map