Armadilloの基本操作

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

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

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

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

5.1.1. 準備するもの

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

表5.1 必要な機材

機材 説明

Armadillo

「Armadillo-640 ベーシックモデル開発セット」

作業用PC

LinuxまたはWindowsが動作するi386もしくはAMD64互換PC

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

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

LANケーブル

ArmadilloとLANを経由した通信を行う場合およびArmadilloをインターネットに接続する場合に必要

スイッチングハブ

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

microSDカード

初期化用インストールディスクを作成する場合やストレージデバイスとして使用する場合に必要


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

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

Armadilloのフラッシュメモリを書き換えている場合は、「Armadillo-640 製品マニュアル」の「イメージファイルの書き換え方法」を参照して、フラッシュメモリを初期化してください。

また、U-Bootの環境変数を設定している場合は、「Armadillo-640 製品マニュアル」の「ブートローダー (U-Boot) 仕様」を参照して、環境変数をデフォルトに戻してください。

5.1.2. 接続方法

図5.1「Armadillo-640の接続例」に示す接続例を参考に、Armadilloと作業用PCおよび周辺機器を接続してください。

images/a640-connection.svg

図5.1 Armadillo-640の接続例


5.1.3. USBシリアル変換アダプタの接続方法

USBシリアル変換アダプタは、青色のケーブルを1ピンとして、Armadillo-640のCON9 1,3,5,7,9ピンと接続します。

USBシリアル変換アダプタを接続するピンの隣だけ、CON9,CON14を囲っているシルクが太くなっているのでそれを目印にして、下図のように接続してください。

images/a640-uart-connection.svg

図5.2 CON9-USBシリアル変換アダプタ接続図


5.1.4. Windows PCとのシリアル通信

作業用PCがLinuxの場合は、「Linux PCとのシリアル通信」に進んでください。

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

Tera Termのインストール方法や、使い方についての詳細はTera Term Home Page( https://ttssh2.osdn.jp/ )を参照してください。

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

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

    Tera Term: 新しい接続画面

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


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

    Tera Term画面

    図5.4 Tera Term画面


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

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

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


  4. 「ポート」にArmadilloと接続されているシリアルのポート番号を設定してください。

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

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

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

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

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


  5. その他の設定項目は表5.2「シリアル通信設定」を参照し、図5.5「Tera Term: シリアルポート設定画面」のように設定してください。

    表5.2 シリアル通信設定

    項目 設定

    ボーレート

    115,200 bps

    データ長

    8 bit

    ストップビット

    1 bit

    パリティビット

    なし

    フロー制御

    なし


  6. 「OK」ボタンを押してください。
  7. COM1と接続できた場合、タイトルバーに「COM1」と表示されます。
Tera Term画面

図5.7 Tera Term画面


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

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

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

5.1.5. Linux PCとのシリアル通信

ここではminicomを使用します。

Debianなどの作業用PCにminicomをインストールするには図5.8「minicomのインストール」を実行します。

[PC ~]$ sudo apt install minicom

図5.8 minicomのインストール


表5.3「シリアル通信設定」に示すパラメーターに設定します。

表5.3 シリアル通信設定

項目 設定

ボーレート

115,200 bps

データ長

8 bit

ストップビット

1 bit

パリティビット

なし

フロー制御

なし


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

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

    図5.9 minicomの設定の起動


  2. 図5.10「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        |
                +--------------------------+

    図5.10 minicomの設定


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

        +-----------------------------------------------------------------------+
        | A -    Serial Device      : /dev/ttyUSB0                              |
        | 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?                                              |
        +-----------------------------------------------------------------------+

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


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

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

    LinuxでUSB to シリアル変換ケーブルを接続した場合、コンソールに以下のようなログが表示されます。 ログが表示されなくても、dmesgコマンドを実行することで、ログを確認することができます。

    usb 2-1.2: new full-speed USB device number 5 using ehci-pci
    usb 2-1.2: New USB device found, idVendor=0403, idProduct=6001
    usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    usb 2-1.2: Product: FT232R USB UART
    usb 2-1.2: Manufacturer: FTDI
    usb 2-1.2: SerialNumber: A702ZLZ7
    usbcore: registered new interface driver usbserial
    usbcore: registered new interface driver usbserial_generic
    usbserial: USB Serial support registered for generic
    usbcore: registered new interface driver ftdi_sio
    usbserial: USB Serial support registered for FTDI USB Serial Device
    ftdi_sio 2-1.2:1.0: FTDI USB Serial Device converter detected
    usb 2-1.2: Detected FT232RL
    usb 2-1.2: Number of endpoints 2
    usb 2-1.2: Endpoint 1 MaxPacketSize 64
    usb 2-1.2: Endpoint 2 MaxPacketSize 64
    usb 2-1.2: Setting MaxPacketSize 64
    usb 2-1.2: FTDI USB Serial Device converter now attached to ttyUSB0

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


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

  5. Fキーを押してHardware Flow ControlをNoに設定してください。
  6. Gキーを押してSoftware Flow ControlをNoに設定してください。
  7. キーボードのEキーを押してください。 図5.13「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?        |
                          +------------------------------------+

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


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

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

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


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

minicomを起動させるには、図5.15「minicom起動方法」のようにしてください。

[PC ~]$ sudo LANG=C minicom --wrap

図5.15 minicom起動方法


デバイスファイルを指定して起動させるには図5.16「minicom起動方法(デバイスファイル指定)」のようにしてください。

[PC ~]$ sudo LANG=C minicom --wrap --device /dev/ttyUSB0

図5.16 minicom起動方法(デバイスファイル指定)


[注記]

デバイスファイル名は、環境によって /dev/ttyS0/dev/ttyUSB1 など、本書の実行例とは異なる場合があります。

[ティップ]

minicomがオープンする /dev/ttyS0/dev/ttyUSB0 といったデバイスファイルは、 root または dialout グループに属しているユーザーしかアクセスできません。

ユーザーを dialout グループに入れることで、以降、sudoを使わずにminicomで /dev/ttyUSB0 をオープンすることができます。

[PC ~]$ sudo usermod -aG dialout atmark
[PC ~]$ LANG=C minicom --wrap

minicomを終了させるには、まず Ctrl-a に続いて q キーを入力します。その後、以下のように表示されたら「Yes」にカーソルを合わせてEnterキーを入力するとminicomが終了します。

+-----------------------+
| Leave without reset? |
|     Yes       No     |
+-----------------------+

図5.17 minicom終了確認


[注記]

Ctrl-a に続いて z キーを入力すると、minicomのコマンドヘルプが表示されます。

5.2. Armadilloの起動

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

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

起動ログ. 

U-Boot 2018.03-at4 (Dec 26 2018 - 19:21:13 +0900)

CPU:   Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
I2C:   ready
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
Net:   FEC
Hit any key to stop autoboot:  0
6105312 bytes read in 194 ms (30 MiB/s)
27015 bytes read in 54 ms (488.3 KiB/s)
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-4.14-at11
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    6105248 Bytes = 5.8 MiB
   Load Address: 82000000
   Entry Point:  82000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Loading Kernel Image ... OK
   Loading Device Tree to 9eefc000, end 9ef05986 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14-at11 (atmark@atde7) (gcc version 6.3.0 2017051
6 (Debian 6.3.0-18)) #1 Tue Jan 29 10:11:05 JST 2019
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio
n cache
[    0.000000] OF: fdt: Machine model: Atmark Techno Armadillo-640
:
:
:

5.3. ログイン

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

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

Debian GNU/Linux 9 armadillo ttymxc0

armadillo login:

Armadillo-640では、表5.4「シリアルコンソールログイン時のユーザー名とパスワード」に示すユーザーとパスワードでログインすることができます。

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

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

root

root

特権ユーザー

atmark

atmark

一般ユーザー


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

Debian GNU/Linux 9 armadillo ttymxc0

armadillo login: root 1
Password: root 2

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


1

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

2

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

5.4. プロンプト

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

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

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

図5.19 Armadillo-640でのプロンプト表示例


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

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

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

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

図5.20 コマンドの書式


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

echo [string...]

図5.21 echoコマンドの書式


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

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

[armadillo ~]# echo 1

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

図5.22 echoコマンドの実行例


1

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

2

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

3

echoコマンドには複数の引数を指定することができます。

[注記]改行記号の省略

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

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

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

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

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

[armadillo ~]# halt
[  OK  ] Stopped target Timers.
[  OK  ] Stopped target Graphical Interface.
[  OK  ] Stopped target Multi-User System.
[  OK  ] Stopped target Login Prompts.
         Stopping System Logging Service...
         Unmounting /opt/license...
[  OK  ] Stopped Daily Cleanup of Temporary Directories.
[  OK  ] Stopped Daily apt upgrade and clean activities.
         Stopping User Manager for UID 0...
         Stopping D-Bus System Message Bus...
         Stopping Serial Getty on ttymxc0...
         Stopping Getty on tty1...
:
:
:
[   26.197097] reboot: System halted

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コマンド 説明

cd [dir]

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

pwd

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

mkdir <dir>

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

rmdir <dir>

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

ls [dir]

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

cat <file>

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

cp <from> <to>

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

mv <from> <to>

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

rm <file>

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


表5.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/hostname)をdirディレクトリにコピーしてください。 [34]

    [armadillo ~]# cp /etc/hostname dir

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

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

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

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

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

    候補が複数ある場合は、2回タブを入力することで、候補を列挙してくれます。 例えば、以下のように「cp /etc/」まで入力したあと、Tabキーを2回入力すると、「/etc」以下のディレクトリがすべて表示されます。 この時、表示されるファイル数が多い場合は「Display all 141 possibilities? (y or n)」と画面に表示され、yキーを押すと1ページずつ表示することができます。 表示するファイルが残っている場合は「--More--」と表示され、スペースキーを押すたびに1ページ分を追加で表示し、qキーを押すと途中で表示をやめることができます。

    [armadillo ~]# cp /etc/TabTab
    Display all 141 possibilities? (y or n)
    .pwd.lock                  manpath.config
    X11/                       mime.types
    adduser.conf               mke2fs.conf
    aliases                    modules-load.d/
    alternatives/              motd
    apt/                       mtab
    bash.bashrc                mysql/
    bash_completion            network/
    bash_completion.d/         networks
    bindresvport.blacklist     nsswitch.conf
    binfmt.d/                  opt/
    ca-certificates/           os-release
    ca-certificates.conf       pam.conf
    calendar/                  pam.d/
    cron.d/                    passwd
    cron.daily/                passwd-
    cron.hourly/               perl/
    cron.monthly/              ppp/
    cron.weekly/               profile
    crontab                    profile.d/
    dbus-1/                    protocols
    debconf.conf               python2.7/
    debian_version             rc.local
    --More--

    補完は、コマンドにも有効です。 以下のように「c」と入力したあと、Tabキーを2回連続で入力すると、「c」から始まる実行可能なコマンドをすべて表示してくれます。

    [armadillo ~]# cTabTab
    c2ph                          clear_console
    c_rehash                      cmp
    cal                           col
    calendar                      colcrt
    caller                        colrm
    capsh                         column
    captoinfo                     comm
    case                          command
    cat                           compgen
    catchsegv                     complete
    catman                        compopt
    cd                            compose
    cfdisk                        continue
    chage                         coproc
    chattr                        corelist
    chcon                         cp
    chcpu                         cpan
    chfn                          cpan5.24-arm-linux-gnueabihf
    chgpasswd                     cpgr
    chgrp                         cppw
    chmod                         cron
    chown                         crontab
    chpasswd                      cryptdir
    --More--
  6. ディレクトリの内容を表示する。

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

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

    [armadillo ~]# ls dir
    hostname

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

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

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

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

    [armadillo ~]# cat dir/hostname
    armadillo

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

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

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

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

    [armadillo ~]# mv dir/hostname dir/name
    [armadillo ~]# ls dir
    name
    [armadillo ~]# cat dir/name
    armadillo

    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オプションを付けて実行することで削除できます。

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

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

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

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

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

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

5.7.1. viの起動

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

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

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

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

5.7.2. 文字の入力

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

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

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

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

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

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

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

コマンド 動作

i

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

a

カーソルの後ろに挿入


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

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

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


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

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

5.7.3. カーソルの移動

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

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

コマンド 動作

h

左に1文字移動

j

下に1文字移動

k

上に1文字移動

l

右に1文字移動


5.7.4. 文字の削除

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

表5.8 削除コマンド

コマンド 動作

x

カーソル上の文字を削除

dd

現在行を削除


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

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

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


5.7.5. 保存と終了

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

表5.9 保存・終了コマンド

コマンド 動作

:q!

変更を保存せずに終了

:w [ファイル名]

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

:wq

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


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

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

5.8. ネットワークを使う

Armadilloの標準状態では、 DHCP(Dynamic Host Configuration Protocol) でネットワークの設定を行うため、PCと同じ様にLANケーブルを接続するだけでネットワークに接続可能です。 固定IPアドレスの設定が必要な場合は「インターフェースの無効化」以降の手順を実施してください。

[注記]

ネットワーク接続に関する不明な点については、ネットワークの管理者へ相談してください。

[ティップ]

ここでArmadilloをインターネットに接続できるようにしておくことをおすすめします。

Debian GNU/Linuxを標準のルートファイルシステムとしているArmadilloでは、開発時にArmadilloをインターネットに接続することは非常に有用です。 インターネットに接続していれば、パッケージ管理システム APT(Advanced Packaging Tool) を使用することで、Debian Projectが供給している様々なパッケージを簡単にArmadilloに追加することができます。

5.8.1. インターフェースの無効化

設定を行う前にインターフェースを無効化します。 有効化したまま設定を変更しても、設定が反映されない場合があります。

[armadillo ~]# ifdown eth0

5.8.2. ネットワークの設定

ここでの設定はあくまでも例です。 実際のIPアドレス等はネットワークの管理者に確認してください。

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

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

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

項目設定

IPアドレス

192.0.2.10

ネットマスク

255.255.255.0

ネットワークアドレス

192.0.2.0

ブロードキャストアドレス

192.0.2.255

デフォルトゲートウェイ

192.0.2.1


[armadillo ~]# vi /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.0.2.10
    netmask 255.255.255.0
    network 192.0.2.0
    broadcast 192.0.2.255
    gateway 192.0.2.1

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


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

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

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

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

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

    図5.26 interfacesファイルを開く


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

    # interfaces(5) file used by ifup(8) and ifdown(8)
    
    allow-hotplug eth0
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp

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


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

    interfaces ネットワーク設定

    図5.28 interfacesネットワーク設定


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

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

5.8.4. ネットワーク設定の反映(インターフェースの有効化)

インターフェースの有効化することで、変更したネットワークの設定をシステムに反映させます。

[armadillo ~]# ifup eth0

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


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

[armadillo ~]# ip address
ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul
t qlen 1000
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr
oup default qlen 1000
 link/ether 00:11:0c:00:07:a4 brd ff:ff:ff:ff:ff:ff
 inet 192.0.2.10/24 brd 192.168.2.255 scope global eth0
 valid_lft forever preferred_lft forever

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

5.8.5. パッケージ管理システム APT(Advanced Packaging Tool)を使用する

APTを使用可能な環境か確認するために、図5.30「利用可能なパッケージのインデックスを取得する」を実施してみます。 apt-get updateはインターネット上の Debian サイト(HTTP サーバー)から利用可能なパッケージのインデックスを取得します。

[armadillo ~]# apt-get update ; echo "Result: $?"
Ign:1 http://download.atmark-techno.com/debian stretch InRelease
Hit:2 http://download.atmark-techno.com/debian stretch Release
Ign:3 http://ftp.jp.debian.org/debian stretch InRelease
Hit:4 http://ftp.jp.debian.org/debian stretch Release
Get:5 http://security.debian.org stretch/updates InRelease [94.3 kB]
Get:8 http://security.debian.org stretch/updates/main Sources [196 kB]
Get:9 http://security.debian.org stretch/updates/main armhf Packages [464 kB]
Get:10 http://security.debian.org stretch/updates/main Translation-en [212 kB]
Fetched 966 kB in 6s (148 kB/s)
Reading package lists... Done
Result: 0

図5.30 利用可能なパッケージのインデックスを取得する


上記コマンドを実行して "Result: 0" とならない場合、Debian サイトが一時的に利用不可能になっている、インターネットに接続できていない、などの可能性が考えられます。

[警告]

Armadilloを製品として運用する際には、「Armadilloがインターネットに接続できているか確認する」目的でapt-get updateを利用しないでください。

パッケージを追加するなどのapt-get update以外のAPTの機能については、以降の手順で実際に必要になった際に都度説明することにします。



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

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

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

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