Armadillo用の標準開発環境をATDE(Atmark Techno Development Environment)といいます。ATDEは仮想マシン上で動作するLinuxデスクトップ環境(Debian GNU/Linux)で、開発に必要なソフトウェア一式がプリインストールされています。ATDEはVMwareイメージとして提供されているため、作業用PCのOSがWindowsであるかLinuxであるかを問わず、VMware Playerを実行できる環境であれば、ATDEを実行することができます。
本書執筆時点でのArmadillo-400シリーズ用の標準開発環境は、ATDE3となっています。ATDE3のベースはDebian GNU/Linux 5.0 (コードネーム "lenny")です。ATDE3 のインストール及び基本的な設定方法については、第1部「開発環境の構築」を参照してください。
この章では、第1部で触れなかったATDE3の設定方法や運用方法について説明をおこないます。また、ATDE3と同じ環境を別のLinux PCに構築する方法についても説明します。
この章では、作業用PCに接続したUSBメモリをATDE3で使用する方法について説明します。シリアルポートや共有フォルダを使う方法は、第1部を参照してください。
本章では、作業用PCのOSがWindowsの場合について説明します。作業用PCのOSがLinuxの場合は、「ホストOSがLinuxの場合」を参照してください。
まず、USBメモリを作業用PCに接続してください。USBメモリが作業用PCで認識されると、VMware Playerの「仮想マシン」-「取り外し可能デバイス」メニューに「デバイス名[]」が追加されます。「接続(ホストから切断)」と表示されている場合は、メニューを選択してください[]。そうすると、VMware Player側(ATDE3)でUSBメモリを使用できるようになります。
しばらくしてATDE3がUSBメモリを認識すると、USBメモリは自動で/media/disk
ディレクトリにマウントされます。また、以下のようにデスクトップにUSBメモリのアイコンが作成され、Nautilus(ファイルマネージャ[])が起動します。
| USBメモリを切断する |
---|
VMware Player側でUSBメモリを使用している間は、作業用PCでは使用できません。作業用PCでUSBメモリを使用する場合は、一度VMware PlayerからUSBメモリを切断する必要があります。 VMware PlayerからUSBメモリを切断するにはVMware Playerの「仮想マシン」- 「取り外し可能デバイス」-「デバイス名」-「切断(ホストに接続)」メニューを選択してください。 |
本章では、作業用PCのOSがLinuxの場合について説明します。作業用PCのOSがWindowsの場合は、「ホストOSがWindowsの場合」 を参照してください。
まず、USBメモリを作業用PCに接続してください。USBメモリが作業用PCで認識されると、VMware Playerの「VM」-「Removable Devices」メニューに「デバイス名[]」が追加されます。「Connect」と表示されている場合は、メニューを選択してください[]。そうすると、VMware Player側(ATDE3)でUSBメモリを使用できるようになります。
しばらくしてATDE3がUSBメモリを認識すると、USBメモリは自動で/media/disk
ディレクトリにマウントされます。また、以下のようにデスクトップにUSBメモリのアイコンが作成され、Nautilus(ファイルマネージャ[])が起動します。
| USBメモリを切断する |
---|
VMware Player側でUSBメモリを使用している間は、作業用PCでは使用できません。作業用PCでUSBメモリを使用する場合は、一度VMware PlayerからUSBメモリを切断する必要があります。 VMware PlayerからUSBメモリを切断するにはVMware Playerの「VM」-「Removable Devices」-「デバイス名」-「Disconnect」メニューを選択してください。 |
Debian GNU/Linuxではアプリケーションプログラムやライブラリなどのソフトウェアの管理はDebianパッケージと呼ばれるパッケージ単位で行います。この章では、Debianパッケージを検索し、それをATDE3へインストールする方法について説明します。
2.2.1. ソフトウェアが含まれるパッケージを検索する
まず、インストールしたいアプリケーションプログラムやライブラリが含まれるパッケージのパッケージ名を知る必要があります。パッケージ名を調べる一般的な方法には、以下のものがあります。
- Debianのパッケージページ[]から検索する。
- apt-cache searchを使用しパッケージを検索する。
- すでにインストールされているファイルからパッケージ名を検索する。
本章ではこれらの方法について、説明します。
2.2.1.1. Debianパッケージページで検索する
debian.org(Debian GNU/Linuxの公式サイト)のパッケージページでDebianパッケージの検索をすることができます。Debianのパッケージページでのパッケージの検索方法としては以下の方法があります。
- パッケージ名
- パッケージ説明文
- ソースパッケージ名
- パッケージに含まれるファイルのパス
それぞれの検索方法でパッケージを選択し、ダウンロードすることができます。
| Debian GNU/Linuxのバージョンとアーキテクチャ |
---|
Debian GNU/Linuxには安定版(stable)、テスト版(testing)、不安定版(unstable)、旧安定版(oldstable)というリリースが存在します。それぞれ用途・更新頻度・サポート体制が違います。 ATDE3では、2011年3月現在の旧安定版(oldstable)であるDebian GNU/Linux 5.0(コードネーム "lenny")をベースに開発環境を構築しています。 また、Debianでは各種アーキテクチャ用のパッケージが提供されています。 Intel x86系CPU用のアーキテクチャ名はi386です。ATDE3では、このアーキテクチャを使用します。 ARM CPU用には、armとarmelの二つのアーキテクチャがあります。それぞれABIが異なります。armがOABI用、armelがEABI用のアーキテクチャです。Armadillo-400シリーズはEABIですので、armelアーキテクチャ用のパッケージを使用します。 |
2.2.1.2. apt-cacheコマンドで検索する
apt-cacheコマンドの引数にsearch
を付けて実行することでパッケージの検索ができます。パッケージ名やパッケージの説明に対して検索します。パッケージ名やパッケージの説明に対して検索できます。
例えば「coreutils」というlsコマンドやcpコマンドなどの基本的なコマンドが含まれるパッケージを検索する場合は以下のコマンドを実行します。
一番左に表示されているものが、パッケージ名です。
apt-cacheコマンドには他にもいろいろな機能が備わっています。詳しくはman apt-cacheを参照してください。
2.2.1.3. すでにインストールされているパッケージから逆引きする
ATDE3にはインストールされていないソフトウェアが、Debian GNU/Linux 5.0などがインストールされている作業用PCには入っている場合があります。この章では、ファイル名やコマンド名は分かるが、パッケージ名が分からないときに便利なコマンドを紹介します。
インストールされているファイル名や、コマンド名からパッケージを調べるにはdpkgコマンドに-S
オプションを付けて使用します。ここでは例としてlsコマンドがどのパッケージに含まれているかを調べます。
whichコマンドを使ってlsコマンドのパスを調べた結果を、dpkgコマンドの引数として指定しています。dpkg -Sはファイルのパスで検索してくれます。ファイル名ではなく、パスを使用したほうが検索結果が少なく便利です。
dpkg -S /bin/lsを実行した結果から、lsコマンドはcoreutilsパッケージに含まれていることが分かります。
インストールしたいパッケージのパッケージ名が分かれば、apt-get installでパッケージをインストールできます。apt-get installは、指定されたパッケージ名のパッケージをダウンロードし、インストールまでを行います。
例として、FTPクライアントのlftpパッケージをインストールする場合、図2.7「apt-get installによるパッケージのインストール」のようになります[]。
apt-getコマンドにはいろいろな機能が備わっています。詳しくはman apt-getを参照してください。
2.3. ATDE3にクロス開発用ライブラリをインストールする
Atmark Distに含まれないアプリケーションやライブラリをビルドする際に、付属DVDやダウンロードサイトには用意されていないライブラリパッケージが必要になることがあります。ここでは、クロス開発用ライブラリパッケージの作成方法およびそのインストール方法を紹介します。
2.3.1. dpkg-crossコマンドを使用する
まず、作成したいクロス開発用パッケージの元となるライブラリパッケージを取得します。取得するパッケージは、アーキテクチャをターゲットに、Debianディストリビューションのバージョンを開発環境に合わせる必要があります。Armadillo-400シリーズでは、アーキテクチャはarmel、Debianディストリビューションのバージョンは lenny (2010年9月現在の安定版)になります。
例えば、libjpeg62の場合、ダウンロードするファイルは「libjpeg62_[version]
_armel.deb
」になります。Debianパッケージは、Debianのパッケージページから検索して取得することができます。
取得したライブラリパッケージをクロス開発用に変換するには、dpkg-crossコマンドを使用します。
[ATDE ~]$
dpkg-cross --build --arch armel libjpeg62_[version]
_armel.deb
[ATDE ~]$
ls
libjpeg62-armel-cross_[version]
_all.deb libjpeg62_[version]
_armel.deb
--build
オプションはクロス開発用に変換されたDebianパッケージを作成することを意味します。--arch
オプションにはアーキテクチャを指定します。最後の引数には変換したいライブラリパッケージを指定します。
dpkg-crossはクロス開発用のライブラリパッケージパッケージの「libjpeg62-armel-cross_[version]
_all.deb
」を作成します。ファイル名の「armel-cross
」はarmelクロス開発用を意味し、「_all」はすべてのアーキテクチャの開発用PCにインストールすることができることを意味します。
次に、dpkgコマンドを-i
オプションを付けて実行し、クロス開発用に変換したパッケージをインストールします。
[ATDE ~]$
sudo dpkg -i libjpeg62-armel-cross_[version]
_all.deb
dpkg-cross --build --arch armelで作成したクロス開発用ライブラリパッケージをインストールすると、ファイルは/usr/arm-linux-gnueabi
ディレクトリ以下にインストールされます。ライブラリファイルは/usr/arm-linux-gnueabi/lib
ディレクトリに、ヘッダファイルは/usr/arm-linux-gnueabi/include
ディレクトリに置かれます。
| パッケージ名の最後が-devのパッケージ |
---|
パッケージ名の最後が-devになっているパッケージは開発用のものです。開発用パッケージにはヘッダーファイルなどが入っています。例えばlibjpeg62パッケージの開発用パッケージ名は、libjpeg62-devになります。libjpeg62を使用するソースコードをコンパイルする場合は、libjpeg62-devパッケージも必要になります。 クロス開発を行う場合はこのようなケースが多いので、新しいクロス開発用パッケージをインストールする場合、開発用パッケージもインストールしておくのが良いでしょう。 |
| アプリケーションの場合 |
---|
アプリケーションのパッケージには、ライブラリファイルもヘッダーファイルも含まれていないので、dpkg-crossコマンドでクロス開発用パッケージに変換することができません[]。 ARM用のDebianパッケージに含まれる、アプリケーションの実行ファイルをArmadilloで動作させたい場合、まず、dpkg -xを実行して、パッケージに入っているファイルを取り出します。該当のファイルを探し、Armadilloのユーザーランドに配置するだけでアプリケーションを使用することができます。 このようにして配置したアプリケーションを使用する場合に、ライブラリや設定ファイルが必要な場合もあります。うまく動作しなかった場合は、パッケージの依存関係や、設定ファイルの有無を調べてください。 また、4章Armadillo上にDebian GNU/Linuxを構築するで紹介する手順を行ない、Armadillo上にDebian GNU/Linuxを構築することでArmadillo上でもapt-getコマンドが使用できるようになります。 |
2.3.2. apt-crossコマンドを使用する
apt-crossコマンドを使用すると、「dpkg-crossコマンドを使用する」で紹介した一連の作業を1つのコマンドで行うことができます。
--arch
オプションにはアーキテクチャを指定します。--suite
オプションにはDebian ディストリビューションのバージョンを指定します。--install
オプションは取得/変換したパッケージをインストールすることを意味します。最後の引数には、パッケージ名を指定します。
ATDE3は仮想マシン上で動作するため、メンテナンスが簡単などのメリットがありますが、その分動作が遅いというデメリットもあります。Debian GNU/Linux 5.0がインストールされたPCであれば、ATDE3と同様の開発用環境を構築することもできます。ここでは、その手順について説明します。
まず、/etc/apt/sources.list.d/atmark.source.list
に以下の内容を追加してください。
deb http://download.atmark-techno.com/debian lenny/
続いて、以下のコマンドを実行し、パッケージの情報の更新をしてください。
[PC ~]$
sudo apt-get update
最後に、a440-development-environment
パッケージをインストールしてください。そうすると、Armadilloの開発に必要なパッケージが全てインストールされます。
[PC ~]$
sudo apt-get install a440-development-environment