仮想環境の準備
Vagrant上にLinuxを用意する
% vagrant box add debian-8-jessie https://github.com/holms/vagrant-jessie-box/releases/download/Jessie-v0.1/Debian-jessie-amd64-netboot.box
% vagrant box list
% vagrant init debian-8-jessie
% vagrant up
% vagrant ssh
必要ファイルの準備
カーネルパッケージのインストール
% sudo apt-get install kernel-package
カーネルリリースバージョンを確認する
vagrant@jessie:/etc/modules-load.d$ uname -rn
jessie 3.16.0-4-amd64
バージョンに合ったカーネルソースをインストールする
% sudo apt-get install linux-source-3.16
インストール先を確認する。/usr/src以下にインストールされていると思います。
# dpkg -L linux-source-3.16
おとしたままだとtarで固められているので解凍する
vagrant@jessie:/usr/src$ sudo tar xf linux-source-3.16.tar.xz
カーネルコンフィグのための設定ファイルをもってくる。
現在の設定を引っ張ってきます。
vagrant@jessie:/usr/src/linux-source-3.16$ sudo cp /boot/config-3.16.0-4-amd64 .config
menuconfigのためにncursesが必要なのでいれます。
vagrant@jessie:/usr/src/linux-source-3.16$ sudo apt-get install libncurses5-dev
カーネル設定ファイルを眺めてみる
スペースを押すたびに、*でカーネルに組み込み、Mでローダブルモジュールとして扱えるようにする
# make menuconfig
カーネルを再構築します
カーネルを区別するためにMakefile の EXTRAVERSION を変更してみる
例えば EXTRAVERSION = -hogehoge-686
$ vi Makefile
(開いてEXTRAVERSIONを書き換えます)
$ make
カーネルとカーネルモジュールもインストールします
# make modules_install
# make install
ブートローダの設定
GRUBの設定でdefaultで立ち上がってくるカーネルのインデックスを変更します
# vim /boot/grub/menu.lst
確認
新しいカーネルで立ち上がっていることを確認します。
# uname -r
3.2.72-hogehoge-686