第5章 開発環境の準備

本章では、Armadillo のソフトウェア開発を行うための開発環境を、作業用 PC に構築する方法について説明します。

Armadillo-400 シリーズのソフトウェア開発には、Debian 系の Linux 環境[16](Debian GNU/Linux 5.0 コードネーム lenny を標準とします)が必要です。

作業用 PC が Windows の場合、Windows 上に仮想的な Linux 環境を構築する必要があります。

Windows 上に Linux 環境を構築する方法としては、「VMware」を推奨しています。VMware を使用する場合は、開発に必要なソフトウェアがインストールされた状態の OS イメージ「ATDE(Atmark Techno Development Environment)」[17]を提供しています。

Windows 上に Linux 環境を構築する手順については、「ATDE Install Guide」を参照してください。

ATDE には、標準で基本的な開発環境がインストールされているため、ATDE をお使いになる場合は、「クロス開発環境パッケージのインストール」「Atmark-Dist のビルドに必要なパッケージのインストール」は、行う必要ありません。

5.1. クロス開発環境パッケージのインストール

Debian 系 Linux では、アプリケーションやライブラリの管理には Debian (deb) パッケージ を使用します。

クロス開発を行うには、作業用 PC にクロス開発用のツールチェインのパッケージと、ターゲットアーキテクチャ用のライブラリをクロス開発用に変換したパッケージをインストールする必要があります。

Debian 系 Linux では ARM 用のアーキテクチャとして、arm と armel の2つがあります。これは、ABI (Application Binary Interface) の違いによるものです。arm アーキテクチャは OABI を、armel アーキテクチャは EABI を意味します。

Armadillo-400 シリーズでは、EABI を標準の ABI としています。そのため、ターゲットアーキテクチャとして armel のパッケージをインストールする必要があります。

付属 DVD のクロス開発環境ディレクトリ (cross-dev/deb/) にクロス開発環境用のパッケージが用意されています。Armadillo-400 シリーズで開発を行う場合、通常は、armel ディレクトリにある、ARM EABI クロス開発環境をインストールしてください。

インストールは root ユーザーで行う必要があります。deb パッケージをインストールするには、図5.1「インストールコマンド」のようにコマンドを実行します。

[PC ~]$ sudo dpkg --install *.deb

図5.1 インストールコマンド


[ティップ]

sudo は引数に与えられたコマンドを、別のユーザーとして実行するコマンドです。上記コマンドでは、root (スーパー)ユーザーとして、dpkg コマンドを実行します。

sudo を実行すると、パスワードを要求されることがあります。このとき入力するパスワードは、そのユーザーのパスワードであり、root パスワードではありません。

[警告]

ご使用の開発環境に既に同一ターゲット向けのアーキテクチャ用クロス開発環境がインストールされている場合、新しいクロス開発環境をインストールする前に必ず既存環境をアンインストールするようにしてください。

5.2. Atmark-Dist のビルドに必要なパッケージのインストール

Armadillo 標準のディストリビューションである、Atmark-Dist をビルドするためには、表5.1「Atmark-Dist のビルドに必要なパッケージ一覧」に示すパッケージが作業用 PC にインストールされている必要があります。

表5.1 Atmark-Dist のビルドに必要なパッケージ一覧

パッケージ名バージョン
genext2fs1.4.1-2.1以降
file4.26-1以降
sed4.1.5-6以降
perl5.10.0-19lenny2以降
bison1:2.3.dfsg-5以降
flex2.5.35-6以降
libncurses5-dev5.7+20081213-1以降

現在インストールされているバージョンを表示するには、図5.2「インストール情報表示コマンド」のようにパッケージ名を指定して実行してください。

--list はパッケージ情報を表示する dpkg のオプションです。package-name-pattern にはバージョンを表示したいパッケージ名のパターンを指定します。

[PC ~]$ dpkg --list [package-name-pattern]

図5.2 インストール情報表示コマンド


5.3. クロス開発用ライブラリパッケージのインストール

Atmark-Dist に含まれないアプリケーションやライブラリをビルドする際に、付属 DVD やダウンロードサイトには用意されていないライブラリパッケージが必要になることがあります。ここでは、クロス開発用ライブラリパッケージの作成方法およびそのインストール方法を紹介します。

まず、作成したいクロス開発用パッケージの元となるライブラリパッケージを取得します。取得するパッケージは、アーキテクチャをターゲットに、Debian ディストリビューションのバージョンを開発環境に合わせる必要があります。Armadillo-400 シリーズでは、アーキテクチャは armel、Debian ディストリビューションのバージョンは lenny (2011年3月現在の oldstable)になります。

例えば、libjpeg62の場合「libjpeg62_[version]_armel.deb」というパッケージになります。

Debian パッケージは、Debian Packages サイト[18]から検索して取得することができます。

取得したライブラリパッケージをクロス開発用に変換するには、dpkg-cross コマンドを使用します。

[PC ~]$ dpkg-cross --build --arch armel libjpeg62_[version]_armel.deb
[PC ~]$ ls
libjpeg62-armel-cross_[version]_all.deb libjpeg62_[version]_armel.deb

図5.3 クロス開発用ライブラリパッケージの作成


作成されたクロス開発用ライブラリパッケージをインストールします。

[PC ~]$ sudo dpkg -i libjpeg62-armel-cross_[version]_all.deb

図5.4 クロス開発用ライブラリパッケージのインストール


[警告]

Debian lenny 以外の Linux 環境で dpkg-cross を行った場合、インストール可能なパッケージを生成できない場合があります。

apt-cross コマンドを使用すると、上記の一連の作業を1つのコマンドで行うことができます。

[PC ~]$ apt-cross --arch armel --suite lenny --install libjpeg62

図5.5 apt-crossコマンド


--arch オプションにはアーキテクチャを、--suite オプションにはDebian ディストリビューションのバージョンをそれぞれ指定し、--install オプションで取得/変換したパッケージをインストールすることを指定します。最後の引数には、パッケージ名を指定します。



[16] Debian 系以外の Linux でも開発はできますが、本書記載事項すべてが全く同じように動作するわけではありません。各作業はお使いの Linux 環境に合わせた形で自己責任のもと行ってください。

[17] Armadillo-400 シリーズの開発環境としては、ATDE v3.0以降を推奨しています。

[18] http://www.debian.org/distrib/packages