2015.11.14
Linux カーネルの再構築 ~第2回~
<h1>カーネル再構築手順</h1>
<strong>
今回はCentOS6.6を使用して試しています。
今回はカーネルを最新版(4.0.7)にバージョンアップしてみます。
rootユーザで操作しています。
</strong>
<h2>カーネルのダウンロード</h2>
作業ディレクトリに移動します。
cd /usr/src
カーネルのソースを www.kernel.org からダウンロードをします。
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.1.tar.xz
<h2>ダウンロードをしたカーネルを解凍してコンパイル</h2>
ダウンロードをしたカーネルを解凍して、回答したディレクトリに移動します。
tar Jxvf linux-4.1.1.tar.xz cd linux-4.1.1
以下のコマンドで .config ファイルを作成します。
cp -p /boot/config-2.6.32-504.el6.i686 .config make oldconfig 省略.....
上記のコマンドを実行すると、
たくさんの確認メッセージが出てきますが、 すべてEnterで答えています。
.configファイルが作成されたら、
以下のコマンドで、カーネルのコンパイルを始めます
make 省略 H16TOFW firmware/edgeport/boot.fw H16TOFW firmware/edgeport/boot2.fw H16TOFW firmware/edgeport/down.fw H16TOFW firmware/edgeport/down2.fw IHEX firmware/edgeport/down3.bin IHEX2FW firmware/whiteheat_loader.fw IHEX2FW firmware/whiteheat.fw IHEX2FW firmware/keyspan_pda/keyspan_pda.fw IHEX2FW firmware/keyspan_pda/xircom_pgs.fw [root@localhost linux-4.1.1]#
特にエラーなく終了!
<h2>カーネルモジュールとカーネル本体のインストール</h2>
以下のコマンドでモジュールをインストールします。
make modules_install 省略 INSTALL /lib/firmware/whiteheat_loader.fw INSTALL /lib/firmware/whiteheat.fw INSTALL /lib/firmware/keyspan_pda/keyspan_pda.fw INSTALL /lib/firmware/keyspan_pda/xircom_pgs.fw DEPMOD 4.1.1-watanabe4 [root@localhost linux-4.1.1]#
特にエラーなく終了
以下のコマンドでモジュールがインストールされているかを確認します。
ls /lib/modules/ 2.6.32-504.el6.i686 2.6.32-watanabe 4.1.1-watanabe4
以下のコマンドで、前回同様、カーネルをインストールします。
installkernel 4.1.1-watanabe4 /usr/src/kernels/linux-4.1.1/arch/x86/boot/bzImage /usr/src/kernels/linux-4.1.1/System.map ERROR: modinfo: could not find module vmhgfs ERROR: modinfo: could not find module vsock ERROR: modinfo: could not find module vmware_balloon ERROR: modinfo: could not find module snd_page_alloc ERROR: modinfo: could not find module vmci ERROR: modinfo: could not find module crc_t10dif ERROR: modinfo: could not find module vmxnet
いくつかエラーが出た?
新しいカーネルで起動すると、起動時にVM系のモジュールでエラーは出ていたが、一応起動には成功しました。
uname -a Linux localhost.localdomain 4.1.1-watanabe4 #1 SMP Wed Jul 8 04:45:01 PDT 2015 i686 i686 i386 GNU/Linux
以上になります。