0から作るソフトウェア開発

日々勉強中。。。

Tips
リンク

0から作るLinuxプログラム Tips カーネルの再構築

開発環境のインストール

ここではUbuntuの64ビット版を例に作っていきたいと思います。

それでは、まずはカーネルをビルドするためのツールをインストールしていきましょう。



Ubuntuでカーネルをビルドするためには以下のパッケージが必要となります。

  1. libncurses-dev

  2. ncursesの開発用ライブラリーです。テキスト形式のAPIを提供してくれます。カーネルの

    menuconfigに使用します。



  3. build-essential

  4. Debianパッケージを構築するのに必要なツール群です。カーネルのDebianパッケージを

    作成するのに使用します。



  5. fakeroot

  6. ファイル操作を行うときにルート権限で行ったようにするツールです。パッケージ作成に

    使用します。

  7. kernel-package

  8. カーネルのパッケージを構築するためのスクリプトツール群です。



  9. linux-source

  10. カーネルのソースです。



これらをインストールしていきます。

				
$ sudo apt-get -y update
[パスワード入力]
$ sudo apt-get -y install libncurses-dev
$ sudo apt-get -y install build-essential
$ sudo apt-get -y install fakeroot
$ sudo apt-get -y install kernel-package
$ sudo apt-get -y install linux-source



linux-sourceをインストールすると/usr/srcに圧縮されたカーネルのソースが格納されています。

次のようなファイル名となります。ここで(kernel version)はその時の最新バージョンとなります。

				
linux-source-(kernel version).tar.bz2



ここでは、カーネルのバージョン3.17.1を例にします。

カーネルのバージョンは次のコマンドで確認することができます。

				
$ uname -r



この場合の圧縮されたソースは次のようになります。

				
linux-source-3.17.1.tar.bz2



カーネルのビルド

圧縮されたソースを展開します。

				
$ cd /usr/src
$ sudo -s
[パスワード入力]
# tar xf linux-source-3.17.1.tar.bz2



ソースコードディレクトリに移動して.configファイルを作ります。

				
# make oldconfig



カーネルの設定を変えたいときにはmenuconfigで設定を変更できます。

今回はシステムコールを作成するだけとなりますので、必要ありません。

				
# make menuconfig



カーネルをビルドしていきます。

				
# make-kpkg clean
# make-kpkg --rootcmd fakeroot kernel_image kernel_headers



そして、ビルドしたカーネルをインストールしていきます。

カーネルのパッケージは/usr/src/にあります。次のパッケージとなります。

				
linux-image-(kernel version and arch).deb
linux-header-(kernel version and arch).deb



kernel version and archはそれぞれの環境で違います。

kernel-imageとkernel-headerをインストールします。

(下記例とは違ったファイルかと思いますが.debパッケージができていれば成功です。)

				
# dpkg -i linux-image-3.17.1_amd64.deb
# dpkg -i linux-header-3.17.1_amd64.deb



後はリブートしてインストールしたカーネルで起動できているか確認します。

				
# reboot



カーネルのバージョンを確認します。

				
$ uname -r



PR 説明

ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム
0から作るLinuxプログラム Linux Ext2ファイルシステムの完全説明版(Kindleのみ)となります。実装するステップ数は36ステップあります。少しずつステップを実装して、実際に動かして学習していきます。ファイルシステムの機能を呼び出すシステムコールの実装から、仮想ファイルシステムが呼び出すExt2ファイルシステムの実装を行っていきます。ファイルシステムの開発体験を通すことで、実際にカーネルが行っているファイルシステムの基礎的な動作を理解することができます。ぜひお試しください!

inserted by FC2 system