開発環境の整備と運用

Armadillo-400シリーズの標準開発環境をATDE3といいます。ATDE3はDebian GNU/Linux 5.0(コードネーム "lenny")をベースに作られています。

この章では、ATDE3の設定方法について確認したあと、ATDE3の運用方法についていくつか説明をおこないます。インストール方法については、第1部の「開発環境の構築」を参照してください。また、ATDE3と同じ環境を別のLinux PCに構築する方法についても説明します。

2.1. ATDE3でUSBメモリを使用する方法

PCに新しく接続されたハードウェアをATDE3から使用するためには、VMware Playerで設定を行う必要があります。この章では例として、USBメモリをPCに接続した場合の使用方法について説明します。

2.1.1. ホストOSがWindowsの場合

この章では、WindowsでATDE3を使用している場合のUSBメモリの使用方法について説明します。

まず、USBメモリを作業用PCに接続してください。

USBメモリが作業用PCで認識されたら、VMware Playerの「仮想マシン」-「取り外し可能デバイス」-「デバイス名[6]」-「接続(ホストから切断)」メニューを選択してください[7]

USBメモリの接続

図2.1 USBメモリの接続


しばらくしてATDE3がUSBメモリを認識すると以下のようにデスクトップにUSBメモリのアイコンが作成され、自動的にNautilus(ファイルマネージャ[8])が起動します。

USBメモリのアイコン

図2.2 USBメモリのアイコン


以上で、ATDE3からUSBメモリが使用できるようになりました。USBメモリは/media/diskディレクトリにマウントされます。また、USBメモリのアイコンをダブルクリックすることで、ファイルマネージャが起動し、USBメモリ内のファイルを操作することができます。

[注記]USB メモリ接続時の注意

VMware PlayerにUSBメモリを接続している間は、作業用PCでUSBメモリを使用することができません。作業用PCでUSBメモリを使用する場合は、一度VMware PlayerからUSBメモリを切断してください。

VMware PlayerからUSBメモリを切断するにはVMware Playerの「仮想マシン」-「取り外し可能デバイス」-「デバイス名」-「切断(ホストに接続)」メニューを選択してください。

2.1.2. ホストOSがLinuxの場合

この章では、LinuxでATDE3を使用している場合のUSBメモリの使用方法について説明します。

まず、USBメモリを作業用PCに接続してください。

USBメモリが作業用PCで認識されたら、VMware Playerの「VM」-「RemovableDevices」-「デバイス名[9]」-「Connect」メニューを選択してください[10]

USBメモリの接続

図2.3 USBメモリの接続


しばらくしてATDE3がUSBメモリを認識すると以下のようにデスクトップにUSBメモリのアイコンが作成され、自動的にNautilus(ファイルマネージャ[11])が起動します。

USBメモリのアイコン

図2.4 USBメモリのアイコン


以上で、ATDE3からUSBメモリが使用できるようになりました。USBメモリは/media/diskディレクトリにマウントされます。また、USBメモリのアイコンをダブルクリックすることで、ファイルマネージャが起動し、USBメモリ内のファイルを操作することができます。

[注記]USB メモリ接続時の注意

VMware PlayerにUSBメモリを接続している間は、作業用PCでUSBメモリを使用することができません。作業用PCでUSBメモリを使用する場合は、一度VMware PlayerからUSBメモリを切断してください。

VMware PlayerからUSBメモリを切断するにはVMware Playerの「VM」-「Removable Devices」-「デバイス名」-「Disconnect」メニューを選択してください。

2.2. 新規パッケージのインストール

Debian GNU/Linuxではソフトウェアの管理はDebian パッケージと呼ばれるパッケージ単位で行われます。

この章では、Debianパッケージを検索し、それをATDE3へインストールする方法ついて説明します。

2.2.1. パッケージを検索する

まず、インストールしたいファイルが入っているパッケージを見つける必要があります。

パッケージを見つける一般的なものには、以下の方法があります。

  • Debianのパッケージページ[12]から検索する。
  • 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では、2010年9月現在の安定版(stable)である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 searchコマンドを使用したパッケージの検索

apt-cache searchコマンドでパッケージの検索ができます。パッケージ名やパッケージの説明に対して検索します。パッケージ名やパッケージの説明に対して検索できます。

例えば「coreutils」というlsコマンドやcpコマンドなどの基本的なコマンドが含まれるパッケージを検索する場合は以下のコマンドを実行します。

[ATDE ~]$ apt-cache search coreutils
realpath - Return the canonicalized absolute pathname
python-sepolgen - A Python module used in SELinux policy generation
policycoreutils - SELinux コアポリシーユーティリティ
coreutils - GNU コアユーティリティ
bsdmainutils - FreeBSD 由来のユーティリティ集

図2.5 apt-cache searchによるパッケージの検索


一番左に表示されているものが、パッケージ名です。

apt-cacheコマンドには他にもいろいろな機能が備わっています。詳しくはman apt-cacheを参照してください。

2.2.1.3. すでにインストールされているファイルからパッケージを調べる

ATDE3にはインストールされていないソフトウェアが、Debian GNU/Linux 5.0などがインストールされている作業用PCには入っている場合があります。この章では、ファイル名やコマンド名は分かるが、パッケージ名が分からないときに便利なコマンドを紹介します。

インストールされているファイル名や、コマンド名からパッケージを調べるにはdpkg -Sコマンドを使用します。ここでは例としてlsコマンドがどのパッケージに含まれているかを調べます。

[PC ~]$ which ls
/bin/ls
[PC ~]$ dpkg -S /bin/ls
coreutils: /bin/ls

図2.6 lsコマンドが含まれているパッケージを調べる


whichコマンドを使ってlsコマンドのパスを調べた結果を、dpkg -Sコマンドの引数として指定しています。dpkg -Sコマンドはファイルのパスで検索してくれます。ファイル名ではなく、パスを使用したほうが検索結果が少なく便利です。

dpkg -Sコマンドの結果から、lsコマンドはcoreutilsパッケージに含まれていることが分かります。

2.2.2. apt-getコマンドを使用してのパッケージのインストール

apt-get installコマンドを使用してのパッケージのインストール方法について説明します。

apt-get installコマンドには、引数としてパッケージ名を指定します。

例としてFTPクライアントのlftpパッケージをインストールするコマンドを実行します[13]

[ATDE ~]$ sudo apt-get install lftp
[sudo] password for atmark:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  lftp
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
587kB 中 0B のアーカイブを取得する必要があります。
この操作後に追加で 1540kB のディスク容量が消費されます。
取得:1 http://ftp.jp.debian.org lenny/main lftp 3.7.3-1+lenny1 [587kB]
587kB を 0s で取得しました (789kB/s)
未選択パッケージ lftp を選択しています。
(データベースを読み込んでいます ... 現在 92123 個のファイルとディレクトリがインストールされています。)
(.../lftp_3.7.3-1+lenny1_i386.deb から) lftp を展開しています...
man-db のトリガを処理しています ...
lftp (3.7.3-1+lenny1) を設定しています ...

図2.7 apt-get installによるパッケージのインストール


その他、apt-getコマンドにはいろいろな機能が備わっています。詳しくはman apt-getを参照してください。

2.3. クロス開発用ライブラリのインストール

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

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

例えば、libjpeg62の場合、ダウンロードするファイルは「libjpeg62_[versio n]_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でクロス開発用パッケージに変換することができません[14]

ARM用のDebianパッケージに含まれる、アプリケーションの実行ファイルをArmadilloで動作させたい場合、まず、dpkg -xコマンドを使用して、パッケージに入っているファ イルを取り出します。該当のファイルを探し、Armadilloのユーザーランドに配置するだけでアプリケーションを使用することができます。

このようにして配置したアプリケーションを使用する場合に、ライブラリや設定ファイルが必要な場合もあります。うまく動作しなかった場合は、パッケージの依存関係や、設定ファイルの有無を調べてください。

また、4章Armadillo上にDebian GNU/Linuxを構築するで紹介する手順を行ない、Armadillo上にDebian GNU/Linuxを構築することでArmadillo上でもapt-getコマンドが使用できるようになります。

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

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

図2.8 apt-crossコマンド


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

2.4. 一つのプロジェクトで使用したATDE3を保存しておくメリット

VMwareの仮想マシンの情報はすべてファイルとして管理されています。そのため、仮想マシン上で作成した環境は、ファイルをコピーするだけで複製することができます。

そのため、あるプロジェクトで作成した仮想マシンのファイルを保存しておけば、プロジェクト終了後に保守しなければいけない状況になった時でも、環境の再現が簡単にできます。

また、複数の作業用PCに環境を作成しなければならない場合に、一つのPCで環境を作成し、その他のPCにファイルをコピーするすることで、簡単に同じ環境を実現できます。

2.5. ATDE3と同じ環境を構築する

作業用のPCがDebian GNU/Linux 5.0環境に、ATDE3と同じ環境をインストールする手順を説明します。

/etc/apt/sources.list.d/atmark.source.listに以下の内容を追加してください。

deb http://download.atmark-techno.com/debian lenny/

ダウンロードするURLを追加したので、以下のコマンドを実行し、利用可能なパッケージの情報の更新をおこないます。

[PC ~]$ sudo apt-get update

以下のコマンドを実行し、必要なパッケージをインストールしてください。

[PC ~]$ sudo apt-get install a440-development-environment

以上で、Armadilloの開発環境の構築は完了です。



[6] USBメモリの名前が表示されます。

[7] 「切断(ホストに接続)」と表示されている場合は、すでにUSBメモリがVMwarePlayerに接続されていますので、この手順は不要です。

[8] ファイルシステムを扱うためのユーザーインターフェースを提供するソフトウェア。ファイラーと呼ばれることもあります。Windowsではエクスプローラなどがあります。

[9] USBメモリの名前が表示されます。

[10] 「Disconnect」と表示されている場合は、すでにUSBメモリがVMware Playerに接続されていますので、この手順は不要です。

[11] ファイルシステムを扱うためのユーザーインターフェースを提供するソフトウェア。ファイラーと呼ばれることもあります。Windowsではエクスプローラなどがあります。

[13] 第1部の手順をすべて実行している場合はすでにlftpがインストールされています。

[14] --convert-anywayオプションを使用して、中身が空のダミーパッケージを作成することはできます。