Armadilloの基本操作

これまでに、組み込みLinuxシステムとは何か、Armadilloとはどういうものかについて説明してきました。本章では、実際の開発作業に入る前に、Armadilloの基本的な操作方法について説明します。

本章で説明することは、Armadilloを起動して、簡単なコマンドを入力し、Armadilloを終了するといった、本当に基本的なことと、ファイルの編集、ネットワーク接続だけです。あえて、詳しい説明はおこないません。Armadilloとはどのようなコンピューターなのか、実際に動かして確認してください。

LinuxやArmadilloの取扱いに慣れている方には、本章の内容は不要かもしれません。しかし、随所にArmadilloを上手く扱うためのヒントや、あまり意識されていないけれども実は重要なことが書かれていますので、一度目を通してみてください。

4.1. 取り扱い上の注意事項

Armadilloを使用するにあたって、以下のような点にご注意ください。場合によっては、Armadilloが壊れる可能性があります。

  • 基板に、落下や衝撃などの強い振動を与えないでください。
  • 電源が入っている状態で端子に触らないでください。
  • 基板のまわりに金属ゴミ等がある状態では使用しないでください。
  • Armadilloや周辺回路に電源が入っている状態で、活線挿抜対応インターフェース(LAN、USB、マイク、ヘッドフォン)以外へのコネクタ着脱は、絶対に行わないでください。
  • 電源および入出力からの過大なノイズやサージ、電源電圧の急激な変動等により、使用しているCMOSデバイスがラッチアップを起こす可能性があります。いったんラッチアップ状態となると、電源を切断しないかぎりこの状態が維持されるため、デバイスの破損につながることがあります。ノイズの影響を受けやすい入出力ラインには、保護回路を入れることや、ノイズ源となる装置と共通の電源を使用しない等の対策をとることをお勧めします。
  • ArmadilloにはCMOSデバイスを使用していますので、ご使用になる時までは、帯電防止対策された出荷時のパッケージ等にて保管してください。
  • microSDコネクタおよびそのカバーや、Armadillo-440とLCD拡張ボードを接続しているフラットケーブルコネクタは、破損しやすい部品になっています。無理に力を加えて破損することのないよう十分注意してください。

4.2. Armadilloと作業用PCとの接続

4.2.1. 準備するもの

Armadilloを使った組み込みLinuxシステム開発に必要な機材を表4.1「必要な機材」に示します。

最低限、Armadillo本体と、ソフトウェアの開発やArmadilloの操作を行うための作業用PC、シリアルクロスケーブルだけあれば開発をスタートすることができます。特殊なJTAG-ICEやフラッシュライタなどは必要ありません。この手軽さがArmadilloの魅力でもあります。

表4.1 必要な機材

機材 説明

Armadillo

「Armadillo-420ベーシックモデル 開発セット」または「Armadillo-440液晶モデル 開発セット」

作業用PC

LinuxまたはWindowsが動作し、1ポート以上のシリアルインターフェース[a]を持つPC

シリアルクロスケーブル

D-Sub 9ピン(メス - メス)のシリアルクロスケーブル

シリアル通信ソフトウェア

Linuxでは「minicom」、Windows では「Tera Term」など

LANケーブル

ArmadilloとLANを経由した通信を行う場合に必要

スイッチングハブ

作業用PCとArmadilloをハブを介して接続する場合に必要[b]

[a] USBポートがある場合は、USB to シリアル変換ケーブルで代替できます。USB to シリアル変換ケーブルのドライバのインストールや使用方法などは、シリアル変換ケーブルのマニュアル等を参照してください。

[b] Armadillo-400シリーズはAuto MDIXに対応しているため、ストレートまたはクロスのLANケーブルで作業用PCと直接接続することもできます。


[警告]注意: フラッシュメモリは出荷状態に

以降の説明では、Armadilloは出荷状態になっていることを想定しています。

Armadilloのフラッシュメモリを書き換えている場合は、「Armadillo-400シリーズソフトウェアマニュアル」の「フラッシュメモリの書き換え方法」を参照して、ブートローダー、カーネル、ユーザーランドの各領域を標準の最新のイメージファイルに書き換えてください。

また、コンフィグ領域を書き換えている場合は、「Armadillo-420ベーシックモデル開発セット スタートアップガイド」または「Armadillo-440液晶モデル開発セット スタートアップガイド」の「コンフィグ領域の初期化」を参照して、コンフィグ領域を出荷状態に戻してください。

4.2.2. 接続方法

図4.1「Armadillo-420 ベーシックモデル接続例」もしくは図4.2「Armadillo-440 液晶モデル接続例」に示す接続例を参考に、Armadilloと作業用PCおよび周辺機器を接続してください。

Armadillo-400シリーズの標準状態ではシリアルインターフェース1(CON3、D-Sub 9ピンコネクタ)をシリアルコンソールとして使用します。そのため、作業用PCとArmadilloのシリアルインターフェースをクロスケーブルで繋ぎます。

また、Armadilloは様々なネットワーク機能を持っています。作業用PCからArmadilloにネットワーク越しに接続するために、LANケーブルで接続します。

なお、ジャンパピンにジャンパソケットがささってショート状態になっている場合は、外してオープン状態にしておいてください。ジャンパの設定の詳細については表5.1「ジャンパ設定」で説明します。

[ティップ]ジャンパソケットをなくさない方法

ジャンパソケットは開発セットに一つしか入っていませんが、すぐになくしてしまいがちです。

ジャンパソケットの片足をジャンパピンにさしたままにしておくと、なくさずに済みます。

Armadillo-420 ベースシックモデル接続例

図4.1 Armadillo-420 ベーシックモデル接続例


Armadillo-440 液晶モデル接続例

図4.2 Armadillo-440 液晶モデル接続例


4.2.3. シリアル通信ソフトウェアの設定

Armadilloのシリアルコンソールを使用するため、作業用PCでシリアル通信ソフトウェアを使用します。

作業用PCのOSがWindowsの場合は、「Tera Termの設定」を参照し、シリアル通信ソフトウェアの設定を行ってください。

作業用PCのOSがLinuxの場合は、「minicomの設定」を参照し、シリアル通信ソフトウェアの設定を行ってください。

4.2.3.1. Tera Termの設定

本章では、Tera Termを使用して、Armadilloにシリアル経由で接続するための設定方法を順を追って説明します。

SourceForgeのTera Termプロジェクト[36]からダウンロードし、インストールしたTera Term 4.67[37]を使用します。

Tera Termのインストール方法や、使い方についての詳細はTera Term Home Page[38]を参照してください。

以下の手順で、Tera Termのシリアルポートの設定を行ってください。

  1. 最初に起動した時には、図4.3「Tera Term: 新しい接続画面」ダイアログが表示されます。「キャンセル」ボタンを押して、図4.3「Tera Term: 新しい接続画面」ダイアログを閉じてください。

    Tera Term: 新しい接続画面

    図4.3 Tera Term: 新しい接続画面


  2. 図4.4「Tera Term画面」が表示されますので、「設定」-「シリアルポート」メニューを選択してください。

    Tera Term画面

    図4.4 Tera Term画面


  3. 図4.5「Tera Term: シリアルポート設定画面」が表示されます。

    Tera Term: シリアルポート設定画面

    図4.5 Tera Term: シリアルポート設定画面


  4. 「ポート」にArmadilloと接続されているシリアルのポート番号を設定してください。
  5. その他の設定項目は表4.2「シリアル通信設定」を参照し、図4.5「Tera Term: シリアルポート設定画面」のように設定してください。
  6. 「OK」ボタンを押してください。

    表4.2 シリアル通信設定

    項目 設定

    ボーレート

    115,200 bps

    データ長

    8 bit

    ストップビット

    1 bit

    パリティビット

    なし

    フロー制御

    なし


    [ティップ]シリアルポートのポート番号の確認方法

    シリアルポートのポート番号は、デバイスマネージャーの「ポート(COMとLPT)」にあるデバイスで確認できます。

    図4.6「デバイスマネージャー画面」はUSB to シリアル変換ケーブルを使用した場合のポート番号表示例です。この例では、シリアルポートのポート番号にCOM6が割り当てられています。

    デバイスマネージャー画面

    図4.6 デバイスマネージャー画面


  7. 画面上部のタイトルバーの表示を確認してください。接続されていれば図4.7「Tera Term画面」のようにタイトルバーに「COM6:115200baud」[39]と表示されます。
Tera Term画面

図4.7 Tera Term画面


[ティップ]Tera Termの設定を保存する方法

接続の設定を設定ファイル(TERATERM.INI)に保存しておくことで、次回起動時からは自動的にシリアルポートに接続することができます。

設定を保存するには、「設定」メニューから「設定の保存」を選択してください。「Tera Term: 設定の保存」ダイアログが表示されますので、保存するファイルを指定し、「OK」ボタンを押すことで保存できます。

4.2.3.2. minicomの設定

LinuxからArmadilloに接続する場合は、minicomを使用します。

本章では、minicomを使用した場合の接続設定について説明します。表4.3「シリアル通信設定」に示すパラメーターに設定します。

表4.3 シリアル通信設定

項目 設定

ボーレート

115,200 bps

データ長

8 bit

ストップビット

1 bit

パリティビット

なし

フロー制御

なし


  1. 図4.8「minicomの設定の起動」に示すコマンドを実行し、minicomの設定画面を起動してください。

    [PC ~]$ LC_ALL=C minicom -s⏎

    図4.8 minicomの設定の起動


  2. 図4.9「minicomの設定」が表示されますので、「Serial port setup」を選択してください。

                +-----[configuration]------+
                | Filenames and paths      |
                | File transfer protocols  |
                | Serial port setup        |
                | Modem and dialing        |
                | Screen and keyboard      |
                | Save setup as dfl        |
                | Save setup as..          |
                | Exit                     |
                | Exit from Minicom        |
                +--------------------------+

    図4.9 minicomの設定


  3. 図4.10「minicomのシリアルポートの設定」が表示されますので、Aキーを押してSerial Deviceを選択してください。

        +-----------------------------------------------------------------------+
        | A -    Serial Device      : /dev/ttyS0                                |
        | B - Lockfile Location     : /var/lock                                 |
        | C -   Callin Program      :                                           |
        | D -  Callout Program      :                                           |
        | E -    Bps/Par/Bits       : 115200 8N1                                |
        | F - Hardware Flow Control : No                                        |
        | G - Software Flow Control : No                                        |
        |                                                                       |
        |    Change which setting?                                              |
        +-----------------------------------------------------------------------+

    図4.10 minicomのシリアルポートの設定


  4. Serial Deviceに使用するシリアルポートを入力してEnterキーを押してください。

    [ティップ]USB to シリアル変換ケーブル使用時のデバイスファイル確認方法

    LinuxでUSB to シリアル変換ケーブルを接続した場合、コンソールに以下のようなログが表示されます[40]

    usb 5-1: new full speed USB device using uhci_hcd and address 15
    usb 5-1: configuration #1 chosen from 1 choice
    ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
    usb 5-1: Detected FT232RL
    usb 5-1: Number of endpoints 2
    usb 5-1: Endpoint 1 MaxPacketSize 64
    usb 5-1: Endpoint 2 MaxPacketSize 64
    usb 5-1: Setting MaxPacketSize 64
    usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0

    図4.11 例. USB to シリアル変換ケーブル接続時のログ


    上記のログからUSB to シリアル変換ケーブルがttyUSB0に割り当てられたことが分かります。

  5. Fキーを押してHardware Flow ControlをNoに設定してください。
  6. Gキーを押してSoftware Flow ControlをNoに設定してください。
  7. キーボードのEキーを押してください。図4.12「minicomのシリアルポートのパラメータの設定」 が表示されます。

                          +---------[Comm Parameters]----------+
                          |                                    |
                          |     Current: 115200 8N1            |
                          | Speed            Parity      Data  |
                          | A: <next>        L: None     S: 5  |
                          | B: <prev>        M: Even     T: 6  |
                          | C:   9600        N: Odd      U: 7  |
                          | D:  38400        O: Mark     V: 8  |
                          | E: 115200        P: Space          |
                          |                                    |
                          | Stopbits                           |
                          | W: 1             Q: 8-N-1          |
                          | X: 2             R: 7-E-1          |
                          |                                    |
                          |                                    |
                          | Choice, or <Enter> to exit?        |
                          +------------------------------------+

    図4.12 minicomのシリアルポートのパラメータの設定


  8. 図4.12「minicomのシリアルポートのパラメータの設定」では、転送レート、データ長、ストップビット、パリティの設定を行います。
  9. 現在の設定値は「Current」に表示されています。それぞれの値の内容は図4.13「minicomシリアルポートの設定値」を参照してください。

    minicomシリアルポートの設定値

    図4.13 minicomシリアルポートの設定値


  10. Eキーを押して、転送レートを115200に設定してください。
  11. Qキーを押して、データ長を8、パリティをNone、ストップビットを1に設定してください。
  12. Enterキーを2回押して、図4.9「minicomの設定」に戻ってください。
  13. 図4.9「minicomの設定」から、「Save setup as dfl」を選択し、設定を保存してください。
  14. 「Exit from Minicom」を選択し、minicomの設定を終了してください。

4.3. Armadilloの起動

Armadilloは、電源(AC アダプタ)と接続すると自動で起動するようになっています。

Armadilloが起動すると、PCのシリアル通信ソフトウェアに以下のような起動ログが表示されます。Armadilloの起動シーケンス及び起動ログの詳細については、5章Armadilloが動作する仕組みで説明します。

Hermit-At v3.8.0 (armadillo4x0) compiled at 12:09:14, Oct 12 2015
Uncompressing  kernel.............................................................................
..................................done.
Uncompressing ramdisk.............................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
..................................................................................................
........done.
Booting Linux on physical CPU 0x0
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 3.14.36-at4 (atmark@atde5) (gcc version 4.6.3 (Debian 4.6.3-14atmark1) ) #3 PREEMPT Mon
Oct 12 11:00:18 JST 2015
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Armadillo-420
:
:
:

図4.14 起動ログ


4.4. ログイン

起動が完了すると、ログインプロンプトが表示されます。

例として、Armadillo-420のログインプロンプトを以下に示します。

atmark-dist v1.45.0 (AtmarkTechno/Armadillo-420)
Linux 3.14.36-at4 [armv5tejl arch]

armadillo420-0 login: 

表4.4「シリアルコンソールログイン時のユーザー名とパスワード」に示すユーザーとパスワードでログインすることができます。ユーザーの詳しい説明については第2部「Linuxの仕組みと運用、管理」の「ユーザー管理」で説明します。

表4.4 シリアルコンソールログイン時のユーザー名とパスワード

ユーザー名 パスワード 権限

root

root

特権ユーザー

guest

(なし)

一般ユーザー


本章では、以下のように入力してrootユーザーでログインしてください。

atmark-dist v1.45.0 (AtmarkTechno/Armadillo-420)
Linux 3.14.36-at4 [armv5tejl arch]

armadillo420-0 login: root⏎  1
Password: root⏎  2

図4.15 ユーザー名とパスワードを入力してログインする


1

ユーザー名に「root」と入力した後、Enterキーを入力します。

2

パスワードに「root」と入力した後、Enterキーを入力します。パスワードは入力しても表示されません。

4.5. プロンプト

正常にログインできると、プロンプトが表示されます。

例として、Armadillo-420でログインした場合のプロンプトを以下に示します。[41]

Armadillo-420 でのプロンプト表示例

図4.16 Armadillo-420でのプロンプト表示例


プロンプトは、シェルというプログラムが表示しています。コマンドを実行する場合はプロンプトの右側にコマンドを入力します。

シェルは、ユーザーの入力を読み取り、コマンドを実行するプログラムで、コマンドラインインタープリターとよばれることもあります。カーネルの外層として機能し、ユーザーとのインターフェースになることから、シェル(殻)という名称になっています。Windowsのコマンドプロンプトのようなものです。

本書では、コマンドは以下の書式で記述します。

コマンド名 <必須引数> [省略可能な引数] [複数指定できる省略可能な引数...]

図4.17 コマンドの書式


例えば、指定した文字と改行を表示するechoコマンドの場合、以下のように表記します。

echo [string...]

図4.18 echoコマンドの書式


図4.18「echoコマンドの書式」は、echoコマンドの引数として0個以上の値を指定できることを意味します。

echoコマンドを実行すると、以下のような表示が得られます。

[armadillo ~]# echo⏎ 1

[armadillo ~]# echo hello⏎ 2
hello
[armadillo ~]# echo hello world!⏎ 3
hello world!

図4.19 echoコマンドの実行例


1

「echo」と入力した後、Enterキーを入力するとechoコマンドが実行されます。echoコマンドは引数を指定せずに実行すると改行のみを表示します。

2

引数を指定してechoコマンドを実行すると、引数に指定された文字列と改行を表示します。

3

echoコマンドには複数の引数を指定することができます。
[注記]改行記号の省略

図4.15「ユーザー名とパスワードを入力してログインする」図4.19「echoコマンドの実行例」で示したように、大抵の場合、ユーザー入力の最後にはEnterキーの入力を行います。

これ以降の入力例では、Enterキーを入力するという意味での改行記号は省略します。

4.6. 動作の停止と電源オフ

色々な操作を説明する前に、Armadilloを安全に終了する方法について確認しておきます。

Armadilloの標準状態では、ファイルはすべてRAMディスク上にあります。RAMディスクはメモリ(RAM)の一部を仮想的なストレージ[42]として使う仕組みです。そのため、ファイルに対して色々な操作をおこなっても、電源を切るとすべて消えてしまいます。つまり、どのような操作を(誤って)おこなったとしても、再起動すれば最初からやり直しができることになります。これは、瞬断などが起きやすい環境で動作する組み込みシステムとしては、重要な仕組みです。

もちろん、再起動しても変更を保存する方法もあります。そのことについては、「変更したArmadilloの設定を保存する」で説明します。

Armadilloを安全に終了させるには、次のようにコマンドを実行してください。

[armadillo ~]# halt
[armadillo ~]# 
System is going down for system reboot now.

Starting local stop scripts.
Syncing all filesystems: done
Unmounting all filesystems: umount: udev busy - remounted read-only
umount: devtmpfs busy - remounted read-only
done
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system halt
imx2-wdt imx2-wdt.0: Device shutdown: Expect reboot!
reboot: System halted

「reboot: System halted」と表示されたら、Armadilloの動作は停止します。この状態でACアダプタを抜くことで、Armadilloを安全に電源オフすることができます。

[警告]注意: halt後の動作

「reboot: System halted.」と表示されてから約 128 秒後、Armadillo は自動的に再起動します。

[警告]注意: 電源遮断時のリムーバブルメディアの扱い

USBメモリやmicroSD/SDカードなどのリムーバブルメディアにデータを書き込んでいる途中に電源を切断した場合、ファイルシステム、及び、データが破損する恐れがあります。必ず、リムーバブルディスクをアンマウントするか、もしくはhaltコマンドを実行[43]してから電源を切断してださい。

4.7. ディレクトリとファイルの操作

基本的なコマンドの例として、ディレクトリとファイルを操作するコマンドについて、いくつか説明します。

4.7.1. ディレクトリとファイル

Linuxを含むUnix系OSのファイルシステムは、ディレクトリとファイルを階層的に配置したものです。ディレクトリは、Windowsでいうところのフォルダと同様の概念で、ディレクトリの中に複数のディレクトリとファイルを配置することができます。

ディレクトリとファイルの階層構造を「木の枝分かれ」に例えてディレクトリツリーといい、ディレクトリツリーの「根」の部分に当たる、最上位のディレクトリをルートディレクトリといいます。すべてのディレクトリまたはファイルは、ルートディレクトリから辿ることができます。

自分が現在いるディレクトリを、カレントディレクトリ(またはワーキングディレクトリ)といいます。Linuxシステムでは、ログインした直後のカレントディレクトリは、ユーザーごとに決まったディレクトリになっています。この、ログイン直後のカレントディレクトリをホームディレクトリといいます。

ディレクトリやファイルの位置を示す文字列を、パスといいます。ルートディレクトリを示すパスは、/です。ルートディレクトリの下にhomeディレクトリがある場合、homeディレクトリのパスは/homeと表します。

パスにはいくつか特殊な意味を持つ文字があります。最初の文字以外にある/(即ち、ルートディレクトリを示す/以外の/)は、ディレクトリ名の区切りを意味します。例えば、homeディレクトリの下にguestディレクトリがある場合、guestディレクトリのパスは、/home/guestとなります。~は、ホームディレクトリを意味します。また、.はカレントディレクトリを、..は一つ上のディレクトリを意味します。

なお、ルートディレクトリからの位置を示すパスを絶対パスといいます。それに対して、あるディレクトリからの相対的な位置を示すパスを相対パスといいます。/home/guestは絶対パスで、../hoge.txtは一つ上のディレクトリのhoge.txtというファイルを意味する相対パスです。

4.7.2. ディレクトリとファイルを操作するコマンド

本章で使用するディレクトリとファイル操作に関するコマンドを表に示します。

表4.5 ディレクトリとファイル操作に関するコマンド

コマンド 説明

cd [dir]

ディレクトリを移動します

pwd

カレントディレクトリを表示します

mkdir <dir>

ディレクトリを作成します

rmdir <dir>

空のディレクトリを削除します

ls [dir]

指定したディレクトリにあるファイルを表示します

cat <file>

ファイルの内容を表示します

cp <from> <to>

ファイルとディレクトリをコピーします

mv <from> <to>

ファイルやディレクトリを移動または名称変更します

rm <file>

ファイルとディレクトリを削除します


表4.5「ディレクトリとファイル操作に関するコマンド」に示したコマンドを使用して、以下の内容を行っていきます。

  1. カレントディレクトリを表示する。
  2. ディレクトリを移動し、カレントディレクトリが変わっている事を確認する。
  3. ホームディレクトリに移動する。
  4. 空のディレクトリを作成する。
  5. ディレクトリにファイルをコピーする。
  6. ディレクトリの内容を表示する。
  7. ファイルの内容を表示する。
  8. ファイルの名前を変更する。
  9. ファイルを削除する。
  10. ディレクトリを削除する。

それでは、実際にコマンドを実行し、ファイルの操作を行います。

  1. カレントディレクトリを表示する。

    まず最初に、カレントディレクトリを調べてみます。カレントディレクトリはpwdコマンドを使用して調べることができます。

    以下のコマンドを実行して、カレントディレクトリを表示させてください。

    [armadillo ~]# pwd
    /root

    pwdコマンドを実行すると/rootという結果が表示されました。これでカレントディレクトリは/rootディレクトリであることが確認できます。

  2. ディレクトリを移動し、カレントディレクトリが変わっている事を確認する。

    次に/homeディレクトリに移動してみます。ディレクトリの移動に使用するコマンドはcdコマンドです。cdコマンドの引数として/homeディレクトリを絶対パスで指定してください。

    以下のコマンドを実行して、ディレクトリを移動してください。

    [armadillo ~]# cd /home
    [armadillo /home]# pwd
    /home

    これでカレントディレクトリが/homeディレクトリに変わりました。

  3. ホームディレクトリに移動する。

    次はホームディレクトリに戻ってみます。先ほどはcdコマンドに移動したいディレクトリを引数として使用しましたが、ホームディレクトリに移動する場合、引数は必要ありません。

    以下のコマンドを実行して、ホームディレクトリに移動してください。

    [armadillo /home]# cd
    [armadillo ~]# pwd
    /root

    カレントディレクトリが/rootディレクトリに戻りました。

  4. 空のディレクトリを作成する。

    次は、ディレクトリの操作について説明します。まずはディレクトリを作成してみます。ディレクトリを作成するコマンドはmkdirコマンドです。

    以下のコマンドを実行して、ディレクトリの作成をしてください。

    [armadillo ~]# mkdir dir

    mkdirコマンドでdirディレクトリを作成しました。

    ディレクトリを作成したことを確認するにはlsコマンドを使用します。lsコマンドは引数に指定したディレクトリにあるファイルを表示します。引数に何も指定しなかった場合は、カレントディレクトリにあるファイルを表示します。

    以下のコマンドを実行して、カレントディレクトリにあるファイルを表示してください。

    [armadillo ~]# ls
    dir/

    さきほど作成したdirディレクトリが表示されます。

  5. ディレクトリにファイルをコピーする。

    ディレクトリを作成しましたので、ファイルをdirディレクトリに保存してみます。すでにArmadillo上にあるファイルをdirディレクトリにコピーします。ファイルをコピーするコマンドはcpコマンドです。

    以下のコマンドを実行し、ホスト名を設定するファイル(/etc/config/HOSTNAME)をdirディレクトリにコピーしてください。[44]

    [armadillo ~]# cp /etc/config/HOSTNAME dir

    dirディレクトリにHOSTNAMEファイルをコピーしました。

    [ティップ]シェルの補完機能

    長いファイル名を間違えずに入力するのは、大変です。そのため、シェルにはコマンドやパスを補完してくれる機能があります。

    例えば、以下のように「cp /e」まで入力したあと、Tabキーを入力すると「cp /etc/」まで補完してくれます。

    [armadillo ~]# cp /eTab
    [armadillo ~]# cp /etc/

    候補が複数ある場合は、2回タブを入力することで、候補を列挙してくれます。例えば、以下のように「cp /etc/」まで入力したあと、Tabキーを2回入力すると、「/etc」以下のディレクトリがすべて表示されます。

    [armadillo ~]# cp /etc/TabTab
    /etc/avahi/     /etc/dhcpc/     /etc/ppp/       /etc/ssh/
    /etc/config/    /etc/init.d/    /etc/rc.d/      /etc/terminfo/
    /etc/default/   /etc/network/   /etc/snmp/      /etc/udev/

    補完は、コマンドにも有効です。そのため、プロンプトで2回Tabキーを入力すると、実行可能なコマンドをすべて表示してくれます。

    [armadillo ~]# TabTab
    \[                  flatfsd             mail                sort
    addgroup            fold                makedevs            spawn-fcgi
    adduser             free                md5sum              ssh
    adjtimex            freeramdisk         mesg                ssh-keygen
    amixer              fsck                mjpg_streamer       sshd
    :
    :
    :
  6. ディレクトリの内容を表示する。

    実際にコピーされているかをlsコマンドを使って確認してみます。lsコマンドは引数にdirを指定することで、dirディレクトリにあるファイルを表示することができます。

    以下のコマンドを実行し、dirディレクトリにHOSTNAMEファイルがあることを確認してください。

    [armadillo ~]# ls dir
    HOSTNAME

    lsコマンドの結果から、HOSTNAMEファイルがdirディレクトリにコピーされたことがわかります。

  7. ファイルの内容を表示する。

    次に、HOSTNAMEファイルの内容を表示してみます。ファイルの内容を表示するコマンドはcatコマンドです。

    以下のコマンドを実行しdir/HOSTNAMEファイルの内容を表示してください。

    [armadillo ~]# cat dir/HOSTNAME
    armadillo420-0

    catコマンドの結果としてarmadillo420-0と表示されます。armadillo420-0というのはHOSTNAMEファイルに書かれている内容が表示されたものです。

  8. ファイルの名前を変更する。

    次は、ファイルの名前を変更してみます。ファイルの名前を変更するコマンドはmvコマンドです[45]

    以下のコマンドを実行し、HOSTNAMEファイルの名前をnameファイルに変更してください。

    [armadillo ~]# mv dir/HOSTNAME dir/name
    [armadillo ~]# ls dir
    name
    [armadillo ~]# cat dir/name
    armadillo420-0

    lsコマンドを使用してdirディレクトリのファイルを見ると、HOSTNAMEファイルがなくなって、代わりにnameファイルができています。catコマンドでnameファイルの中身を見てみると、確かにHOSTNAMEファイルと同じであることが確認できます。

  9. ファイルを削除する。

    次は、ファイルを削除してみます。ファイルを削除するコマンドはrmコマンドです。

    以下のコマンドを実行し、dir/nameファイルを削除してください。「rm : remove ‘dir/name’?」と削除してもよいかの確認がでますので、yキーを押してから、Enterキーを押してください。

    [armadillo ~]# rm dir/name
    rm: remove `dir/name'? y
    [armadillo ~]# ls dir

    lsコマンドを使用してdirディレクトリのファイルを見ると、nameファイルが削除されていることがわかります。

  10. ディレクトリを削除する。

    次に、ディレクトリを削除してみます。ディレクトリの削除をするコマンドはrmdirコマンドです。

    以下のコマンドを実行し、dirディレクトリを削除してください。

    [armadillo ~]# rmdir dir
    [armadillo ~]# ls

    lsコマンドを実行しても何も表示されません。これでdirディレクトリが削除されたことがわかります。rmdirコマンドは引数に指定したディレクトリが空でない場合はエラーが発生し、ディレクトリを削除することができません。空でないディレクトリを削除する場合は、rmコマンドに-rオプションを付けて実行することで削除できます。

以上で、ディレクトリとファイルを扱うための基本的なコマンドは終了です。

次の章ではファイルを作成、編集するための方法を説明していきます。

4.8. ファイルの編集 / viエディタ

Linuxでは、多くのアプリケーションの設定がテキスト形式で保存されており、テキストエディタを使用する機会が頻繁にあります。本章では、ほとんどのLinuxシステムで標準でインストールされているviエディタの使い方を簡単に説明します。

viエディタは、Windowsで一般的なエディタ(メモ帳など)とは異なり、モードを持っていることが大きな特徴です。

viのモードには、コマンドモードと入力モードがあります。コマンドモードの時に入力した文字はすべてコマンドとして扱われます。入力モードでは、通常のエディタと同じように、文字の入力ができます。

4.8.1. viの起動

viを起動するには、以下のコマンドを入力します。

[armadillo ~]# vi [ファイル名]

fileオプションにファイル名のパスを指定すると、ファイルの編集(指定されたファイルが存在しない場合は新規作成)を行ないます。

viはコマンドモードの状態で起動します。

4.8.2. 文字の入力

viエディタでの文字の入力は、入力モードで行うことができます。viエディタは起動直後はコマンドモードになっているため、文字を入力するにはコマンドモードから入力モードへ移行しなければなりません。

コマンドモードから入力モードに移行するには、表4.6「入力モードに移行するコマンド」に示すコマンドを入力します。入力モードへ移行後は、キーを入力すればそのまま文字が入力されます。

コマンドはすべて、コマンドモードでのキー入力により実行できます。例えば、「i」コマンドを実行したい場合は、iキーを押すことで実行できます。

入力モードからコマンドモードに戻りたい場合は、ESCキーを入力することで戻ることができます。現在のモードがわからくなった場合は、ESCキーを入力し、一旦コマンドモードへ戻ることにより混乱を防げます。

[警告]注意: 日本語変換機能をOFFに

viのコマンドを入力する時は日本語変換機能(IME等)をOFFにしてください。

表4.6 入力モードに移行するコマンド

コマンド 動作

i

カーソルのある場所に挿入

a

カーソルの後ろに挿入


入力モードに移行するコマンドには、「i」と「a」の二つがあります。「i」、「a」それぞれのコマンドを入力した場合の、文字入力の開始位置を図4.20「入力モードに移行するコマンドの説明」に示します。

入力モードに移行するコマンドの説明

図4.20 入力モードに移行するコマンドの説明


[ティップ]viでの文字削除

コンソールの環境によってはBS(Backspace)キーで文字が削除できず、「^H」文字が入力される場合があります。その場合は、「文字の削除」で説明するコマンドを使用し、文字を削除してください。

4.8.3. カーソルの移動

方向キーでカーソルの移動ができますが、コマンドモードで表4.7「カーソルの移動コマンド」に示すコマンドを入力することでもカーソルを移動することができます。

表4.7 カーソルの移動コマンド

コマンド 動作

h

左に1文字移動

j

下に1文字移動

k

上に1文字移動

l

右に1文字移動


4.8.4. 文字の削除

文字を削除する場合は、コマンドモードで表4.8「削除コマンド」に示すコマンドを入力します。

表4.8 削除コマンド

コマンド 動作

x

カーソル上の文字を削除

dd

現在行を削除


x」コマンド、「dd」コマンドを入力した場合に削除される文字を図4.21「文字を削除するコマンドの説明」に示します。

文字を削除するコマンドの説明

図4.21 文字を削除するコマンドの説明


4.8.5. 保存と終了

ファイルの保存、終了をおこなうコマンドを表4.9「保存・終了コマンド」に示します。

表4.9 保存・終了コマンド

コマンド 動作

:q!⏎

変更を保存せずに終了

:w [ファイル名]

ファイル名を指定して保存

:wq⏎

ファイルを上書き保存して終了


保存と終了を行うコマンドは「:」からはじまるコマンドを使用します。:キーを入力すると画面下部にカーソルが移り入力したコマンドが表示されます。コマンドを入力した後Enterキーを押すことで、コマンドが実行されます。

現在編集中のファイルを保存せず終了する場合は「:q!」コマンドを、ファイルを保存して終了する場合は「:wq」コマンドを実行してください。

4.9. ネットワークを使う

Armadilloの標準状態では、起動すると各種サーバーが自動で起動するようになっています。本章ではArmadilloで動作しているWebサーバーに、ネットワーク越しに作業用PCからアクセスする方法を説明します。

4.9.1. ネットワークの設定

まずは、ネットワーク接続の設定方法について説明します。

ここでは、図4.22「ネットワーク構成例」のネットワークの接続を例として説明します。

PCのIPアドレスを192.168.0.1に設定し、以下の手順を行ってください。

ネットワーク構成例

図4.22 ネットワーク構成例


Armadilloのネットワークの設定ファイルは/etc/config/interfacesです。

表4.10「固定IPアドレス設定例」に示す内容に設定変更するには、エディタで/etc/config/interfacesを、図4.23「設定変更後のinterfacesファイル」で示す内容に変更します。

表4.10 固定IPアドレス設定例

項目 設定

IPアドレス

192.168.0.2

サブネットマスク

255.255.255.0


# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
auto lo eth0
iface lo inet loopback
iface eth0 inet static
        address 192.168.0.2
        netmask 255.255.255.0

図4.23 設定変更後のinterfacesファイル


4.9.2. viエディタを使用したネットワーク設定

ここではviエディタでネットワークの設定を変更する手順を説明します。

viエディタの使用方法をご存知の方は、この章を読み飛ばしても構いません。

  1. 図4.24「interfacesファイルを開く」に示すコマンドを実行し、interfacesのファイルを開いてください。

    [armadillo ~]# vi /etc/config/interfaces

    図4.24 interfacesファイルを開く


  2. 図4.25「標準イメージのinterfacesファイル」が表示されます。製品出荷のイメージでは、DHCPサーバーからIPアドレスをもらいうけるように設定されています。

    # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
    
    auto lo eth0
    iface lo inet loopback
    iface eth0 inet dhcp

    図4.25 標準イメージのinterfacesファイル


  3. カーソルを図4.26「interfacesネットワーク設定」の位置に合わせます。

    interfaces ネットワーク設定

    図4.26 interfacesネットワーク設定


  4. x」コマンドを4回入力し「dhcp」を削除します。
  5. a」コマンドを入力し、入力モードに移行します。
  6. 「static」と入力し、固定IPアドレスの設定に変更します。
  7. Enterキーを入力し改行します。
  8. 図4.23「設定変更後のinterfacesファイル」と同じ内容になるよう、「address」と「netmask」を入力してください。
  9. ESCキーを押して、コマンドモードに戻ります。
  10. :wq」コマンドを入力して、変更内容を保存し終了します。

以上で、ネットワークの設定は完了です。

4.9.3. ネットワーク設定の反映

図4.27「ネットワークの設定を反映させる」に示すコマンドを実行し、変更したネットワークの設定をシステムに反映させます。

[armadillo ~]# ifdown -a
[armadillo ~]# ifup -a

図4.27 ネットワークの設定を反映させる


変更後のIPアドレスは「ifconfig」コマンドで確認できます。

[armadillo ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:0C:xx:xx:xx
          inet addr:192.168.0.2  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:107585 (105.0 KiB)  TX bytes:9273 (9.0 KiB)
          Base address:0x6000 

「inet addr」(IPアドレス)が「192.168.0.2」、「Mask」(サブネットマスク)が「255.255.255.0」になっていることを確認してください。

4.9.4. PCからArmadilloのWebサーバーにアクセスする

Armadilloで動作しているWebサーバーにアクセスするには、作業用PCのWebブラウザのアドレスバーに「http://192.168.0.2/」と入力してください。

ネットワーク設定が適切になされていれば、Webブラウザに図4.28「Webサーバーのトップページ」が表示されます。

Webサーバーのトップページ

図4.28 Webサーバーのトップページ


4.10. 変更したArmadilloの設定を保存する

「動作の停止と電源オフ」で説明したように、Armadilloではファイルやディレクトリを変更しても再起動を行うと、その変更は消えてしまいます。但し、特定のディレクトリ(/etc/configディレクトリ)にあるファイルは、変更を保存することができます。

Armadilloでは、フラッシュメモリの一部をコンフィグ領域として使用し、そこに/etc/configディレクトリの内容を書き込むことができます。コンフィグ領域に保存した内容は起動時に復元されるため、/etc/configディレクトリ内のファイルへの変更を保存することができます。コンフィグ領域からのデータの読出し、またはコンフィグ領域への書込みには、flatfsdコマンドを使用します。

これまでに説明した手順を順番に実行してきている場合、/etc/config/interfacesの内容を書き換えているはずです。この状態で再起動すると、その変更内容が失われます。

以下のflatfsdコマンドを-sオプションを付けて実行すると、/etc/configディレクトリの内容が、フラッシュメモリのコンフィグ領域に保存されます。

[armadillo ~]# flatfsd -s

以下のようにrebootコマンドを入力して、Armadilloを再起動してください。

[armadillo ~]# reboot
[root@armadillo420-0 (ttymxc1) ~]#
System is going down for system reboot now.

Starting local stop scripts.
Syncing all filesystems: done
Unmounting all filesystems: umount: udev busy - remounted read-only
umount: devtmpfs busy - remounted read-only
done
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system reboot
imx2-wdt imx2-wdt.0: Device shutdown: Expect reboot!
reboot: Restarting system
Hermit-At v3.8.0 (armadillo4x0) compiled at 12:09:14, Oct 12 2015
:
:
:

再起動後に、/etc/config/interfacesの内容が保存されていることを確認してください。

flatfsdコマンドは-s以外にもいくつかのオプションがあります。主な引数を表4.11「flatfsdの主な引数」に示します。

表4.11 flatfsdの主な引数

引数 動作

-r

コンフィグ領域から設定を読み込む

-s

コンフィグ領域に設定を保存する

-w

コンフィグ領域を初期化し、デフォルトの設定を保存する[a]

-h

flatfsdコマンドのヘルプを表示します

[a] デフォルトの設定は/etc/defaultディレクトリに保存されています。




[37] 2010年9月現在の最新バージョン。

[39] COM6ポートに接続した場合

[40] 環境によりログが表示されない場合があります。そのときはdmesgコマンドを実行することで、ログを確認することができます。

[41] 以降は、得に理由がない限り「表記方法」のプロンプトの表記を使用します。

[42] ハードディスクドライブやUSBメモリのような、記憶装置。

[43] umountコマンドを使用します。

[44] Linuxではファイル名の大文字、小文字を区別します。本書に記載されている通りにコマンドを入力してください。

[45] mvコマンドは「ファイルやディレクトリを移動する」コマンドですが、移動先の名前を指定できるので「ファイルやディレクトリの名前を変更する」コマンドとしても使用できます。