Tips

Linux カーネルの再構築 ~第1回~
2015.11.14

Linux カーネルの再構築 ~第1回~

<h1>カーネル再構築手順</h1>

<strong>
今回はCentOS6.6を使用して試しています。
カーネルのメジャーバージョンがそれほど変わらない 2.6系で確認しています。
rootユーザで操作しています。
</strong>

参考
http://qiita.com/zkangaroo/items/a3e1cd4b4d28a7c12e14
<h2>カーネル再構築に必要なファイルのインストール</h2>

# yum install ncurses-devel

<strong>
カーネルのソースダウンロード場所
http://vault.centos.org/6.6/os/Source/SPackages/
</strong>
<h2>カーネル本体のダウンロード</h2>

下記のコマンドでカーネルをダウンロードをします。

# wget http://vault.centos.org/6.6/os/Source/SPackages/kernel-2.6.32-504.el6.src.rpm

<h2>カーネルを解凍してコンパイル</h2>
下記のコマンドでダウンロードをしたファイルを解凍します。

rpm2cpio kernel-2.6.32-504.el6.src.rpm | cpio -id

解凍してできたファイル

 
   ↓これがカーネルのソースファイル
mv linux-2.6.32-504.el6.tar.bz2 /usr/src/kernel

回答したディレクトリに移動して、下記のようにして .config ファイルを作成します。

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 コマンドを使用して修正します。

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)     //無効化

カーネルコンパイルを始めます。

make

<h2>カーネルのインストール</h2>

以下の様なワーニングが表示されましたが、一応モジュールはインストールできているようです。

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 コマンドを使用すると、インストール作業に必要な設定などを行って保存してくれます。

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(この記事作成時点での最新版)にして確認したいと思います。

 

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search