第12章 カーネルのビルド

本章では、Linuxカーネルのソースコードを作業用PCでクロスビルドし、カーネルイメージファイルを作成する方法について記載します。

事前に 11章開発環境の準備 を参照して、作業用PCに開発環境が構築されている必要があります。

12.1. ソースアーカイブの取得

Linuxカーネルのソースアーカイブ linux-2.6.35-a800eva-[version].tar.gzを取得します。ソースアーカイブはArmadilloサイト(http://armadillo.atmark-techno.com)または、付属DVD-ROMから取得可能です。

12.2. ソースアーカイブの展開

取得したソースアーカイブを展開します。図12.1「ソースアーカイブの展開」のように作業してください。

[PC ~]# ls
linux-2.6.35-a800eva-[version].tar.gz
[PC ~]# tar zxvf linux-2.6.35-a800eva-[version].tar.gz
linux-2.6.35-a800eva-[version]  linux-2.6.35-a800eva-[version].tar.gz

図12.1 ソースアーカイブの展開


12.3. ビルド

展開したソースアーカイブをビルドして、カーネルイメージファイルを作成します。図12.2「カーネルのビルド」のように作業してください。

1[PC ~]$ cd linux-2.6.35-a800eva-[version]
2[PC ~/linux-2.6.35-a800eva-[version]]$ make ARCH=arm armadillo800eva_android_defconfig
3[PC ~/linux-2.6.35-a800eva-[version]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
4[PC ~/linux-2.6.35-a800eva-[version]]$ ls arch/arm/boot/Image
Image

1

ソースコードディレクトリに移動します

2

デフォルトコンフィギュレーションを適用します

3

ソースコードをビルドします

4

カーネルイメージファイルが作成できたことを確認します

図12.2 カーネルのビルド


12.4. インストール

カーネルイメージを、内蔵ストレージにインストールします。事前に9章SDブートの活用を参照して、Debian GNU/Linux を SD ブートしている必要があります。

「ビルド」で作成したカーネルイメージファイルはカレントディレクトリ以下にあることを想定しています。

Android システムにインストールする場合は図12.3「Android システムへのカーネルイメージのインストール」を、Debian GNU/Linux システムにインストールする場合は図12.4「Debian GNU/Linux システムへのカーネルイメージのインストール」を参照してください。

[armadillo ~]$ ls
Image
1[armadillo ~]$ mount /dev/mmcblk0p4 /mnt
2[armadillo ~]$ rm -f /mnt/boot/*.bin
3[armadillo ~]$ cp Image /mnt/boot/Image.bin
[armadillo ~]$ umount /mnt

1

eMMCパーティション4をマウントします。

2

eMMCパーティション4の/boot/以下のカーネルイメージファイルを削除します。

3

eMMCパーティション4の/boot/以下にカーネルイメージファイルをコピーします。ファイル名は"Image.bin"または"linux.bin"にリネームする必要があります。

図12.3 Android システムへのカーネルイメージのインストール


[armadillo ~]$ ls
Image
1[armadillo ~]$ mount /dev/mmcblk0p2 /mnt
2[armadillo ~]$ rm -f /mnt/boot/*.bin
3[armadillo ~]$ cp Image /mnt/boot/Image.bin
[armadillo ~]$ umount /mnt

1

eMMCパーティション2をマウントします。

2

eMMCパーティション2の/boot/以下のカーネルイメージファイルを削除します。

3

eMMCパーティション2の/boot/以下にカーネルイメージファイルをコピーします。ファイル名は"Image.bin"または"linux.bin"にリネームする必要があります。

図12.4 Debian GNU/Linux システムへのカーネルイメージのインストール