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」を押します。

 パスワード入力

 パスワードを入力して「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」ファイル(「config-3.0.13-local」)にコピーします。

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」などの追加バージョンを設定しておきます。

・「Local vision-append to kernel release」を選択

kernel

・「-local」などの追加バージョンを設定

kernel

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

 「make menuconfig」の設定が終了したならば、下記のコマンドを入力します。

# 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」の部分の数字は、
カーネルを再構築した日時(2012年2月1日)を指定すると、あとで日時データが解りやすく また、後で作成される「.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/です。 リンクできるので、そちらも参考にしてみてください。

ページトップへ