動作確認方法

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

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

7.1. ネットワーク

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

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

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

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

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

Ethernet

eth0

DHCP

Ethernet

eth1

DHCP

無線 LAN

mlan0

クライアントモード

3G/LTE

ttyCommModem

SIM / 料金プランに依存します


[警告]

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
Wired connection 1  a6f99120-b4ed-3823-a6f0-0491d4b6101e  ethernet  eth0
Wired connection 2  fafc0e33-bb47-3c39-b9a1-395e4ce6cb6e  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 と persist_file について」を参照してください。

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

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


[注記]

別の Armadillo-IoT ゲートウェイ G4 からコネクションファイルをコピーした場合は、コネクションファイルの パーミッションを 600 に設定してください。 600 に設定後、 nmcli c reload コマンドでコネクションファイルを再読込します。

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

swu イメージを使用してコネクションファイルのアップデートを行う場合は、 swu イメージに含めるコネクションファイルのパーミッションを 600 に設定してから、 swu イメージを作成してください。 アップデート実行時には swu イメージ作成時のパーミッションが維持されるため、 上記のコマンド実行手順は不要です。 swu イメージに関しては 「Armadilloのソフトウェアをアップデートする」 を参考にしてください。

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    Wired connection 1
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 -I eth0 -c 3 192.0.2.20 1
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 確認


1

-I オプションでインターフェースを指定できます。eth1 を確認する場合は -I eth1 としてください。

[注記]

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

7.1.5. 無線 LAN

Armadillo-IoT ゲートウェイ G4 WLAN モデルに搭載されている WLAN + BT コンボモジュールで正常に通信が可能か確認します。

例として、WPA2-PSK(AES) のアクセスポイントに接続します。ここでの説明では、 アクセスポイントの ESSID を [essid]、パスフレーズを [passphrase] と表記します。

7.1.5.1. 無線 LAN アクセスポイントに接続する

  1. 無線 LAN アクセスポイントに接続する
[armadillo ~]# nmcli device wifi connect [essid] password [passphrase]

Armadillo-IoT ゲートウェイ G4 を再起動したときに 無線 LAN のコネクションファイルが消えてしまわないように、 図7.6「コネクションファイルの永続化」 を参照してファイルの永続化を行ってください。

7.1.5.2. 無線 LAN の通信を確認する

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

[armadillo ~]# ping -I mlan0 -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=51.951 ms
64 bytes from 192.0.2.20: seq=1 ttl=64 time=19.347 ms
64 bytes from 192.0.2.20: seq=2 ttl=64 time=13.861 ms

--- 192.0.2.20 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 13.861/28.386/51.951 ms

図7.17 無線 LAN の PING 確認


有線 LAN と 無線 LAN の両方が有効になっている場合、常に有線 LAN が優先されます。 確実に無線 LAN の接続確認を行う場合は、無線 LAN 以外のインターフェースを無効化するか、 以下の手順で無線 LAN の優先度を他のインターフェースより高くしてください。

ネットワークインターフェースの優先度を確認します。

[armadillo ~]# ip route
default via 172.16.0.1 dev eth0  src 172.16.1.43  metric 100
default via 172.16.0.1 dev mlan0  src 172.16.1.52  metric 600
172.16.0.0/16 dev eth0 scope link  src 172.16.1.43  metric 100
172.16.0.0/16 dev mlan0 scope link  src 172.16.1.52  metric 600

図7.18 ネットワークインターフェースの優先度確認


Metric の値が低ければ優先度は高くなるので、無線 LAN の Metric の値 600 を有線 LAN の 100 よりも低く設定します。 以下の例では、 50 に設定します。

ここの例で使用している無線 LAN コネクションの [ID] に関しては、 「コネクションの一覧」 の手順で確認してください。

[armadillo ~]# nmcli connection modify [ID] ipv4.route-metric 50
[armadillo ~]# nmcli connection up [ID]
[armadillo ~]# ip route
default via 172.16.0.1 dev mlan0  src 172.16.1.52  metric 50 1
default via 172.16.0.1 dev eth0  src 172.16.1.43  metric 100
172.16.0.0/16 dev mlan0 scope link  src 172.16.1.52  metric 50
172.16.0.0/16 dev eth0 scope link  src 172.16.1.43  metric 100

図7.19 ネットワークインターフェースの優先度設定


1

Metric が 50 になっていることが確認できます。

これにより、有線 LAN と無線 LAN が両方有効な場合でも無線 LAN が優先して使われるようになります。

7.1.6. 3G/LTE

本章では、Armadillo-IoT ゲートウェイ G4 に搭載されている 3G/LTEモジュールの使用方法について説明します。

[ティップ]

Quectel 製 3G/LTE 通信モジュール EC25-J はドコモ/KDDI/ソフトバンクそれぞれの相互接続性試験を完了しています。

7.1.6.1. 3G/LTE データ通信設定を行う前に

3G/LTEデータ通信を利用するには、通信事業者との契約が必要です。契約時に通信事業者から貸与されたnanoSIM(UIMカード)とAPN情報を準備します。

[警告]

Quectel 製 EC25-J 搭載モデルでの動作検証済み nanoSIM (料金プラン)に関しては、 Armadillo サイトの「Armadillo-IoTゲートウェイ 動作確認済みSIM一覧」を確認ください。

Armadillo-IoTゲートウェイ 動作確認済みSIM一覧

[警告]

Armadillo-IoT ゲートウェイ G4 の電源が切断されていることを確認してから nanoSIM(UIMカード)を取り付けてください。

[警告]

本製品は、nanoSIMスロットを搭載しています。

標準/microSIMサイズのSIMカードをnanoSIMサイズにカットしたもの、サイズの異なるものを使用すると、nanoSIMスロットが故障する原因となります。 これらを使用し本製品が故障した場合は、保証期間内であっても保証適用外となります。

nanoSIM(UIMカード)の切り欠きを挿入方向に向け、刻印面を上にして挿入してください。挿入位置などは、図4.18「3G/LTE用アンテナおよびnanoSIMカード接続例」 を参照してください。

APNの設定を行うには、次に示す情報が必要です。

  • APN
  • ユーザー名
  • パスワード
  • 認証方式(PAP または CHAP)
  • PDP Type(IPのみをサポート)

7.1.6.2. 3G/LTEのコネクションを作成する

表7.3「APN情報設定例」の内容に設定する例を図7.20「3G/LTEのコネクションの作成」に示します。

表7.3 APN情報設定例

項目 設定

APN

[apn]

ユーザー名

[user]

パスワード

[password]

ネットワークデバイス

[wwan]


ネットワークデバイス [wwan] は、表7.4「通信モジュールのネットワークデバイス」 を参照ください。

表7.4 通信モジュールのネットワークデバイス

通信モジュール ネットワークデバイス

Quectel 製 EC25-J

ttyCommModem


[armadillo ~]# nmcli connection add type gsm ifname [wwan] apn [apn] user [user] password [password]
Connection 'gsm-[wwan]' (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) successfully added.

図7.20 3G/LTEのコネクションの作成


コネクション設定を永続化するには、以下のコマンドを入力してください。設定を永続化すると、Armadillo 起動時に自動的にデータ接続を行うようになります。

同一インタフェースへの設定が複数存在する場合、 gsm-[wwan]-1.nmconnection など後ろに数値が付与されますので、図7.20「3G/LTEのコネクションの作成」 入力時のメッセージで生成されたファイル名を確認した上で永続化を実施ください。

[armadillo ~]# persist_file /etc/NetworkManager/system-connections/gsm-[wwan].nmconnection

図7.21 3G/LTEのコネクションの設定の永続化


7.1.6.3. MCC/MNC を指定した 3G/LTE のコネクションを作成する

マルチキャリア SIM などを使用する際、MCC (Mobile Country Code) と MNC (Mobile Network Code) を指定してコネクションを作成すると 3G/LTE ネットワークに接続できることがあります。指定する場合は 図7.22「MCC/MNC を指定した 3G/LTE コネクションの作成」 に示すコマンドを実行してください。

[mccmnc] には 44010 などの数字を入力してください。実際に設定する値に関しては、ご契約の通信事業者へお問い合わせください。

[armadillo ~]# nmcli connection add type gsm ifname [wwan] apn [apn] user [user] password [password] gsm.network-id [mccmnc]

図7.22 MCC/MNC を指定した 3G/LTE コネクションの作成


7.1.6.4. PAP認証を有効にした3G/LTEのコネクションを作成する

3G/LTEのコネクションの認証方式は、デフォルトで CHAP に設定されています。PAP認証を有効にしたコネクションを作成する場合は図7.23「PAP認証を有効にした3G/LTEコネクションの作成」 に示すコマンドを実行してください。

[armadillo ~]# nmcli connection add type gsm ifname [wwan] apn [apn] user [user] password [password] ppp.refuse-eap true ppp.refuse-chap true ppp.refuse-mschap true ppp.refuse-mschapv2 true ppp.refuse-pap false

図7.23 PAP認証を有効にした3G/LTEコネクションの作成


[警告]

すでに3G/LTEコネクションを作成済みの場合はコネクション設定を削除し、図7.24「3G/LTEモジュール初期化手順」に示すモジュール初期>化を実施した後に、図7.23「PAP認証を有効にした3G/LTEコネクションの作成」を実施してください。

7.1.6.5. 3G/LTE モジュールの初期化

SIM カードを入れ替えた際、または 「PAP認証を有効にした3G/LTEのコネクションを作成する」 を実施する際には、図7.24「3G/LTEモジュール初期化手順」に示すモジュール初期化を実施してください。

[armadillo ~]# rc-service connection-recover stop 1
connection-recover| * Stopping connection-recover ... [ ok ]
[armadillo ~]# rc-service modemmanager stop 2
modemmanager      | * WARNING: you are stopping a boot service
modemmanager      | * Stopping modemmanager ... [ ok ]
[armadillo ~]# ec25-clean-reset 3
OK
OK
usb 3-1.2: USB disconnect, device number 3
option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
option 3-1.2:1.0: device disconnected
option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
option 3-1.2:1.1: device disconnected
option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
option 3-1.2:1.2: device disconnected
option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
option 3-1.2:1.3: device disconnected
usb 3-1.2: new high-speed USB device number 4 using xhci-hcd
option 3-1.2:1.0: GSM modem (1-port) converter detected
usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB0
option 3-1.2:1.1: GSM modem (1-port) converter detected
usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB1
option 3-1.2:1.2: GSM modem (1-port) converter detected
usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB2
option 3-1.2:1.3: GSM modem (1-port) converter detected
usb 3-1.2: GSM modem (1-port) converter now attached to ttyUSB3
[armadillo ~]# rc-service connection-recover start 4
connection-recover| * Starting connection-recover ... [ ok ]

図7.24 3G/LTEモジュール初期化手順


1

再接続サービスを停止します。

2

ModemManager を停止します。

3

モジュール初期化処理を実行します。

4

コンソールに上記ログが表示され、モジュールの再起動を確認後に、再接続サービスを起動します。

[注記]

停止した ModemManager は 3G/LTE モジュール認識時自動的に再起動しますので、手動での起動は不要です。

7.1.6.6. 3G/LTEコネクションを確立する

3G/LTEコネクションの作成直後や設定変更後に再起動をせずにコネクションを確立するには、図7.25「3G/LTEのコネクション確立」に示すコマンドを実行します。

[armadillo ~]# nmcli connection up gsm-[wwan]
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/x)

図7.25 3G/LTEのコネクション確立


7.1.6.7. 3G/LTE の接続を確認する

3G/LTEで正常に通信が可能かを確認します。

図7.26「3G/LTEのPING導通確認」に示すコマンドで、アットマークテクノのWebサーバーとPING通信を行います。VPN接続を利用するなどインターネットに接続できない場合は、ネットワーク内の通信機器に読み替えてください。

[armadillo ~]# ping www.atmark-techno.com

図7.26 3G/LTEのPING導通確認


[注記]

3G/LTE以外のコネクションが有効化されている場合、ネットワーク通信に3G/LTEが使用されない場合があります。確実に3G/LTEの接続確認をする場合は、事前に3G/LTE以外のコネクションを無効化してください。

7.1.6.8. 3G/LTEコネクションを切断する

3G/LTEコネクションを切断するには、図7.27「3G/LTEコネクションを切断する」に示すコマンドを実行します。 3G/LTEコネクションを切断する前に、3G/LTE 再接続サービスを停止しないと再接続処理が実行される為、事前に停止します。

[armadillo ~]# rc-service connection-recover stop 1
connection-recover| * Stopping connection-recover ... [ ok ]
[armadillo ~]# nmcli connection down gsm-[wwan] 2

図7.27 3G/LTEコネクションを切断する


1

3G/LTE 再接続サービスを停止します。

2

3G/LTE コネクションを切断します。

7.1.6.9. 3G/LTEのコネクション設定を編集する場合の注意事項

3G/LTEの設定情報を nmcli connection modify コマンドで編集する場合、パスワード情報がリセットされます。 図7.28「nmcli connection modify コマンドで3G/LTE のパスフレーズを設定する」に示すコマンドを実行し、都度パスワードを再設定してください。

[armadillo ~]# nmcli connection modify gsm-[wwan] gsm.password [password]

図7.28 nmcli connection modify コマンドで3G/LTE のパスフレーズを設定する


7.1.6.10. 3G/LTE再接続サービス

3G/LTE 再接続サービスは、3G/LTE のデータ接続の状態を定期的に監視し、切断を検出した場合に再接続を行うサービスです。

SIM カードが挿入されており、NetworkManager に有効な 3G/LTE コネクションの設定がされているとき、初期設定では 120 秒に一度コネクションの状態を監視します。オプションで SIM カードの認識ができないときに Armadillo の再起動を実施することも可能です。

コネクションが無効になっている場合、切断状態と判定しコネクションを有効にします。

コネクションが有効になっている場合、特定の宛先に PING を実行します。PING がエラーになったとき切断状態と判定し、コネクションの無効化・有効化を行うことで再接続を実施します。

コネクションの無効化・有効化による再接続を実施しても PING がエラーになる場合、電波のオン・オフまたは 3G/LTE モジュールの電源をオン・オフを実施して再接続を実施します。どちらを実施するかは設定ファイルの WWAN_FORCE_RESTART_COUNT に依存します。

WWAN_FORCE_RESTART_COUNT が初期値の 10 である場合、1 から 9 回目は電波のオン・オフを実施し、10 回目は3G/LTE モジュールの電源オン・オフを実施します。それ以降も NG が続く場合、同じく 10 回に一度 3G/LTE モジュールの電源オン・オフを実施します。

工場出荷状態で本サービスは有効化されており、システム起動時にサービスが自動的に開始されます。PING を実行する宛先は、初期設定ではで "8.8.8.8" です。ご利用の環境に合わせて設定ファイル(/etc/atmark/connection-recover/gsm-ttyUSB2_connection-recover.conf)を適宜変更してください。

設定ファイルの概要を表7.5「再接続サービス設定パラメーター」に示します。必要に応じて設定値を変更してください。

表7.5 再接続サービス設定パラメーター

パラメーター名 初期値 意味 変更

PRODUCT_NAME

-

製品名

不可

CHECK_INTERVAL_SEC

120

監視周期(秒)

PING_DEST_IP

8.8.8.8

コネクション状態確認時 PING 送付先

DEVICE

-

ネットワークデバイス名

不可

TYPE

-

ネットワークタイプ

不可

NETWORK_IF

-

ネットワーク I/F 名

不可

FORCE_REBOOT

FALSE

TRUE に設定すると PING 導通チェック NG 時 Armadillo を再起動します。

REBOOT_IF_SIM_NOT_FOUND

FALSE

TRUE に設定すると SIM を検出できない時に Armadillo を再起動します。

WWAN_FORCE_RESTART_COUNT

10

PING 導通確認を設定した回数連続で失敗した場合モデムの再起動を実行します。設定した回数に満たない場合 、電波のオフ・オン実施のみで 3G/LTE 再接続を試みます。


設定ファイル(/etc/atmark/connection-recover/gsm-ttyUSB2_connection-recover.conf)変更後、変更内容を永続化するには図7.29「3G/LTE 再接続サービスの設定値を永続化する」に示すコマンドを実行してください。

[armadillo ~]# persist_file /etc/atmark/connection-recover/gsm-ttyUSB2_connection-recover.conf

図7.29 3G/LTE 再接続サービスの設定値を永続化する


3G/LTE再接続サービスの状態を確認するには、図7.30「3G/LTE 再接続サービスの状態を確認する」に示すコマンドを実行してください。

[armadillo ~]# rc-status | grep connection-recover
 connection-recover                                    [  started 00:43:02 (0) ]

図7.30 3G/LTE 再接続サービスの状態を確認する


3G/LTE再接続サービスを停止するには、図7.31「3G/LTE 再接続サービスを停止する」に示すコマンドを実行してください。

[armadillo ~]# rc-service connection-recover stop
connection-recover| * Stopping connection-recover ... [ ok ]

図7.31 3G/LTE 再接続サービスを停止する


3G/LTE再接続サービスを開始するには、図7.32「3G/LTE 再接続サービスを開始する」に示すコマンドを実行してください。

[armadillo ~]# rc-service connection-recover start
connection-recover| * Starting connection-recover ... [ ok ]

図7.32 3G/LTE 再接続サービスを開始する


独自に接続状態を確認するサービスを実装されるなどの理由で標準の3G/LTE再接続サービスが不要な場合、図7.33「3G/LTE 再接続サービスを無効にする」に示す手順で再接続サービスを永続的に無効にできます。

[armadillo ~]# rc-service connection-recover stop 1
connection-recover| * Stopping connection-recover ... [ ok ]
[armadillo ~]# rc-update del connection-recover default 2
service connection-recover removed from runlevel default
[armadillo ~]# persist_file -rv /etc/runlevels/default/connection-recover 3

図7.33 3G/LTE 再接続サービスを無効にする


1

再接続サービスを停止します。

2

再接続サービスを無効にします。

3

サービスの設定ファイルを削除を永続化します。

3G/LTE再接続サービスを無効化した後、再度有効にする場合、図7.34「3G/LTE 再接続サービスを有効にする」に示す手順を実行してください。

[armadillo ~]# rc-update add connection-recover default 1
service connection-recover added to runlevel default
[armadillo ~]# rc-service connection-recover start 2
connection-recover| * Starting connection-recover ... [ ok ]
[armadillo ~]# persist_file -rv /etc/runlevels/default/connection-recover 3

図7.34 3G/LTE 再接続サービスを有効にする


1

再接続サービスを有効にします。

2

再接続サービスを開始します。

3

サービスの設定ファイルを永続化します。

7.1.6.11. ModemManager - mmcli について

ここでは ModemMamager と mmcli について説明します。

Armadillo-IoT ゲートウェイ G4 にはネットワークを管理する NetworkManager とは別に、モデムを管理する ModemManager がインストールされています。 ModemManager はモバイルブロードバンドデバイス(3G/LTEモジュールなど)の操作および、接続状況の管理などを行います。

ModemManager のコマンドラインツールである mmcli を使用することで、3G/LTE通信の電波強度やSIMカードの情報(電話番号やIMEIなど)を取得することが可能です。mmcli の詳しい使いかたについては man mmcli を参照してください。

7.1.6.12. mmcli - 認識されているモデムの一覧を取得する

認識されているモデムの一覧を取得するには、図7.35「認識されているモデムの一覧を取得する」に示すコマンドを実行します。

[armadillo:~]# mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [Quectel] EC25

図7.35 認識されているモデムの一覧を取得する


7.1.6.13. mmcli - モデムの情報を取得する

モデムの情報を取得するには、図7.36「モデムの情報を取得する」に示すコマンドを実行します。

armadillo:~# mmcli -m 0
  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager[number1]/Modem/[number2]
           |            device id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  --------------------------------
  Hardware |         manufacturer: Quectel
           |                model: EC25
           |    firmware revision: XXXXXXXXXXXXXXXXXXXX
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: XXXXXXXXXXXXXXX
: (省略)

図7.36 モデムの情報を取得する


[ティップ]

モデムの情報を取得するには、SIM カードが取り付けられている必要があります。正しく SIM カードが取り付けられていることを確認してください。

7.1.6.14. mmcli - SIMの情報を取得する

SIM の情報を取得するには、図7.37「SIMの情報を取得する」に示すコマンドを実行します。

[armadillo ~]# mmcli -m 0
: (省略)
SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/[number] # [number] を次のコマンドで使用
: (省略)

[armadillo ~]# mmcli -i [number]
  -------------------------------
  General    |              path: /org/freedesktop/ModemManager1/SIM/0
  -------------------------------
  Properties |            active: yes
             |              imsi: XXXXXXXXXXXXXXX
             |             iccid: XXXXXXXXXXXXXXXXXXX
             |       operator id: XXXXX
             |     operator name: XXXXXXXXXXX
             | emergency numbers: XXXX

図7.37 SIMの情報を取得する


7.1.6.15. mmcli - 回線情報を取得する

回線情報を取得するには、図7.38「回線情報を取得する」に示すコマンドを実行します。

[armadillo ~]# mmcli -m 0
: (省略)
  Bearer   |                paths: /org/freedesktop/ModemManager1/Bearer/[number] # [number] を次のコマンドで使用
: (省略)

[armadillo ~]# mmcli -b [number]
  ------------------------------------
  General            |           path: /org/freedesktop/ModemManager1/Bearer/1
                     |           type: default
  ------------------------------------
  Status             |      connected: yes
                     |      suspended: XX
                     |    multiplexed: XX
                     |      interface: [wwan]
                     |     ip timeout: XX
                     |     profile id: X
  ------------------------------------
  Properties         |            apn: XXXXXXXXXXX
                     |        roaming: allowed
                     |        ip type: ipv4v6
                     |           user: XXXXX
                     |       password: XXXXX
  ------------------------------------
  IPv4 configuration |         method: ppp
                     |         prefix: X
  ------------------------------------
  IPv6 configuration |         method: ppp
                     |         prefix: X
  ------------------------------------
  Statistics         |       duration: XXX
                     |       attempts: X
                     | total-duration: XXX

図7.38 回線情報を取得する


7.1.7. BT

Armadillo-IoT ゲートウェイ G4 WLAN モデルに搭載されている WLAN + BT コンボモジュールによる BT の動作を確認します。

例として、 bluetoothctl コマンドを使用して周辺の bluetooth 機器のアドバタイジング・パケットを 受信します。 bluetoothctl コマンドを使用するには、 bluez パッケージが必要です。

[armadillo ~]# apk add bluez

図7.39 bluez のインストール


インストール後、 bluetooth.service を有効化します。

[armadillo ~]# service bluetooth start

図7.40 bluetooth.service の有効化


bluetoothctl コマンドを使用し、 アドバタイジング・パケットをスキャンします。

[armadillo ~]# bluetoothctl
[bluetooth]#
Agent registered
[CHG] Controller [AA:AA:AA:AA:AA:AA] Pairable: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller [AA:AA:AA:AA:AA:AA] Discovering: yes
[NEW] Device [BB:BB:BB:BB:BB:BB] [bluetooth Name]
[CHG] Device [BB:BB:BB:BB:BB:BB] RSSI: -66
[CHG] Device [BB:BB:BB:BB:BB:BB] RSSI: -73

図7.41 bluetoothctl スキャン開始


スキャンを停止するには、 scan off を実行します。

[bluetooth]# scan off
Discovery stopped
[CHG] Controller [AA:AA:AA:AA:AA:AA] Discovering: no

図7.42 bluetoothctl スキャン停止


bluetoothctl を終了するには、 exit を実行します。

[bluetooth]# exit

図7.43 bluetoothctl 終了


7.2. ストレージ

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

表7.6 ストレージデバイス

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

オンボード 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.7「eMMCのGPPの用途」に示します。

表7.7 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.44 mount コマンド書式


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

[注記]

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

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

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

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

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

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


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

[armadillo ~]# umount /mnt

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


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

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

パーティション構成を変更したい場合、 fdisk コマンドを使用します。 fdisk コマンドの使用例として、 一つのパーティションで構成されている microSD カードのパーティションを、2つに分割する例を図7.47「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.47 fdiskコマンドによるパーティション変更


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

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

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


7.3. LED

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

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

表7.8 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.49 LEDを点灯させる


[注記]

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

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

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

図7.50 LEDを消灯させる


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

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

図7.51 LED の状態を表示する


7.3.2. トリガを使用する

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

表7.9 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.52 対応している LED トリガを表示


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

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

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


7.4. ユーザースイッチ

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

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

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

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

SW1

/dev/input/by-path/platform-gpio-keys-event

148 (KEY_PROG1)


[警告]

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

7.4.1. イベントを確認する

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

[armadillo ~]# apk add evtest

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


[armadillo ~]# evtest /dev/input/by-path/platform-gpio-keys-event
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.55 ユーザースイッチ: イベントの確認


1

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

2

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



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