LPIC 201 カーネル関連 その1
linuxカーネル 再構築の流れ
- 現在のバージョンの確認 → uname -r か cat /proc/version
- カーネルsourceのダウンロード → https://www.kernel.org/
- /usr/src配下に展開する。
- カーネルコンフィグの設定
- カーネルのコンパイル
- カーネルコンフィグのコンパイル
- カーネルとモジュールの配置
- 初期RAMディスク作成
- ブートローダの設定変更
- リブート
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