Linux Letter Logo

こちらのサイトを参考にして、Linuxカーネルをソースからコンパイル・再構築してみました。

スポンサードリンク

カーネルのダウンロード

The Linux Kernel Archives

上記のサイトからLinuxカーネルを入手します。

the linux kernel archives

仮想マシンの設定

仮想マシンの容量をデフォルトの20GBにするとコンパイル時に容量が足りなくなるので、40GBに変更しておく。

再構築したカーネルで起動する際に1GBのRAMでは足りなくなったが、あとから用意に変更可能なので変更しなくてもよし。

 

カーネルの設定

ダウンロードしたカーネルを展開した後、カーネルの設定を行います。

参考にしたサイトではmenuconfigコマンドを利用していましたが、他にも利用できるコマンドはいくつかあるようです。

make config CUIで質問に答えていく
make menuconfig CUIでメニューから選択していく
make xconfig GUIでX(KDE)で操作
make gconfig GUIでX(GNOME)で操作
※CUIならmake menuconfigが良いらしい。

menuconfigコマンドを実行するとエラーで中断。

ライブラリが足りないようで”ncurses-devel”のインストールをしてみますが該当するライブラリが見つからず。

こちらを参考にパッケージ名を”ncurses-dev”にしてコマンドを通したところ解決しました。

“make menuconfig”を実行すると、CUIで詳細な設定ができる画面が表示されます。

Linux Kernel menuconfig

今回はデフォルト設定のままconfigファイルを”save”して”exit”しました。

コンパイル

先程保存したconfigファイルの情報を元に、Linuxカーネルのソースファイルをコンパイルします。

カーネル本体

まず、カーネル本体?をコンパイルします。

makeコマンドでコンパイルすると、”fatal error: openssl/opensslv.h: そのようなファイルやディレクトリはありません”と表示され、致命的なエラーで中断されました。

openssl/opensslv.hというヘッダファイルがないのが問題らしい。

こちらのサイトを参考にして、ヘッダファイルをインストールします。

makeコマンドが正常に実行され、ソースファイルがコンパイルされました。

モジュール

次にモジュールをコンパイルします。

モジュールのインストールも行います。

インストール

いよいよカーネルをインストールします。

このコマンドで/bootに新しいファイルがいくつか追加され、ブートローダのgrubの設定ファイルもデフォルトで書き換えられるようです。

再起動

再起動を実行して新しいLinuxカーネルを立ち上げます。

 

新しいLinuxカーネルで立ち上げるとカーネルパニックが発生してフリーズしました。

Linux カーネルパニック

今回は仮想マシンのRAMの割り当てを1GBから2GBに変更したところ、Linuxカーネルが起動しました。

仮想マシン RAM 2GB

 

新しいカーネルが起動後、unameコマンドでカーネルのバージョンを確認します。

Linuxカーネルの再構築

カーネルのバージョンが変わったことを確認できました。

終わりに

分かりやすいサイトを参考にしたので多少のエラーはありましたが、比較的簡単にLinuxカーネルを再構築することができました。

自分で触れるような小さな変更などから始めてみようと思います。

 

Linuxカーネルをソースからコンパイル・再構築する
Tagged on:     

コメントを残す