シリアル接続による開発ボードの動作確認組み込みLinux開発入門(2)(2/3 ページ)

» 2005年09月10日 00時00分 公開
[渡辺 武夫 イーエルティ,@IT MONOist]

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が起動するとログインプロンプトが表示されます。標準では、

  ユーザー root
  パスワード root

が組み込まれています。ログインすると、まさに通常の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

コラム Armadillo-9のネットワーク設定
 標準では、DHCPでIPアドレスを取得する設定になっています。従って、DHCPサーバがないネットワークではIPアドレスの設定が行われません。

このような環境では、Armadillo-9にログインした後、ifconfigなどでIPアドレス設定を行う必要があります。

Copyright © ITmedia, Inc. All Rights Reserved.