Linuxカーネル再構築
ほとんどの場合、カーネル再構築なんて不要なのですが、機能が現状で使えなかったり、最新機能を使いたい場合は
そのディストリビューションの域を出て自分の責任でカーネルを再構築して使えるようにする事ができる。
CentOS5.xの場合linuxカーネル再構築/CentOS5
古い記事linuxカーネル再構築160305
CentOS6.xのカーネルを最新にupgradeする †
とある課題でカーネルのupgradeが必要な案件があった。
160305時点でCentOS6の最新は6.7、カーネルは 2.6.32-573.18.1 であった。これを 4.4.4 にupgradeしてみる。
まずはkernel-upgradeに必要な環境の構築。開発環境のインストールである
[root@c104 ~]# yum -y groupinstall "Development tools"
[root@c104 ~]# yum -y install ncurses-devel bc wget openssl-devel
そして、カーネルをダウンロードして、展開する
[root@c104 ~]# cd /usr/src/
[root@c104 src]# wget ftp://ftp.riken.jp/Linux/kernel.org/linux/kernel/v4.x/linux-4.4.4.tar.xz
[root@c104 src]# xz -cd linux-4.4.4.tar.xz | tar xf - && cd linux-4.4.4
[root@c104 linux-4.4.4]#
.configは、CentOS6.xで配布されているのを流用して、make oldconfigを実行
問われる設問には全てリターンキーで返します。
[root@c104 linux-4.4.4]# cp ../kernels/2.6.32-573.18.1.el6.x86_64/.config .
[root@c104 linux-4.4.4]# make oldconfig
(質問は全てリターンキーで応答)
[root@c104 linux-4.4.4]#
コンパイルしても使わない不要なモジュールが沢山あるが、このままカーネルを作ります。
その前に、作るカーネルに印を入れたいのでMakefileに修正を加えてコンパイル・インストールを行います
[root@c104 linux-4.4.4]# vi Makefile
(略)
- EXTRAVERSION =
+ EXTRAVERSION = -chaperone
(略)
[root@c104 linux-4.4.4]#
[root@c104 linux-4.4.4]# time(make&& make modules&& make modules_install&& make install) *紅茶とケーキで待ちましょう
コンパイル終了後に、次の起動時にこのカーネルを使用させるように /boot/grub/grub.conf を修正する。
[root@c104 linux-4.4.4]# vi /boot/grub/grub.conf
- default=1
+ default=0
[root@c104 linux-4.4.4]# reboot
再起動後、採用されているカーネルを確認する
[root@c104 ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@c104 ~]# uname -r
4.4.4-chaperone
[root@c104 ~]#