ARM9用のLinuxカーネルを構築する

ARM9用Linuxカーネル構築

Interface Oct. 2009を参考にし、ARM9用シミュレータVirtual Platformと組み込みシステム開発評価ボード(BLANCA ARM9)で動作するLinuxカーネルを構築します。

Linuxカーネルのビルド

Linuxカーネルソースのダウンロードと展開

Linuxカーネル(linux-2.6.27)のソースをダウンロードし展開します。

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
$ tar jxvf linux-2.6.27.tar.bz2
$ cd linux-2.6.27

Atmel ARM シリーズ用パッチ

Atmel ARM シリーズ用のパッチをダウンロードし、展開後パッチを当てます。

$ wget http://maxim.org.za/AT91RM9200/2.6/2.6.27-at91.patch.gz
$ wget ftp://www.linux4sam.org/pub/linux/2.6.27-at91/2.6.27-at91-exp.patch.gz
$ zcat 2.6.27-at91.patch.gz | patch -p1
$ zcat 2.6.27-at91-exp.patch.gz | patch -p1

BLANCA ARM9評価ボード用パッチ

BLANCA ARM9評価ボード用のパッチをダウンロードし、パッチを当てます。

$ wget http://www.sinby.com/~hal/blanca_devices.patch
$ patch -p0 -i blanca_devices.patch

Linuxカーネルのコンフィグレーションとビルド

Linuxカーネルをディフォルトの設定でコンフィグレーションを行い、ビルドします。

$ wget http://www.sinby.com/~hal/blanca_at91sam9xe.config
$ cp blanca_at91sam9xe.config .config
$ make ARCH=arm oldconfig
$ make ARCH=arm CROSS_COMPILE=~/sam91/arm-2007q1/bin/arm-none-linux-gnueabi-

zImange生成の確認

arch/arm/bootにカーネルイメージzImageが生成されていることを確認します。

$ cd arch/arm/boot/
$ ls -l zImage
-rwxr-xr-x 1 ono ono 1493028 2009-11-09 17:05 zImage

Linuxカーネルの コンフィグレーションとビルド変更

Linuxカーネルのコンフィグレーションを変更します。

カーネルのコンフィグレーション

Linuxカーネルのコンフィギュレーションを行います。

$ cd ~/linux-2.6.27
$ make ARCH=arm menuconfig

コンフィグレーション内容

Linuxカーネルのコンフィグレーションを変更します。

・ Networking supportを無効にします。
・ SPIサポートを無効にします。
・ Sound card supportを無効にします。
・ USB supportを無効にします。
・ MMC/SD card upportを無効にします。

カーネルのビルド

カーネルをリビルドします。

$ make ARCH=arm CROSS_COMPILE=~/sam91/arm-2007q1/bin/arm-none-linux-gnueabi-

zImange生成の確認

arch/arm/bootにカーネルイメージzImageが生成されていることを確認します。

$ cd ~/linux-2.6.27/arch/arm/boot
$ ls -l zImage
-rwxr-xr-x 1 ono ono 877588 2009-11-09 18:10 zImage

2009.11.09