動作確認方法

本章では、ハードウェアの動作確認に使用するコマンドやその実行手順について説明します。

ハードウェアの動作確認以外が目的のコマンドや手順については 9章Howto を参照してください。

7.1. ネットワーク

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

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

Armadillo-IoT ゲートウェイ G4 は、2つの Ethernet ポートが搭載されています。 Linuxからは、それぞれ eth0eth1 に見えます。

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

ネットワーク ネットワークデバイス 出荷時の設定

Ethernet

eth0

DHCP

Ethernet

eth1

DHCP


[警告]

eth1(LANインターフェース2)は10Mbps(10BASE-T)に非対応です。10Mbpsで通信を行う場合は、LANインターフェース0(LANインターフェース1)をご利用ください。

7.1.2. ネットワークの設定方法

Armadillo-IoT ゲートウェイ G4 では、通常の Linux システムと同様、ネットワークインターフェースの設定は NetworkManager を使用します。 NetworkManager はすべてのネットワーク設定をコネクションとして管理します。コネクションには「どのようにネットワークへ接続するか」、 「どのようにネットワークを作成するか」を記述し、 /etc/NetworkManager/system-connections/ に保存します。 また、1つのデバイスに対して複数のコネクションを保存することは可能ですが、1つのデバイスに対して有効化にできるコネクションは1つだけです。

NetworkManager は、従来の /etc/network/interfaces を使った設定方法もサポートしていますが、本書では nmcli を用いた方法を中心に紹介します。

7.1.2.1. nmcli について

nmcli は NetworkManager を操作するためのコマンドラインツールです。 図7.1「nmcli のコマンド書式」nmcli の書式を示します。このことから、 nmcli は「オブジェクト (OBJECT) というものが存在し、 それぞれのオブジェクトに対してコマンド (COMMAND) を実行する。」という書式でコマンドを入力することがわかります。 また、オブジェクトそれぞれに help が用意されていることもここから読み取れます。

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

図7.1 nmcli のコマンド書式


7.1.3. nmcli の基本的な使い方

ここでは nmcli の、基本的な使い方を説明します。

7.1.3.1. コネクションの一覧

登録されているコネクションの一覧を確認するには、次のようにコマンドを実行します。 [6]

[armadillo ~]# nmcli connection
NAME             UUID                                  TYPE      DEVICE
Ifupdown (eth0)  681b428f-beaf-8932-dce4-687ed5bae28e  ethernet  eth0
Ifupdown (eth1)  7b635ed6-2640-7ad8-675d-744db12dd9fa  ethernet  --

図7.2 コネクションの一覧


表示された NAME については、以降 [ID] として利用することができます。

7.1.3.2. コネクションの有効化・無効化

コネクションを有効化するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli connection up [ID]

図7.3 コネクションの有効化


コネクションを無効化するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli connection down [ID]

図7.4 コネクションの無効化


7.1.3.3. コネクションの作成

コネクションを作成するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli connection add con-name [ID] type [type] ifname [interface name]

図7.5 コネクションの作成


[ID] にはコネクションの名前(任意)、[type] には ethernet、wifi といった接続タイプ、 [interfacename] にはインターフェース名(デバイス)を入力します。 これにより /etc/NetworkManager/system-connections/ に[ID]の名前でコネクション ファイルが作成されます。このファイルを vi などで編集し、コネクションを修正する ことも可能です。

Armadillo-IoT ゲートウェイ G4 を再起動したときにコネクションファイルが消えてしまわないように、 persist_file コマンドで永続化する必要があります。 persist_file コマンドに関する詳細は「overlayfsの扱い」を参照してください。

[armadillo ~]# persist_file /etc/NetworkManager/system-connections/<コネクションファイル名>

図7.6 コネクションファイルの永続化


7.1.3.4. コネクションの削除

コネクションを削除するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli connection delete [ID]

図7.7 コネクションの削除


これにより /etc/NetworkManager/system-connections/ のコネクションファイルも同時に削除されます。 コネクションの作成と同様に persist_file コマンドで永続化する必要があります。

[armadillo ~]# persist_file -d /etc/NetworkManager/system-connections/<コネクションファイル名>

図7.8 コネクションファイル削除時の永続化


7.1.3.5. 固定IPアドレスに設定する

表7.2「固定 IP アドレス設定例」の内容に設定する例を、 図7.9「固定 IP アドレス設定」に示します。

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

項目設定

IP アドレス

192.0.2.10

マスク長

24

デフォルトゲートウェイ

192.0.2.1


[armadillo ~]# nmcli connection modify [ID] \
ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1

図7.9 固定 IP アドレス設定


7.1.3.6. DNS サーバーを指定する

DNS サーバーを指定する例を、図7.10「DNS サーバーの指定」に示します。

[armadillo ~]# nmcli connection modify [ID] ipv4.dns 192.0.2.1

図7.10 DNS サーバーの指定


7.1.3.7. DHCP に設定する

DHCP に設定する例を、図7.11「DNS サーバーの指定」に示します。

[armadillo ~]# nmcli connection modify [ID] ipv4.method auto

図7.11 DNS サーバーの指定


[注記]

-ipv4.addresses のように、プロパティ名の先頭に "-" を付けることで設 定したプロパティを削除することができます。反対に "+" を付けることで プロパティを追加することができます。

7.1.3.8. コネクションの修正を反映する

有効化されているコネクションを修正した場合、かならず修正したコネクションを再 度有効化してください。

[armadillo ~]# nmcli connection down [ID]
[armadillo ~]# nmcli connection up [ID]

図7.12 コネクションの修正の反映


7.1.3.9. デバイスの一覧

デバイスの一覧(デバイス名、タイプ、状態、有効なコネクション)を確認するには、次のようにコマン ドを実行します。

[armadillo ~]# nmcli device
DEVICE  TYPE      STATE        CONNECTION
eth0    ethernet  connected    Ifupdown (eth0)
eth1    ethernet  unavailable  --
lo      loopback  unmanaged    --

図7.13 デバイスの一覧


7.1.3.10. デバイスの接続

デバイスを接続するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli device connect [ifname]

図7.14 デバイスの接続


[注記]

デバイスを接続するには、接続しようとしているデバイスの有効なコネク ションが必要です。"Error: neither a valid connection nor device given" というメッセージが表示された場合には、 nmcli connection など で有効なコネクションがあるかを確認してください。

7.1.3.11. デバイスの切断

デバイスを切断するには、次のようにコマンドを実行します。

[armadillo ~]# nmcli device disconnect [ifname]

図7.15 デバイスの切断


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

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

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

[armadillo ~]# ping -c 3 192.0.2.20
PING 192.0.2.20 (192.0.2.20): 56 data bytes
64 bytes from 192.0.2.20: seq=0 ttl=64 time=3.056 ms
64 bytes from 192.0.2.20: seq=1 ttl=64 time=1.643 ms
64 bytes from 192.0.2.20: seq=2 ttl=64 time=1.633 ms

--- 192.0.2.20 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.633/2.110/3.056 ms

図7.16 有線 LAN の PING 確認


[注記]

有線 LAN 以外のインターフェースが有効化されている場合、ルーティングの設定などにより、ネットワーク通信に有線 LAN が使用されない場合があります。 設定を必ず確認してください。確実に有線 LAN の接続確認をする場合は、有線 LAN 以外のインターフェースを無効化してください。

7.2. ストレージ

Armadillo-IoT ゲートウェイ G4 でストレージとして使用可能なデバイスを次に示します。

表7.3 ストレージデバイス

デバイス種類 ディスクデバイス先頭パーティションインターフェース

オンボード eMMC

/dev/mmcblk2

/dev/mmcblk2p1

オンボード

オンボード eMMC (GPP)

/dev/mmcblk2gp3

なし

オンボード

microSD/microSDHC/microSDXCカード

/dev/mmcblk1

/dev/mmcblk1p1

SD インターフェース(CON1)

USBメモリ

/dev/sd* [a]

/dev/sd*1

USB ホストインターフェース (CON4)

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


[ティップ]GPP(General Purpose Partition)について

GPP は、eMMC の通常の記憶領域を割譲して eMMC 内部に作られた記憶領域です。 eMMC の通常の記憶領域とはアドレス空間が異なるため、 /dev/mmcblk2 および /dev/mmcblk2p* に対してどのような書き込みを行っても /dev/mmcblk2gp* のデータが書き換わることはありません。

Armadillo-IoT ゲートウェイ G4 では、8 MiB の GPP を4つ作成しています。各領域の用途を表7.4「eMMCのGPPの用途」に示します。

表7.4 eMMCのGPPの用途

ディスクデバイス 用途

/dev/mmcblk2gp0

ライセンス情報等の保存

/dev/mmcblk2gp1

予約領域

/dev/mmcblk2gp2

予約領域

/dev/mmcblk0gp3

ユーザー領域


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

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

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

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

mount [-t fstype] device dir

図7.17 mount コマンド書式


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

[注記]

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

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

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

SD インターフェース (CON1) に microSD カードを挿入し、以下に示すコマンドを実行すると、 /media ディレクトリに microSD カードのファイルシステムをマウントすることができます。 microSDカード内のファイルは、/mnt ディレクトリ以下に見えるようになります。

[armadillo ~]# mount -t vfat /dev/mmcblk1p1 /mnt
[armadillo ~]# ls /mnt
  :
  :

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


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

[armadillo ~]# umount /mnt

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


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

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

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

[armadillo ~]# fdisk /dev/mmcblk1

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-15138815, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-15138815, default 15138815): +100M

Created a new partition 1 of type 'Linux' and of size 100 MiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (206848-15138815, default 206848):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (206848-15138815, default 15138815):

Created a new partition 2 of type 'Linux' and of size 7.1 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
[  305.798606]  mmcblk1: p1 p2
Syncing disks.

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


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

[armadillo ~]# mkfs.ext4 /dev/mmcblk1p1

図7.21 EXT4 ファイルシステムの構築


7.3. LED

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

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

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

LEDクラスディレクトリインターフェースデフォルトトリガ

/sys/class/leds/led1/

ユーザーLED緑

none


7.3.1. LED を点灯/消灯する

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

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

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

図7.22 LEDを点灯させる


[注記]

Armadillo-IoT ゲートウェイ G4 の LED には輝度制御の機能がないため、0(消灯)、1〜255(点灯)の2つの状態のみ指定することができます。

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

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

図7.23 LEDを消灯させる


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

[armadillo ~]# cat /sys/class/leds/led1/brightness

図7.24 LED の状態を表示する


7.3.2. トリガを使用する

Linux では、LED をある特定のタイミングで光らせることができます。これを「トリガ」と呼びます。 LEDクラスディレクトリ以下の trigger ファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。 trigger でサポートされている主な値は以下の通りです。

表7.6 LEDトリガの種類

設定 説明

none

トリガを設定しません

mmc1

microSD スロットのアクセスランプにします

mmc2

eMMC のアクセスランプにします

heartbeat

心拍のように点灯/消灯を行います

default-on

主に Linux カーネルから使用します。LED が点灯します


trigger ファイルを読み出すとサポートしているトリガと、現在有効のトリガが表示されます。 [] が付いているものが現在のトリガです。

[armadillo ~]# cat /sys/class/leds/led1/trigger
[none] rc-feedback bluetooth-power rfkill-any rfkill-none kbd-scrolllock kbd-num
lock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altl
ock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock rfkill0 rfkill1 di
sk-activity disk-read disk-write ide-disk heartbeat cpu cpu0 cpu1 cpu2 cpu3 mmc2
 default-on panic mmc1

図7.25 対応している LED トリガを表示


以下のコマンドを実行すると、心拍のように点灯/消灯を行います。

[armadillo ~]# echo heartbeat > /sys/class/leds/led1/trigger

図7.26 LEDのトリガに heartbeat を指定する


7.4. ユーザースイッチ

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

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

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

ユーザースイッチインプットデバイスファイルイベントコード

SW1

/dev/input/event1

148 (KEY_PROG1)


[警告]

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

7.4.1. イベントを確認する

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

[armadillo ~]# persist_file -a add evtest

図7.27 evtest コマンドのインストール


[armadillo ~]# evtest /dev/input/event1
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 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 148 (KEY_PROG1)
Properties:
Testing ... (interrupt to exit)
Event: time 1638343703.831011, type 1 (EV_KEY), code 148 (KEY_PROG1), value 1 1
Event: time 1638343703.831011, -------------- SYN_REPORT ------------
Event: time 1638343703.991022, type 1 (EV_KEY), code 148 (KEY_PROG1), value 0 2
Event: time 1638343703.991022, -------------- SYN_REPORT ------------

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


1

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

2

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



[6] nmcli connection show [ID] によって、より詳細な情報を表示することもできます。