<h1>カーネル再構築手順</h1>
<strong>
今回はCentOS6.6を使用して試しています。
カーネルのメジャーバージョンがそれほど変わらない 2.6系で確認しています。
rootユーザで操作しています。
</strong>
参考
http://qiita.com/zkangaroo/items/a3e1cd4b4d28a7c12e14
<h2>カーネル再構築に必要なファイルのインストール</h2>
1 | # yum install ncurses-devel |
<strong>
カーネルのソースダウンロード場所
http://vault.centos.org/6.6/os/Source/SPackages/
</strong>
<h2>カーネル本体のダウンロード</h2>
下記のコマンドでカーネルをダウンロードをします。
<h2>カーネルを解凍してコンパイル</h2>
下記のコマンドでダウンロードをしたファイルを解凍します。
1 | rpm2cpio kernel-2.6.32-504.el6.src.rpm | cpio - id |
解凍してできたファイル
1 2 | ↓これがカーネルのソースファイル mv linux-2.6.32-504.el6. tar .bz2 /usr/src/kernel |
回答したディレクトリに移動して、下記のようにして .config ファイルを作成します。
1 2 3 4 5 6 7 8 9 | cd /usr/src/kernel tar -xjvf linux-2.6.32-279.22.1.el6. tar .bz2 cd linux-2.6.32-279.22.1.el6 cp /boot/config-2 .6.32-504.el6.i686 .config make oldconfig |
make oldconfig をして作成したファイル内の下記の部分を修正しないと make 時にエラーが出るようです。
下記の部分を make menuconfig コマンドを使用して修正します。
1 2 3 4 5 6 7 | make menuconfig [*] Enable loadable module support ---> [*] Module signature verification (EXPERIMENTAL) [ ] Module signature verification (EXPERIMENTAL) // 無効化 -*- Cryptographic API ---> [*] In-kernel signature checker (EXPERIMENTAL) [ ] In-kernel signature checker (EXPERIMENTAL) // 無効化 |
カーネルコンパイルを始めます。
1 | make |
<h2>カーネルのインストール</h2>
以下の様なワーニングが表示されましたが、一応モジュールはインストールできているようです。
1 2 3 4 | make modules_install INSTALL /lib/firmware/iwlwifi-3160-7 .ucode make [1]: warning: Clock skew detected. Your build may be incomplete. DEPMOD 2.6.32-watanabe |
最後にカーネルに名前をつけてインストールをします。
以下の installkernel コマンドを使用すると、インストール作業に必要な設定などを行って保存してくれます。
1 2 3 4 5 6 | installkernel 2.6.32-watanabe /usr/src/kernels/linux-2 .6.32-504.el6 /arch/x86/boot/bzImage /usr/src/kernels/linux-2 .6.32-504.el6 /System .map stem.map ERROR: modinfo: could not find module vmhgfs ERROR: modinfo: could not find module vsock ERROR: modinfo: could not find module vmci ERROR: modinfo: could not find module vmxnet |
新しいカーネルで起動すると、起動時にVM系のモジュールでエラーは出ていたが、一応起動には成功しました。
次回はカーネルのバージョンを 4.0.7(この記事作成時点での最新版)にして確認したいと思います。