第6章 動作確認方法

6.1. 動作確認を行う前に

工場出荷状態でフラッシュメモリに書き込まれているイメージファイルは、最新版ではない可能性があります。最新版のブートローダーおよび LinuxカーネルイメージファイルはArmadilloサイトから、ユーザーランドイメージファイルはユーザーズサイトからダウンロード可能です。最新版のイメージファイルに書き換えてからのご使用を推奨します。

イメージファイルの書き換えについては、12章フラッシュメモリの書き換え方法を参照してください。

6.2. ネットワーク

ここでは、ネットワークの設定方法やネットワークを利用するアプリケーションについて説明します。

6.2.1. 接続可能なネットワーク

Armadillo-Box WS1 が接続可能なネットワークとLinuxから使用するネットワークデバイスの対応を次に示します。

表6.1 ネットワークとネットワークデバイス

ネットワークネットワークデバイス
有線LANeth0

6.2.2. デフォルト状態のネットワーク設定

ネットワーク設定は、/etc/config/interfacesに記述されています。デフォルト状態では、次のように設定されています。

表6.2 デフォルト状態のネットワーク設定

インターフェース種類設定起動時に有効化
loTCP/IPループバック有効
eth0TCP/IPDHCP有効

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

図6.1 デフォルト状態の/etc/config/interfaces


6.2.3. 有線LAN

ここでは有線LANの使用方法について説明します。

6.2.3.1. 有線LANインターフェースの有効化、無効化

無効化されている有線LANインターフェースを有効化するには、次のようにコマンドを実行します。

[armadillo ~]# ifup eth0

図6.2 ネットワークインターフェース(eth0)の有効化


有効化されている有線LANインターフェースを無効化するには、次のようにコマンドを実行します。

[armadillo ~]# ifdown eth0

図6.3 ネットワークインターフェース(eth0)の無効化


6.2.3.2. 有線LANのネットワーク設定を変更する

有線LANのネットワーク設定を変更する方法について説明します。

[警告]

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

Armadillo-Box WS1上の「/etc/config」以下にあるファイルを編集し、コンフィグ領域に保存することにより起動時のネットワーク設定を変更することができます。コンフィグ領域の保存については、7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。

[注記]

設定を変更する場合は、かならずネットワークインターフェースを無効化してから行ってください。変更してからネットワークインターフェースを無効化しても、「新しい設定」を無効化することになります。「古い設定」が無効化されるわけではありません。

6.2.3.2.1. 有線LANを固定IPアドレスに設定する

表6.3「有線LAN固定IPアドレス設定例」の内容に設定する例を、図6.4「有線LANの固定IPアドレス設定」に示します。

表6.3 有線LAN固定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/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), 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

図6.4 有線LANの固定IPアドレス設定


6.2.3.2.2. 有線LANをDHCPに設定する

DHCPに設定する例を、図6.5「DHCP設定」に示します。

DHCPに設定するには、viエディタで/etc/config/interfacesを、次のように編集します。

[armadillo ~]# vi /etc/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

図6.5 DHCP設定


6.2.3.3. 有線LANの接続を確認する

有線LANで正常に通信が可能か確認します。設定を変更した場合、かならず変更したインターフェースを再度有効化してください。

同じネットワーク内にある通信機器とPING通信を行います。以下の例では、通信機器が「192.0.2.20」というIPアドレスを持っていると想定しています。

[armadillo ~]# ping 192.0.2.20

図6.6 有線LANのPING確認


6.2.4. DNSサーバー

DNSサーバーを指定する場合は、viエディタで/etc/config/resolv.confを編集します。

[armadillo ~]# vi /etc/config/resolv.conf
nameserver 192.0.2.1

図6.7 DNSサーバーの設定


[ティップ]

DHCPを利用している場合には、DHCPサーバーがDNSサーバーを通知する場合があります。この場合、/etc/config/resolv.confは自動的に更新されます。

6.2.5. ファイアーウォール

Armadilloでは、簡易ファイアーウォールが動作しています。設定されている内容を参照するには、図6.8「iptables」のようにコマンドを実行してください。

[armadillo ~]# iptables --list

図6.8 iptables


6.3. ストレージ

Armadillo-Box WS1 でストレージとして使用可能なデバイスを次に示します。

表6.4 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティションインターフェース
microSD/microSDHC/microSDXCカード/dev/mmcblk0/dev/mmcblk0p1microSDインターフェース
USBフラッシュメモリ/dev/sd*[a]/dev/sd*1USB インターフェース

[a] USBハブを利用して複数のUSBメモリを接続した場合は、認識された順に sda sdb sdc ... となります。


6.3.1. ストレージの使用方法

ここでは、microSDHCカードを例にストレージの使用方法を説明します。以降の説明では、共通の操作が可能な場合に、microSD/microSDHC/microSDXCカードをmicroSDカードと表記します。

[ティップ]

microSDXCカードを使用する場合は、事前に「ストレージのパーティション変更とフォーマット」を参照してフォーマットを行う必要があります。これは、LinuxカーネルがexFATファイルシステムを扱うことができないためです。通常、購入したばかりのmicroSDXCカードはexFATファイルシステムでフォーマットされています。

Linuxでは、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、mountです。

mountコマンドの典型的なフォーマットは、次の通りです。

mount -t [fstype] device dir

図6.9 mountコマンド書式


-t オプションに続くfstypeには、ファイルシステムタイプを指定します[5]。FAT32ファイルシステムの場合はvfat[6]、EXT3ファイルシステムの場合はext3を指定します。

deviceには、ストレージデバイスのデバイスファイル名を指定します。microSDカードのパーティション1の場合は/dev/mmcblk0p1、パーティション2の場合は/dev/mmcblk0p2となります。

dirには、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。

microSDスロットにmicroSDHCカードを挿入した状態で図6.10「ストレージのマウント」に示すコマンドを実行すると、/mntディレクトリにmicroSDHCカードのファイルシステムをマウントします。microSDカード内のファイルは、/mntディレクトリ以下に見えるようになります。

[armadillo ~]# mount -t vfat /dev/mmcblk0p1 /mnt

図6.10 ストレージのマウント


[注記]

FAT32ファイルシステムをマウントした場合、次の警告メッセージが表示される場合があります。

FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for
FAT filesystems, filesystem will be case sensitive!

これは無視して構いません。 UTF-8 ロケールでは結局はファイル名の表示を正しく処理できないためです。

ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。

[armadillo ~]# umount /mnt

図6.11 ストレージのアンマウント


6.3.2. ストレージのパーティション変更とフォーマット

通常、購入したばかりのmicroSDHCカードやUSBメモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。

パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているmicroSDカードのパーティションを、2つに分割する例を図6.12「fdiskコマンドによるパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには100MByte、二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは/dev/mmcblk0p1、二つめは/dev/mmcblk0p2となります。fdiskコマンドの詳細な使い方は、manページ等を参照してください。

[armadillo ~]# fdisk /dev/mmcblk0

The number of cylinders for this disk is set to 62528.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-62528, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-62528, default 62528): +100M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (3054-62528, default 3054):
Using default value 3054
Last cylinder or +size or +sizeM or +sizeK (3054-62528, default 62528):
Using default value 62528

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
 mmcblk0: p1 p2
 mmcblk0: p1 p2
Syncing disks.

図6.12 fdiskコマンドによるパーティション変更


FAT32ファイルシステムでストレージデバイスをフォーマットするには、mkfs.vfatコマンドを使用します。また、EXT2やEXT3ファイルシステムでフォーマットするには、mke2fsコマンドを使用します。microSDカードのパーティション1をEXT3ファイルシステムでフォーマットするコマンド例を、次に示します。

[armadillo ~]# mke2fs -j /dev/mmcblk0p1

図6.13 EXT3ファイルシステムの構築


6.4. LED

Armadillo-Box WS1 のLEDは、GPIOが接続されているためソフトウェアで制御することができます。

利用しているデバイスドライバはLEDクラスとして実装されているため、LEDクラスディレクトリ以下のファイルによってLEDの制御を行うことができます。LEDクラスディレクトリと各LEDの対応を次に示します。

表6.5 LEDクラスディレクトリとLEDの対応

LEDクラスディレクトリ名称デフォルトトリガ
/sys/class/leds/red/ユーザーLED(赤色)default-on
/sys/class/leds/green/ユーザーLED(緑色)default-on
/sys/class/leds/yellow/ユーザーLED(黄色)none

以降の説明では、任意のLEDを示すLEDクラスディレクトリを"/sys/class/leds/[LED]"のように表記します。

6.4.1. LEDを点灯/消灯する

LEDクラスディレクトリ以下のbrightnessファイルへ値を書き込むことによって、LEDの点灯/消灯を行うことができます。brightnessに書き込む有効な値は0〜255です。

brightnessに0以外の値を書き込むとLEDが点灯します。

[armadillo ~]# echo 1 > /sys/class/leds/[LED]/brightness

図6.14 LEDを点灯させる


[ティップ]

Armadillo-Box WS1 のLEDには輝度制御の機能が無いため、0 (消灯)、1〜255 (点灯)の2つの状態のみ指定することができます。

brightnessに0を書き込むとLEDが消灯します。

[armadillo ~]# echo 0 > /sys/class/leds/[LED]/brightness

図6.15 LEDを消灯させる


brightnessを読み出すとLEDの状態が取得できます。

[armadillo ~]# cat /sys/class/leds/[LED]/brightness
0

図6.16 LEDの状態を表示する


6.4.2. トリガを使用する

LEDクラスディレクトリ以下のtriggerファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。triggerに書き込む有効な値を次に示します。

表6.6 triggerの種類

設定説明
noneトリガを設定しません。
mmc0microSDインターフェースのアクセスランプにします。
timer任意のタイミングで点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します。
heartbeat心拍のように点灯/消灯を行います。
default-on主にLinuxカーネルから使用します。LEDが点灯します。

以下のコマンドを実行すると、LEDが2秒点灯、1秒消灯を繰り返します。

[armadillo ~]# echo timer > /sys/class/leds/[LED]/trigger
[armadillo ~]# echo 2000 > /sys/class/leds/[LED]/delay_on
[armadillo ~]# echo 1000 > /sys/class/leds/[LED]/delay_off

図6.17 LEDのトリガにtimerを指定する


triggerを読み出すとLEDのトリガが取得できます。"[ ]"が付いているものが現在のトリガです。

[armadillo ~]# cat /sys/class/leds/[LED]/trigger
none mmc0 mmc1 [timer] heartbeat default-on

図6.18 LEDのトリガを表示する


6.5. RTC

Armadillo-Box WS1 には、カレンダー時計(Real Time Clock)が実装されています。電源を切断しても一定時間(平均300秒間、最小60秒間)時刻を保持することができます。

電源が切断されても長時間時刻を保持させたい場合は、RTC外部バックアップインターフェース に外付けバッテリー(対応バッテリー例: CR1220、BR1220)を接続することができます。

6.5.1. RTCに時刻を設定する

Linuxの時刻には、Linuxカーネルが管理するシステムクロックと、RTCが管理するハードウェアクロックの2種類があります。RTCに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。

システムクロックは、dateコマンドを用いて設定します。dateコマンドの引数には、設定する時刻を[MMDDhhmmCCYY.ss]というフォーマットで指定します。時刻フォーマットの各フィールドの意味を次に示します。

表6.7 時刻フォーマットのフィールド

フィールド意味
MM
DD日(月内通算)
hh
mm
CC年の最初の2桁(省略可)
YY年の最後の2桁(省略可)
ss秒(省略可)

2015年6月2日12時34分56秒に設定する例を次に示します。

[armadillo ~]# date 1
Sat Jan  1 09:00:00 JST 2000
[armadillo ~]# date 060212342015.56 2
Tue Jun  2 12:34:56 JST 2015
[armadillo ~]# date 3
Tue Jun  2 12:34:57 JST 2015

1

現在のシステムクロックを表示します。

2

システムクロックを設定します。

3

システムクロックが正しく設定されていることを確認します。

図6.19 システムクロックを設定


[ティップ]

Armadillo-Box WS1が接続しているネットワーク内にタイムサーバーがある場合は、NTP(Network Time Protocol)クライアントを利用してシステムクロックを設定することができます。

[armadillo ~]# ntpclient -h [NTP SERVER] -s
42155 30535.977   24736.0      0.8   14862.8      0.0         0
[armadillo ~]# date
Tue Jun  2 12:34:57 JST 2015

システムクロックを設定後、ハードウェアクロックをhwclockコマンドを用いて設定します。

[armadillo ~]# hwclock 1
Sat Jan  1 00:00:00 2000  0.000000 seconds
[armadillo ~]# hwclock --utc --systohc 2
[armadillo ~]# hwclock --utc 3
Tue Jun  2 12:35:08 2015  -0.897934 seconds

1

現在のハードウェアクロックを表示します。

2

ハードウェアクロックを協定世界時(UTC)で設定します。

3

ハードウェアクロックがUTCで正しく設定されていることを確認します。

図6.20 ハードウェアクロックを設定


6.6. ユーザースイッチ

Armadillo-Box WS1 のユーザースイッチのデバイスドライバは、インプットデバイスとして実装されています。インプットデバイスのデバイスファイルからボタンプッシュ/リリースイベントを取得することができます。

ユーザースイッチのインプットデバイスファイルと、各スイッチに対応したイベントコードを次に示します。

表6.8 インプットデバイスファイルとイベントコード

ユーザースイッチインプットデバイスファイルイベントコード
SW1/dev/input/event02 (1)


[警告]

インプットデバイスは検出された順番にインデックスが割り振られます。USBデバイスなどを接続してインプットデバイスを追加している場合は、デバイスファイルのインデックスが異なる可能性があります。

6.6.1. イベントを確認する

ユーザースイッチのボタンプッシュ/リリースイベントを確認するために、ここではevtestコマンドを利用します。evtestを停止するには、Ctrl+c を入力してください。

[armadillo ~]# evtest /dev/input/event0
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 2 (1)
Testing ... (interrupt to exit)
Event: time 2100.899311, type 1 (Key), code 2 (1), value 1
Event: time 2100.899311, -------------- Report Sync ------------ 1
Event: time 2101.053143, type 1 (Key), code 2 (1), value 0
Event: time 2101.053143, -------------- Report Sync ------------ 2
                 :
[armadillo ~]#

1

SW2のボタンプッシュイベントを検出したときの表示。

2

SW2のボタンリリースイベントを検出したときの表示。

図6.21 ユーザースイッチ: イベントの確認


6.7. Wi-SUNモジュール

Armadillo-Box WS1はWi-SUNモジュールとしてROHM製 BP35A1を搭載しています。

Wi-SUNモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。Wi-SUNモジュールにアクセスする際のTTYデバイスファイルは/dev/ttymxc2です。

6.7.1. 設定情報を取得する

Wi-SUNモジュールを制御する例として、BP35A1 の設定情報の取得を行います。

Wi-SUNモジュールに搭載されているBP35A1の設定情報を取得する手順を次に示します。

手順6.1 設定情報の取得

  1. tipコマンドを実行して/dev/ttymxc2に接続します。ボーレートは115200bpsです。

    [armadillo ~]$ tip -l /dev/ttymxc2 -s 115200
    Connected.
  2. SKINFOコマンドを実行すると、BP35A1 の設定情報が表示されます。

    SKINFO
    EINFO FE80:0000:0000:0000:021D:1290:0004:0FBE 001D129000040FBE 21 FFFF FFFE
    OK
  3. tipを終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。

    Disconnected.
    [armadillo ~]$ 

その他の ASCII コマンドや、BP35A1 の詳細な情報については ROHM 製ドキュメントを参照してください。



[5] ファイルシステムタイプの指定は省略可能です。省略した場合、mountコマンドはファイルシステムタイプを推測します。この推測は必ずしも適切なものとは限りませんので、事前にファイルシステムタイプが分かっている場合は明示的に指定してください。

[6] 通常、購入したばかりのmicroSDHCカードはFAT32ファイルシステムでフォーマットされています。