Armadillo-9を動かしてみよう
Armadillo-9には標準で組み込みLinuxがインストールされているので、電源を入れるだけで組み込みLinux自体は起動します。ただし、それはあくまで「Linuxが動作する」だけであり、実際には目的に合わせた各種設定や必要なソフトウェアの開発を行わなければなりません。
ホストPCとのシリアル接続
今回は、開発を前提とした必要機材を接続して、取りあえずLinuxの起動までを見てみましょう。第1回でも説明したように、開発にはホストコンピュータ(ホストPC)も必要になります。このホストPCには、Red Hat Linux 9がインストールされているものとして話を進めます。
注意点としては、Armadillo-9を操作するためにシリアルポートが必要なことが挙げられます。つまり、ホストPCにはシリアルポートがなければなりません。もしシリアルポートを装備したホストPCを用意できない場合は、USB←→シリアルアダプタなどで代用することも可能です。
|
図2 Armadillo-9とホストPCの接続 |
ターミナルソフトminicomの設定
Armadillo-9とホストPCを接続したら、Armadillo-9(ターゲット)で動作するLinuxコンソールにアクセスするためのシリアルポート用ターミナルを立ち上げます。ここでは、minicom(注)を利用します。
root# minicom
minicom へようこそ 2.00.0
オプション: History Buffer, F-key Macros, Search History Buffer, I18n
コンパイルされた日時は: Jan 25 2003, 00:15:18.
CTRL-A Z を押すと、説明画面になります。 |
minicomの起動 |
注:minicomは、モデム経由で行う一昔前のBBS(パソコン通信)で一般的に用いられたツールです。それ以外にも、シリアルポート同士を直接接続した際のターミナルソフトとしても使用可能です。 |
minicomが起動したら、[Ctrl]+[A]、[Z]、[O]の順番でキーを押し、説明画面から設定画面に入ります。
+---------[設定]----------+
| ファイル名とパス名 |
| ファイル転送プロトコル |
| シリアルポート |
| モデムとダイヤル |
| 画面とキーボード |
| "dfl" に設定を保存 |
| 新規に設定を保存 |
| 終了 |
+-------------------------+ |
minicom設定画面 |
「シリアルポート」を選択してシリアルポート設定に入り、シリアルデバイス(注)と通信速度、フロー制御を設定します。
+--------------------------------------------------------------------+
| A - シリアルデバイス : /dev/ttyS0 |
| B - ロックファイルの位置 : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - 速度/パリティ/ビット : 115200 8N1 |
| F - ハードウェア流れ制御 : いいえ |
| G - ソフトウェア流れ制御 : いいえ |
| |
| どの設定を変更しますか? |
+--------------------------------------------------------------------+ |
シリアルポート設定画面 |
注:シリアルデバイスは、実際にArmadillo-9と接続しているシリアルポートのデバイスファイルを指定してください。 |
また、minicomの標準設定ではモデム初期化文字列が付加されます。この機能は不要なので「モデムとダイヤルの設定」画面で消去します。
+----------------------[モデムとダイヤルの設定]----------------------+
| |
| A - 初期化文字列......... |
| B - リセット文字列....... |
| C - ダイヤル前置文字列1.. |
| D - ダイヤル後置文字列1.. |
| E - ダイヤル前置文字列2.. |
| F - ダイヤル後置文字列2.. |
| G - ダイヤル前置文字列3.. |
| H - ダイヤル後置文字列3.. |
| I - 接続時の文字列....... CONNECT |
| J - 非接続時の文字列..... NO CARRIER BUSY |
| NO DIALTONE VOICE |
| K - ハングアップ文字列... ~~+++~~ATH^M |
| L - ダイヤル中止文字列... ^M |
| |
| M - ダイヤル時間......... 45 Q - 自動 bps 検出........ いいえ |
| N - リダイヤル待ち時間... 2 R - Modem has DCD line .. はい |
| O - リダイヤル回数....... 10 S - ステータスライン表示. DTE 速度 |
| P - DTR drop 時間 (0=no). 1 T - Multi-line untag .... いいえ |
| |
| どの設定を変更しますか? (Return か Esc で終了) |
+--------------------------------------------------------------------+ |
モデムとダイヤルの設定画面 |
この設定で、minicomをシリアルポート直結ターミナルとして運用できます。
Armadillo-9の起動とログイン
それでは、実際にArmadillo-9の電源を入れてみましょう。正常に動作すれば、以下のようなメッセージが表示されるはずです。
Hermit v1.3-armadillo9-3 compiled at 16:20:09, Apr 21 2005
Uncompressing kernel.........................................
.......................done.
Copying ramdisk.done.
Doing console=ttyAM0,115200
Doing mtdparts=armadillo9-nor:0x10000(bootloader)ro,0x170000(kernel),0x670000(userland),-(config)
Linux version 2.4.27-a9-5 (hanada@pc-nsx) (gcc version 3.4.1 (Debian 3.4.1-4sarge1)) #145 Thu Apr 21 20:425CPU: Arm920Tid(wb) revision 0
Machine: Armadillo-9
alloc_bootmem_low
memtable_init
On node 0 totalpages: 16384
zone(0): 24576 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Starting klogd: done
Starting basic firewall: done
Configuring network interfaces: eth0: No network cable detected!
done
Starting thttpd: done
Starting inetd: done
(中略)
atmark-dist v1.1.0 (AtmarkTechno/Armadillo-9)
Linux 2.4.27-a9-5 [armv4l arch] |
見てのとおり、通常のPC上で動作するLinuxの起動メッセージと非常に似ていることが分かります。組み込みLinuxといっても、基本的には一般的なLinuxと同じであるというわけです。
ただし、見慣れないメッセージがあるのも事実です。例として、最初のメッセージに着目してみましょう。
Hermit v1.3-armadillo9-3 compiled at 16:20:09, Apr 21 2005
Uncompressing kernel.........................................
.......................done.
Copying ramdisk.done.
Doing console=ttyAM0,115200
Doing |
は、「Hermit」というブートローダが起動したことを表すメッセージです。続いて、カーネルイメージとRAMディスクイメージをRAMに展開(、)し、Linuxの起動設定のエコーバック()が行われたことを示すメッセージが表示されています。は、ブートローダがすべての処理を終了したことを意味しています。以後はLinuxではおなじみのメッセージなので、ここでの解説は省略します。
ターゲットの組み込みLinuxが起動するとログインプロンプトが表示されます。標準では、
が組み込まれています。ログインすると、まさに通常のLinuxと同じように操作できるはずです。初期状態ではどのようなプロセスが動作しているのか、psコマンドで確認してみましょう。
atmark-dist v1.1.0 (AtmarkTechno/Armadillo-9)
Linux 2.4.27-a9-5 [armv4l arch]
armadillo9 login: root
Password:
[root@armadillo9 (ttyAM0) ~]# ps -x
PID Uid VmSize Stat Command
1 root 580 S init
2 root SW [keventd]
3 root SWN [ksoftirqd_CPU0]
4 root SW [kswapd]
5 root SW [bdflush]
6 root SW [kupdated]
7 root SW [mtdblockd]
8 root SW [khubd]
102 root 576 S syslogd -m 0 -L
112 root 560 S klogd
183 nobody 800 S thttpd -C /etc/thttpd.conf
193 root 628 S inetd
199 root 736 S -as
200 root 568 S /sbin/getty 38400 tty1
211 root 652 R ps -x |
標準では、DHCPでIPアドレスを取得する設定になっています。従って、DHCPサーバがないネットワークではIPアドレスの設定が行われません。
このような環境では、Armadillo-9にログインした後、ifconfigなどでIPアドレス設定を行う必要があります。 |