この章では、本格的な開発に入る前にターゲット側となるArmadilloの準備をおこないます。開発効率を上げるために、ArmadilloにDebian GNU/Linuxをインストールします。
Armadilloの標準ルートファイルシステムは、Atmark Distで作成されたinitrdです。initrdを使う方法は実環境での運用には向いていますが、ルートファイルシステムの空き容量が少ない、変更を簡単に保存できないなどの問題があるので開発段階には適切ではありません。
Armadillo-400シリーズでは、カーネルイメージはmicroSDカードに、ユーザーランドのルートファイルシステムはmicroSDカードまたはUSBメモリにも配置することができます。ここでは、例としてmicroSDカードにカーネルイメージとルートファイルシステム両方を配置する手順を説明します。microSDカードは、1GB以上の容量のものが必要です。
microSDカードにルートファイルシステムを構築し、/boot
ディレクトリにカーネルイメージファイルを配置します。どのデバイスからカーネルイメージをロードするかは、Hermit-Atのブートオプションで指定します。また、ルートファイルシステムがどこにあるかは、カーネルパラメーターで指定します。これも、Hermit-Atで設定します。
ArmadilloにDebian GNU/Linuxをインストールする具体的な手順は、以下のようになります。
- microSDカードにパーティションを作成しEXT3ファイルシステムでフォーマットする。
- カーネルイメージファイルをmicroSDカードにコピーする。
- ルートファイルシステムをmicroSDカードにコピーする。
- Hermit-Atの設定を行う。
microSDカードにDebian GNU/Linuxをインストールする作業は、ATDEで行います。そのためATDEにSDカードを接続する必要があります。
ATDEにSDカードを接続すると次のように、自動的に/media/ディレクトリにマウントされます。本章に記載されている手順を実行するためには、次のようにSDカードをアンマウントしておく必要があります。
まず、microSDに1つのパーティションを作成し、EXT3ファイルシステムでフォーマットします。作業はATDEで行います。
| まずは、既存のパーティションを削除します。複数のパーティションがある場合は、すべて削除してください。 |
| 新しくパーティション1にプライマリパーティションを作成します。パーティションナンバーの設定では、デフォルトのパーティション1を使用するので、そのままEnterキーを押してください。 |
| 開始シリンダにはデフォルト値(2048)を使用するので、そのままEnterキーを押してください。 |
| 最終シリンダにもデフォルト値(1947647)を使用するので、そのままEnterキーを押してください。 |
| 変更をmicroSDに書き込みます。 |
作成したパーティションに対応するブロックデバイスは、/dev/sdb1
となります。
| パーティション作成での注意点 |
---|
使用するmicroSDカードによって仕様が異なるため、表示されるセクタ数は手順通りとはならない場合があります。 |
続いて、作成したパーティションをEXT3ファイルシステムでフォーマットします。フォーマットにはmke2fsコマンドを使用します。-j
オプションを指定することで、EXT3ファイルシステムとして指定したブロックデバイスをフォーマットします。ルートファイルシステムを配置するパーティションは-L rootfs
のオプションを指定する事でrootfsというボリュームラベルにしておきます。また、tune2fsコマンドでファイルシステムのオプションを変更します。-i 0
オプションを付けることで、時間経過によるファイルシステムのチェックを行わないようにします。これは、Armadilloのリアルタイムクロックが大きくずれていた際に、ファイルシステムチェックが行われるのを抑制するためです。
microSDから起動する場合は、起動パーティションの/boot
ディレクトリにカーネルイメージを配置する必要があります。対応しているカーネルイメージファイルの形式は、非圧縮カーネルイメージ(Image
、linux.bin
)または、圧縮イメージ(Image.gz
、linux.bin.gz
)のどちらかになります。
ここで説明する例では、カーネルイメージの取得にwgetコマンドを使用します。wgetコマンドで指定するURLは製品によって異なりますので、以下の表を参照し適宜読み替えてください。
尚、wgetコマンドを使用すためには、Armadilloのネットワーク設定が正しく行われている必要があります。ネットワーク設定が行われていない場合は、ご使用のネットワーク環境に合わせ、/etc/config/interfaces
及び、/etc/config/resolv.conf
を設定しておいて下さい。
ネットワークの設定方法については、第1部の「Armadilloの基本操作」「ネットワークを使う」を参照してください。
表4.1 カーネルイメージのダウンロード先URL
製品 | URL |
---|
Armadillo-420 | http://download.atmark-techno.com/armadillo-420/image/linux-a400-[バージョン] .bin.gz |
以下にArmadillo-420での例を示します。
Armadillo-400シリーズ用に設定済みのDebian GNU/Linuxルートファイルシステムのアーカイブは、付属DVDのdebian
ディレクトリか、弊社ダウンロードサイトから取得できます。アーカイブをmicroSDカードに展開することでルートファイルシステムを構築することができます。
ここで説明する例では、アーカイブの取得にwgetコマンドを使用します。wgetコマンドで指定するURLは製品によって異なりますので、以下の表を参照し適宜読み替えてください。
表4.2 Debianアーカイブのダウンロード先URL
製品 | URL |
---|
Armadillo-420 | http://download.atmark-techno.com/armadillo-420/debian/debian-wheezy-armel-a400-[バージョン] .tar.gz |
ルートファイルシステムの構築が完了したmicroSDをArmadillo-420/440/460のmicroSDスロットにmicroSDカードを挿入[] []します。
4.1.4. ブートデバイスとカーネルパラメーターの設定
カーネルイメージをロードする場所は、Hermit-Atのブートデバイス設定で指定します。また、ユーザーランドの場所は、カーネルパラメーターで指定します。
Hermit-Atの設定は保守モードでおこないます。Armadilloの電源が切れた状態で、タクトスイッチ(SW1)を押しながら電源を投入し、Hermit-Atの保守モードで起動してください。
カーネルイメージをロードするデバイスの指定は、setbootdeviceコマンドを使用します。microSDカードのパーティション1に配置したカーネルイメージで起動するためには、以下のコマンドを実行してください。
カーネルパラメーターの指定は、setenvコマンドを使用します。ルートファイルシステムをmicroSDカードのパーティション1にする場合は、以下のコマンドを実行してください。
| Hermit-Atの設定を元に戻す |
---|
Hermit-Atの設定を初期状態に戻す(カーネルイメージをロードするデバイスとルートファイルシステムの場所をフラッシュメモリにする)には、以下のコマンドを実行してください。
|
以上の設定をおこない、bootコマンドを実行するか再起動すると、microSDカード上に構築されたDebian GNU/Linuxで起動します。
4.2. Debian GNU/Linuxインストール後にまずすること
Armadilloにインストールした直後のDebian GNU/Linuxは、最小限の設定しかされていない状態です。この章では、最低限行わなければならない設定について説明します。
インストール直後のDebian GNU/Linuxでは、特権ユーザーであるrootユーザーしかいません。そのため、ログインはrootユーザーで行います。rootユーザーのパスワードは「root」です。
以降は、Armadillo上で動作するDebian GNU/Linuxのプロンプトとして、以下の表記を用います。
一般ユーザーがいないと何かと不便ですので、まずは一般ユーザーを追加します。一般ユーザーの名前はguest、パスワードもguestとしましょう。
続いて、時刻の設定をおこないます。時刻を正しく設定しておかないと、apt-get installを実行する際にワーニングが大量に表示されるなど、色々な問題が発生します。
まずは、dpkg-reconfigure tzdataでタイムゾーンを設定します。テキストベースのメニュー画面が表示されますので、タイムゾーンをJSTに設定するには[Asia]-[Tokyo]を選択してください。
次に、システムクロックを設定します。この時点ではntpクライアントが使用できませんので、dateコマンドで手動設定します。リアルタイムクロックがArmadillo-420/440/460に接続されており、適切に設定されている場合、システムクロックは起動時に自動で設定されます。そのため、この手順は不要です。システムクロックが現在時刻と大きくずれている場合だけ実行してください。
システムクロックを設定した後は、それをハードウェアクロック(リアルタイムクロック)にも反映させます。ハードウェアクロックの設定はhwclockコマンドを使用しますが、DebianGNU/Linuxではそれをラップしたhwclock.shスクリプトがあるので、それを使用します。
Debian GNU/Linuxでは、セキュリティアップデートやバグフィックスのためパッケージが随時更新されています。ArmadilloにインストールしたDebian GNU/Linuxのアーカイブは最新の状態ではありませんので、パッケージをアップデートする必要があります。
パッケージの管理には、apt-getコマンドを使用します。apt-get updateでローカルに持っているパッケージのリストを最新のものに更新し、apt-get
upgradeで更新可能なパッケージをすべてインストールします。
ATDEとArmadilloで簡単にファイルを送受信するための方法の1つとしてFTPで転送する方法があります。この章ではArmadillo上のDebian GNU/LinuxにFTPサーバーを構築する方法について説明します。
パッケージのインストールには、apt-get installを使用します。FTPサーバーのパッケージ名は、ftpdです。
ftpdは、スーパーサーバー(inetd)を経由して起動されます。そのため、ftpdパッケージをインストールすると、openbsd-inetdパッケージも一緒にインストールされます。Armadillo上で動作するFTPサーバーに外部からアクセス可能にするには、inetdを起動しておく必要があります。なお、次回起動時からはinetdは自動起動されるように、インストールした時点で設定されています。
ATDE5などからFTPでArmadilloに接続する際、ユーザー名とパスワードを要求されます。ftpdが使用するユーザー名とパスワードは、一般ユーザーのものになります。そのため、ユーザー名guest、パスワードguestでアクセスすることができます。
| lftpの便利な使い方 |
---|
lftpコマンドでは、-e オプションでFTPコマンドを指定することができます。何度も同じファイルをArmadilloに転送する必要がある場合、一行でコマンドを書いておき、シェルのヒストリー機能を活用することで何度も同じコマンドを入力せずに済みます。 以下のコマンド例では、guestユーザーでログインし、ファイルを送信しています。一度ファイルを削除しているのは、lftpでは同じファイル名のファイルがある場合、上書きしないため何度も同じコマンドを実行してもファイルが更新されないためです。また、パスワードをコマンドラインに書いてしまっています。コマンドの履歴は同じコンピューターを使用する別のユーザーが見ることができるので、通常、コマンドラインに直接パスワードを書くことは望ましくありません。コンピューターを共有している場合は気をつけてください。
|
Armadillo上で動作するDebian GNU/LinuxにTelnetサーバーを動作させておくと、ATDEからネットワーク経由でArmadilloを操作できるようになります。シリアルインターフェースを端末として使用できない場合などに便利ですので、本章ではTelnetサーバーの構築方法について説明します。
Telnetサーバーのインストールは、いつものようにapt-get
installを使用します。パッケージ名はtelnetdです。
telnetdもftpdと同様に、inetdを介して起動されます。そのため、inetdが起動していない場合は、起動する必要があります。図4.17「inetdの起動」を参照してください。
ATDE5などからArmadilloのTelnetサーバーにアクセスするには、telnetコマンドを使用します。FTPサーバーと同様に、一般ユーザーguestでログインすることができます。
4.3. セルフコンパイル用ツールチェインのインストール
複雑な依存関係を持ったソフトウェアなどでは、クロスコンパイルが難しい場合もあります。そのような時のために、Armadillo上にツールチェインをインストールしてセルフコンパイルできるようにする方法を紹介します。
build-essentialパッケージをインストールすると、開発に最低限必要なパッケージをインストールすることができます。
依存関係に基づいて、gcc、g++、binutils、libc6-dev、makeなどがインストールされます。その他のライブラリなどは、必要に応じてインストールしてください。これは、ATDE5上でセルフコンパイルする場合と、変わりありません。
高速なCPUを搭載した作業用PCでクロスコンパイルする場合と比べ、Armadillo上でセルフコンパイルすると格段に時間がかかります。しかし、クロスコンパイルがどうしても難しいという場合もあるので、最後の手段として、このような方法もあることを覚えておいてください。本書では、これ以降セルフコンパイルについては取り上げません。