第3章 デフォルトイメージのビルド

はじめに、使用しているターゲットボードのデフォルトイメージを作成してみます。

なお作業を行う際は、必ず一般ユーザで行ってください。ルートユーザで行うと作業ミスなどにより、作業PCの環境を壊す可能性があります。

3.1. ソースコードの取得

アットマークテクノが配布している atmark-distは、以下のURLからダウンロードすることができます。

http://download.atmark-techno.com/dist/

また、アットマークテクノの製品ポータルサイトや開発キットの付属CD-ROM からも入手可能です。

アットマークテクノではatmark-distのファイル名に、atmark-dist-[version]という名前をつけて配布しています。[version]の部分はバージョン番号を表しています。

例3.1 atmark-distのファイル名

[PC ~]$ ls
atmark-dist-[version].tar.gz

3.2. ソースコードアーカイブの展開

atmark-distは、どこに展開しても問題ありません。作業しやすく、ハードディスクドライブの容量に余裕のある場所を選んで展開してください。展開時で500MB、コンパイル後には1GB近くの容量が必要になる場合もあります。ここでは、便宜上ユーザのホームディレクトリ (~/)に atmark-distを展開することにします。

[PC ~]$ tar xzf atmark-dist-[version].tar.gz
    :
    :
[PC ~]$  ls
atmark-dist-[version]/    atmark-dist-[version].tar.gz

以降、本文中ではatmark-dist-[version]は、atmark-distとします。

uClinux.orgで配布しているuClinux-distと違い、アットマークテクノで配布しているatmark-distはLinuxカーネルのソースコードを含んでいません。お使いの製品に合ったカーネルを製品のポータルサイトからダウンロードするか、または開発キットに含まれる CD-ROMに収録されているものをお使いください。

Linuxカーネルソースコードは atmark-distの中に展開します。各製品用のカーネルを展開し、atmark-distディレクトリ内に linux-2.6.xという名前でシンボリックリンクを作成してください。

[PC ~]$ ls
linux-[version].tar.gz atmark-dist-[version]/
atmark-dist-[version].tar.gz
[PC ~]$ tar xzf linux-[version].tar.gz
    :
    :
[PC ~]$ cd atmark-dist-[version]
[PC ~/atmark-dist]$ ln -s ../linux-[version] ./linux-2.6.x
[PC ~/atmark-dist]$ ls -l linux-2.6.x
lrwxrwxrwx           linux-2.6.x -> ../linux-[version]

3.3. 設定

ターゲットボード用のatmark-distをコンフィギュレーションします。以下の例のようにコマンドを入力し、コンフィギュレーションを開始します。

[PC ~/atmark-dist]$ make config

使用するボードのベンダー名を質問されるので「AtmarkTechno」と入力してください。

[PC ~/atmark-dist]$ make config
config/mkconfig > config.in
#
# No defaults found
#
*
* Vendor/Product Selection
*
*
* Select the Vendor you wish to target
*
Vendor (3com, ADI, Akizuki, Apple, Arcturus, Arnewsh, AtmarkTechno, Atmel, Avnet, Cirrus, 
Cogent, Conexant, Cwlinux, CyberGuard, Cytek, Exys, Feith, Future, GDB, Hitachi, Imt, 
Insight, Intel, KendinMicrel, LEOX, Mecel, Midas, Motorola, NEC, NetSilicon, Netburner,
Nintendo, OPENcores, Promise, SNEHA, SSV, SWARM, Samsung, SecureEdge, Signal, SnapGear, 
Soekris, Sony, StrawberryLinux, TI, TeleIP, Triscend, Via, Weiss, Xilinx, senTec) [SnapGear] 
(NEW) AtmarkTechno

次にボード名を質問されます。使用しているボード名を入力してください。ここでは例として「Armadillo-9」を入力します。

*
* Select the Product you wish to target
*
AtmarkTechno Products (Armadillo, Armadillo-210.Base, Armadillo-210.Recover, 
Armadillo-220.Base, Armadillo-220.Recover, Armadillo-230.Base, Armadillo-230.Recover, 
Armadillo-240.Base, Armadillo-240.Recover, Armadillo-300, Armadillo-500, Armadillo-9, 
Armadillo-9.PCMCIA, Armadillo-J.Base, Armadillo-J.Jffs2, Armadillo-J.Recover,  
SUZAKU-V.SZ310, SUZAKU-V.SZ310-SIL, SUZAKU-V.SZ410, SUZAKU-V.SZ410-SIL) [Armadillo] 
(NEW) Armadillo-9

次は、開発環境を指定します。特に指定がない場合は、「default」を指定してください。何も入力せずに次へ進みます。

*
* Kernel/Library/Defaults Selection
*
*
* Kernel is linux-2.6.x
*
Cross-dev (default, arm-vfp, arm, armnommu, common, h8300, host, i386, i960, m68knommu, 
microblaze, mips, powerpc, sh) [default] (NEW)

次は、使用するCライブラリを指定します。使用するボードによってサポートされているライブラリは異なります。Armadillo-9では、Noneを選択します。詳しくは、お使いの製品のソフトウェアマニュアルを参照してください。

Libc Version (None, glibc, uC-libc, uClibc) [uClibc] (NEW) None

次にデフォルトの設定にするかどうか質問されます。Yesを選択してください。

Default all settings (lose changes) (CONFIG_DEFAULTS_OVERRIDE) [N/y/?] (NEW) y

最後の3つの質問はNoと答えてください。

Customize Kernel Settings (CONFIG_DEFAULTS_KERNEL) [N/y/?] n
Customize Vendor/User Settings (CONFIG_DEFAULTS_VENDOR) [N/y/?] n
Update Default Vendor Settings (CONFIG_DEFAULTS_VENDOR_UPDATE) [N/y/?] n

質問事項が終わるとビルドシステムが設定を行います。すべての設定が終わるとプロンプトに戻ります。

3.4. ビルド

ビルドするには以下のコマンドを入力してください。ビルドの途中でいくつか新しく質問される場合があります。その場合はEnterキーを押してください。

[PC ~/atmark-dist]$ make all

3.5. イメージ

イメージファイルはatmark-dist/images/ディレクトリに生成されます。選択した製品によって、生成されるファイル数やファイルの種類が異なる場合があります。お使いの製品のソフトウェアマニュアルを参照してください。

できあがったイメージファイルを製品に書き込む方法は、お使いの製品のソフトウェアマニュアルを参照してください。

3.6. まとめ

この章で行った一連のコマンドと選択したオプションを以下にまとめます。

[PC ~]$ ls
linux-[version].tar.gz  atmark-dist-[version].tar.gz
[PC ~]$ tar xzf atmark-dist-[version].tar.gz
[PC ~]$ tar xzf linux-[version].tar.gz
[PC ~]$ cd atmark-dist-[version]
[PC ~/atmark-dist]$ ln -s ../linux-[version] ./linux-2.6.x
[PC ~/atmark-dist]$ make config
  Vendor AtmarkTechno
  AtmarkTechno Products Armadillo-9
  Cross-dev default
  Libc Version None
  Default all settings y
  Customize Kernel Settings n
  Customize Vendor/User Settings n
  Update Default Vendor Settings n
[PC ~/atmark-dist]$ make dep all
[PC ~/atmark-dist]$ ls image/
linux.bin  linux.bin.gz  romfs.img  romfs.img.gz