Ubuntu freak(カーネル再構築)

カーネル再構築の方法

 UbuntuのユーザーやLinuxディストリビューションの作成者は、 カーネルのソースコードを使い、パソコンやスマートフォンで動作するOSを作ることができます。(=ビルド)

 この際、ユーザーは、利用するファイルシステムや周辺機器を動かすためのソフト(=デバイスドライバ)等を、 設定によって選択して、組み込んだり外したりできます。

 また、カーネルを再構築することで既存のUbuntuのファイルシステムを変更できます。

 ここでは、そのカーネル再構築の設定方法を実践的に紹介します。

「端末」の操作

 ビルドに必要なパッケージ・ツールをインストールします。

$ sudo apt-get -y update

 パスワード入力

$ sudo apt-get -y install libncurses-dev

$ sudo apt-get -y install build-essential libncurses-dev

$ sudo apt-get -y install build-essential fakeroot kernel-package

$ sudo apt-get -y install linux-source

 と各コマンドを入力してそれぞれ「Enter」を押します。「端末」はそのまま続けます。

 最適なサーバが、選択されていれば、自動的に「/usr/src」のフォルダの中に、 リポジトリーの最新バージョンの「linux-source-x.x.xパッケージ」と、「linux-source-x.x.x.tar.bz2パッケージ」が、 上記のコマンドによりダウンロードされています。

 ここでは具体的に解りやすく、「linux-source-3.0.0パッケージ」と、「linux-source-3.0.0.tar.bz2パッケージ」という事で、 紹介を進めます。

kernel

 次に、

$ sudo -s

 パスワード入力

 コマンドを入力してそれぞれ「Enter」を押します。

# apt-get install linux-souce-3.0.0(リポジトリーの最新バージョン)

 コマンドを入力して「Enter」を押します。>ソースコードをインストールします。

# cd /usr/src

 コマンドを入力して「Enter」を押します。>「/usr/src」のフォルダに移動します。

# tar xvjf linux-source-3.0.0.tar.bz2

 コマンドを入力して「Enter」を押します。>「linux-source-3.0.0.tar.bz2」のパッケージを展開します。

# cd linux-souce-3.0.0

 コマンドを入力して「Enter」を押します。>「/usr/src/linux-souce-3.0.0」のフォルダに移動します。

# cp /boot/config-3.0.0-15-generic .config

 コマンドを入力して「Enter」を押します。 >既存のUbuntuのファイルシステムの「/boot/config-3.0.0-15-generic」のファイルを、 新しい「.config」ファイルにコピーします。

kernel

# cd /usr/src

 コマンドを入力して「Enter」を押します。>「/usr/src」のフォルダに移動します。

# make oldconfig

 コマンドを入力して「Enter」を押します。 >ソースディレクトリーの最上位のディレクトリー「.config」ファイルが作成されます。

# make menuconfig

 コマンドを入力して「Enter」を押します。

 「make menuconfig」の設定画面が表示されます。 この設定画面で、再構築するカーネルを設定します。

 「make menuconfig」の操作方法

kernel

 基本的には、「# cp /boot/config-3.0.0-15-generic .config」の時に、 既存のUbuntuのシステムをコピーしてあるので、既存のUbuntuを基本にして、 利用するファイルシステムや周辺機器を動かすためのソフト(=デバイスドライバ)等を、 この設定の編集によって選択して、組み込んだり外したりしてカスタマイズします。

 この時に最初に必ず、「General Setup」セクションにある「Local vision-append to kernel release」を選択して、 「-local」などの追加バージョンを設定しておきます。

 「make menuconfig」のセクションに関しては、>こちらを参考にしてみてください。

kernel kernel

# make-kpkg clean

# CONCURRENCY_LEVEL=4 make-kpkg --rootcmd fakeroot --initrd --revision=20120201 kernel_image kernel_headers

 コマンドを入力してそれぞれ「Enter」を押します。>この後は、「端末」が自動で数時間作業します。 (>かなり長い時間画面が下にスライドします。気長に待ちましょう。)

 「CONCURRENCY_LEVEL=4」(=同時実行数)の部分 >「4」の数字の部分は、PCが、「マルチコアCPUや、複数のCPUを装備している場合」は、 ビルド処理の並列数を増やすことでビルド時間を短縮できます。 指定する数値は、CPU数(あるいはCPUコア数)と同じか、その倍程度にすると良いでしょう。

 「--revision=20120201」の「20120201」の部分の数字は、 カーネルを再構築した日時を指定すると、あとで日時データが解りやすく また、後で作成される「.deb」パッケージのバージョン名として記載されます。

kernel

# cd /usr/src

# dpkg -i linux-image-3.0.13-local_20120201_amd64.deb

# dpkg -i linux-header-3.0.13-local_20120201_amd64.deb

 コマンドを入力してそれぞれ「Enter」を押してインストールします。

 「端末」の末尾が

#

 と表示されたら

# exit

 コマンドを入力してそれぞれ「Enter」を押して「端末」を終了します。

 以上で、カーネル再構築の設定が完了です。

 PCを再起動して「端末」を開き、

$ sudo uname -r

パスワード入力

 コマンドを入力してそれぞれ「Enter」を押します。

 カーネルを再構築した新しいバージョンアップ名に変更された事を確認できます。

kernel

 このページの編集は、カーネル再構築のススメを参考にさせて頂きました。 ありがとうございました。 HPアドレスは、http://dogmap.jp/2009/06/19/rebuild-kernel/です。 リンクできるので、そちらも参考にしてみてください。

ページトップへ