CentOS6.5 kernel rebuild

最近 CentOS 6.5 というレガシーとも言えるディストリビューションのカーネル再ビルドの機会がありましたのでメモしておきます。

使用する srpm ファイル

kernel-2.6.32-431.1.2.0.1.el6.src.rpm を使用しました。

追加パッケージ

ソフトウェア開発用のパッケージは事前にインストールされているとして、そのほかに asciidoc と newt-devel が必要でした。これは CentOS6.5 の DVD イメージに入っているものをインストールすることで解消できました。

rpmbuild 前に準備すること

rpmbuild を実行すると署名用の鍵を生成しますが、実行PCの処理能力が低いのでスキップするようにします。

  • $HOME/.rpmmacros の作成
    以下の内容で用意します。
%_signature none
  • rpmbuild/SPECS/kernel.spec の変更
(変更前)%define signmodules 1
(変更後)%define signmodules 0
rpmbuild 実行

rpmbuild/SPECS へディレクトリを移動したあと、以下のコマンドラインを実行します。

$ rpmbuild -bp kernel.spec --target=x86_64

処理が終わると以下のフォルダにカーネルソースが配置されています。

rpmbuild/BUILD/kernel-2.6.32-431.1.2.el6/linux-2.6.32-431.1.2.0.1.el6.x86_64
通常のkernel build手順でビルド

上記のカーネルソースが配置されているフォルダへ移動します。その後、以下の kernel build 手順でカーネルをインストールします。

  • make menuconfig (.config は存在しています)
  • make
  • make modules
  • (rootユーザで) make modules_install
  • (rootユーザで) make install