動作確認方法

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

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

7.1. ネットワーク

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

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

Armadillo-IoT ゲートウェイ A6E は、Ethernet ポートと WLAN+BT コンボモジュールが搭載されています。 Cat.M1 モデルにはLTE モデムが搭載されています。 Linuxからは、それぞれ eth0ppp0wlan0 に見えます。

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

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

Ethernet

eth0

DHCP

LTE (Cat.M1 モデルのみ)

ppp0

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

無線LAN

wlan0

クライアントモード


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

Armadillo-IoT ゲートウェイ A6E では、通常の 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. コネクションの一覧表示

登録されているコネクションの一覧表示するには、図7.2「コネクションの一覧表示」に示すコマンドを実行します。 [6]

[armadillo ~]# nmcli connection
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  eth0

図7.2 コネクションの一覧表示


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

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

コネクションを有効化するには、図7.3「コネクションの有効化」に示すコマンドを実行します。

[armadillo ~]# nmcli connection up [ID]

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


コネクションを無効化するには、図7.4「コネクションの無効化」に示すコマンドを実行します。

[armadillo ~]# nmcli connection down [ID]

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


7.1.3.3. コネクションの作成

コネクションを作成するには、図7.5「コネクションの作成」に示すコマンドを実行します。

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

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

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


[注記]

別の Armadillo-IoT ゲートウェイ A6E からコネクションファイルをコピーした場合は、コネクションファイルの パーミッションを 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. コネクションの削除

コネクションを削除するには、図7.7「コネクションの削除」に示すコマンドを実行します。

[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. DHCP に設定する

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

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

図7.10 DNS サーバーの指定


[注記]

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

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

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

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

図7.11 DNS サーバーの指定


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

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

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

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


7.1.3.9. デバイスの一覧表示

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

[armadillo ~]# nmcli device
DEVICE  TYPE      STATE        CONNECTION
eth0    ethernet  connected    Wired connection 1
lo      loopback  unmanaged    --

図7.13 デバイスの一覧表示


7.1.3.10. デバイスの接続

デバイスを接続するには、図7.14「デバイスの接続」に示すコマンドを実行します。

[armadillo ~]# nmcli device connect [ifname]

図7.14 デバイスの接続


[注記]

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

7.1.3.11. デバイスの切断

デバイスを切断するには、図7.15「デバイスの切断」に示すコマンドを実行します。

[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.1.5. LTE (Cat.M1 モデルのみ)

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

[ティップ]

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

7.1.5.1. LTE データ通信設定を行う前に

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

[警告]

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

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

[警告]

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

[警告]

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

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

nanoSIM(UIMカード)の切り欠きを挿入方向に向け、刻印面を上にして挿入してください。挿入位置などは、図4.12「Armadillo-IoT ゲートウェイ A6Eの接続例」 を参照してください。

APNの設定を行うには、次に示す情報が必要です。() 内は Cat.M1 モデルでの設定可能な文字長です。この文字長を超える設定はできませんので、SIM の料金プランを選択する際にはご注意ください。

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

7.1.5.2. LTE モデム EMS31-J 省電力などの設定

LTE モデム EMS31-J 起動時に設定する内容を、/etc/atmark/ems31-boot.conf ファイルに記載します。

/etc/atmark/ems31-boot.conf に設定できる内容を表7.3「ems31-boot.conf の設定内容」に示します。

ems31-boot.conf のフォーマットは以下の通りです。

  • パラメータは、「パラメータ名=値」のフォーマットで記載してください。
  • fix_profile の値のみダブルクォテーションで囲む必要があります。
  • 行頭に # が存在する場合、その行を無視します。
  • パラメーターが存在しない場合、その項目に関して何も設定をしません。

表7.3 ems31-boot.conf の設定内容

パラメーター名 初期値 設定可能値 説明

fix_profile

"auto"

"docomojp","sbmjp","kddijp"

接続プロファイルの指定 "auto" で接続できないときに、設定を変更すると接続できることがあります。

suspend

disable

enable または disable

サスペンドの有効無効

psm

3m,1m

disable または tau,act-time

Power Save Mode の設定

edrx

20.48,5.12

disable または pcl,ptw

eDRX の設定


PSM (Power Save Mode) の設定値を表7.4「psm の tau と act-time に設定可能な値」に示します。disable にしない場合、tau (Periodic TAU cycle (T3412)) は act_time (Active time (T3324)) より大きい値にする必要があります。

表7.4 psm の tau と act-time に設定可能な値

パラメーター名 設定可能値

tau (s=秒,m=分,h=時間)

2s,4s,6s…62s,90s,120s,150s…930s,1m,2m,3m…31m,40m,50m,60m…310m, 1h,2h,3h…31h,40h,50h,60h…310h

act-time (s=秒,m=分,h=時間)

2s,4s,6s…62s,1m,2m,3m…31m,36m,42m,48m…186m


eDRX (extended Discontinuous Reception) の設定値を表7.5「edrx の pcl と ptw に設定可能な値」に示します。disable にしない場合、pcl (Paging Cycle Length) は ptw (Paging Time Window eDRX) より大きい値にする必要があります。

表7.5 edrx の pcl と ptw に設定可能な値

パラメーター名 設定可能値

pcl (秒)

5.12, 10.24, 20.48, 40.96, 61.44, 81.92, 102.4, 122.88, 143.36, 163.84, 327.68, 655.36, 1310.72, 2621.44

ptw (秒)

1.28, 2.56, 5.12, 6.40, 7.68, 8.96, 10.24, 11.52, 12.80, 14.08, 15.36, 16.64, 17.92, 19.20, 20.48


7.1.5.3. LTEのコネクションを作成する

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

表7.6 APN情報設定例

項目 設定

APN

[apn]

ユーザー名

[user]

パスワード

[password]

ネットワークデバイス

[wwan]


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

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

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

Thales 製 EMS31-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.17 LTEのコネクションの作成


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

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

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

図7.18 LTEのコネクションの設定の永続化


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

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

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

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

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


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

LTEのコネクションの認証方式は、デフォルトで CHAP に設定されています。PAP認証を有効にしたコネクションを作成する場合は図7.20「PAP認証を有効にした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.20 PAP認証を有効にしたLTEコネクションの作成


[警告]

すでにLTEコネクションを作成済みの場合はコネクション設定を削除した後に、図7.20「PAP認証を有効にしたLTEコネクションの作成」を実施してください。

7.1.5.6. LTEコネクションを確立する

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

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

図7.21 LTEのコネクション確立


7.1.5.7. LTE の接続を確認する

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

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

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

図7.22 LTEのPING導通確認


[注記]

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

7.1.5.8. LTEコネクションを切断する

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

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

図7.23 LTEコネクションを切断する


1

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

2

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

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

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

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

図7.24 nmcli connection modify コマンドで LTE のパスワードを設定する


7.1.5.10. LTE再接続サービス

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

[ティップ]

Cat.M1 モデルでは、LTE モデムの省電力動作のため、初期状態では LTE 再接続サービスを無効にしております。有効にする手順は、図7.30「LTE 再接続サービスを有効にする」を参照ください。LTE 再接続サービスを有効にした場合、定期的に ping 導通確認を実施するため、スリープ状態の LTE モデムが都度起床する、サスペンド状態の LTE モデムですと ping 導通が確認できないなど、制約が発生しますので、その辺りを考慮された上でのご利用をお願いします。

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

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

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

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

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

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

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

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

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

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 導通確認を設定した回数連続で失敗した場合モデムの再起動を実行します。設定した回数に満たない場合 、電波のオフ・オン実施のみで LTE 再接続を試みます。


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

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

図7.25 LTE 再接続サービスの設定値を永続化する


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

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

図7.26 LTE 再接続サービスの状態を確認する


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

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

図7.27 LTE 再接続サービスを停止する


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

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

図7.28 LTE 再接続サービスを開始する


独自に接続状態を確認するサービスを実装されるなどの理由で標準のLTE再接続サービスが不要な場合、図7.29「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.29 LTE 再接続サービスを無効にする


1

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

2

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

3

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

LTE再接続サービスを無効化した後、再度有効にする場合、図7.30「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.30 LTE 再接続サービスを有効にする


1

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

2

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

3

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

7.1.5.11. ModemManager - mmcli について

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

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

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

ModemManager はモデムデバイスに応じたプラグインを選択して動作します。Cat.M1 モデルでは、cinterion-ems31 という名称のプラグインで動作しています。

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

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

[armadillo:~]# mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [Cinterion] EMS31-J

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


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

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

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

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


[ティップ]

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

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

SIM の情報を取得するには、図7.33「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

図7.33 SIMの情報を取得する


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

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

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

[armadillo ~]# mmcli -b [number]
  ------------------------------------
  General            |           path: /org/freedesktop/ModemManager1/Bearer/[bearer number]
                     |           type: default
  ------------------------------------
  Status             |      connected: yes
                     |      suspended: XX
                     |    multiplexed: XX
                     |     ip timeout: XX
  ------------------------------------
  Properties         |            apn: XXXXXXXXXXX
                     |        ip type: XXXXX

図7.34 回線情報を取得する


7.1.6. 無線LAN

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

例として、WPA2-PSK(AES)のアクセスポイントに接続します。WPA2-PSK(AES)以外のアクセスポイントへの接続方法などについては、man nm-settings を参考にしてください。 また、以降の説明では、アクセスポイントのESSIDを[essid]、パスフレーズを[passphrase]と表記します。

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

無線LANアクセスポイントに接続するためには、次のようにコマンドを実行してコネクションを作成します。

[armadillo ~]# nmcli device wifi connect [essid] password [passphrase]

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


作成されたコネクションの ID は nmcli connection コマンドで確認できます。

[armadillo ~]# nmcli connection
NAME                UUID                                  TYPE      DEVICE
atmark-4f           e051a1df-6bd7-4bcf-9c71-461af666316d  wifi      wlan0
Wired connection 1  f147b8e8-4a17-312d-a094-8c9403007f6a  ethernet  --

図7.36 無線LANのコネクションが作成された状態


7.1.6.2. 無線LANのコネクション設定を編集する場合の注意事項

無線LANの設定情報を nmcli connection modify コマンドで編集する場合、パスワード情報がリセットされます。 図7.35「無線LANアクセスポイントに接続する」に示すコマンドを実行し、都度パスワードを再設定してください。

7.1.6.3. 無線LANの接続を確認する

無線LANで正常に通信が可能か確認します。

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

[armadillo ~]# ping 192.0.2.20

図7.37 無線LANのPING確認


[ティップ]

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

7.1.7. BT

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

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

[armadillo ~]# apk add bluez

図7.38 bluezのインストール


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

[armadillo ~]# service bluetooth start

図7.39 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.40 bluetoothctl スキャン開始


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

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

図7.41 bluetoothctl スキャン停止


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

[bluetooth]# exit

図7.42 bluetoothctl 終了


7.2. ストレージ

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

表7.9 ストレージデバイス

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

オンボード eMMC

/dev/mmcblk0

/dev/mmcblk0p1

オンボード

オンボード eMMC (GPP)

/dev/mmcblk0gp2

なし

オンボード

オンボード eMMC (GPP)

/dev/mmcblk0gp3

なし

オンボード

SD/SDHC/SDXCカード

/dev/mmcblk1

/dev/mmcblk1p1

microSDスロット(CON1)

USBメモリ

/dev/sd* [a]

/dev/sd*1

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

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


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

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

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

表7.10 eMMCのGPPの用途

ディスクデバイス 用途

/dev/mmcblk0gp0

ライセンス情報等の保存

/dev/mmcblk0gp1

予約領域

/dev/mmcblk0gp2

ユーザー領域

/dev/mmcblk0gp3

ユーザー領域


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

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

[ティップ]

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

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

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

mount [-t fstype] device dir

図7.43 mountコマンド書式


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

[注記]

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

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

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

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

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

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


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

[armadillo ~]# umount /media

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


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

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

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

[armadillo ~]# fdisk /dev/mmcblk1

Welcome to fdisk (util-linux 2.29.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-7744511, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-7744511, default 7744511): +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-7744511, default 206848):
Last sector, +sectors or +size{K,M,G,T,P} (206848-7744511, default 7744511):

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

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

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


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

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

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


7.3. LED

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

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

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

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

/sys/class/leds/app/

アプリケーションLED

default-on

/sys/class/leds/yellow/

ユーザーLED黄

none


以降の説明では、任意のLEDを示すLEDクラスディレクトリを /sys/class/leds/[LED]/ のように表記します。 [LED] の部分を適宜読みかえてください。

7.3.1. LEDを点灯/消灯する

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

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

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

図7.48 LEDを点灯させる


[注記]

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

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

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

図7.49 LEDを消灯させる


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

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

図7.50 LEDの状態を表示する


7.3.2. トリガを使用する

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

表7.12 LEDトリガの種類

設定 説明

none

トリガを設定しません

mmc0

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

mmc1

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

timer

任意のタイミングで点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します

heartbeat

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

default-on

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


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

[armadillo ~]# cat /sys/class/leds/[LED]/trigger
[none] rc-feedback bluetooth-power rfkill-any rfkill-none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock rfkill0 rfkill1 timer oneshot heartbeat backlight gpio default-on mmc0 mmc1

図7.51 対応している 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

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


7.4. ユーザースイッチ

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

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

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

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

SW1

/dev/input/event0

28 (KEY_ENTER)


[警告]

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

7.4.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 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 28 (KEY_ENTER)
Properties:
Testing ... (interrupt to exit)
Event: time 1662514165.249093, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0  1
Event: time 1662514165.249093, -------------- SYN_REPORT ------------
Event: time 1662514169.019097, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1  2
Event: time 1662514169.019097, -------------- SYN_REPORT ------------

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


1

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

2

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

7.5. RS485

RS485 は、入出力インターフェース(CON6)の以下ピンを使用します。インターフェースの位置については「インターフェースレイアウト」、仕様については「RS485」 をご確認ください。

また、終端抵抗 120Ω の ON/OFFをスイッチで切り替えることができます。詳しくは「SW3(RS485 終端抵抗設定スイッチ)」 をご確認ください。

表7.14 RS485 に対応する CON6 ピン番号

ピン番号

ピン名

10

DATA+

11

DATA-

12

GND


シリアルインターフェースのデバイスファイルは、/dev/ttymxc4 を使用します。

7.6. 接点入力

入出力インターフェース(CON6)のピン4, ピン5を接点入力として使用できます。インターフェースの位置については「インターフェースレイアウト」、仕様については「接点入力」 をご確認ください。

ソフトウェアからはGPIO として制御可能であり、対応するGPIO 番号を次に示します。

表7.15 接点入力に対応する CON6 ピン番号

ピン番号

ピン名

GPIOチップ

GPIO番号

4

DI1

gpiochip5

0

5

DI2

gpiochip5

1


7.6.1. 入力レベルの確認

gpioget コマンドを用いて入力レベルの確認ができます。"0"は LOW レベル、"1"は HIGH レベルを表わします。

[armadillo ~]# gpioget gpiochip5 [GPIO]
0

図7.54 入力レベルの確認


7.7. 接点出力

入出力インターフェース(CON6)のピン6/ピン7、ピン8/ピン9を接点出力として使用できます。インターフェースの位置については「インターフェースレイアウト」、仕様については「接点出力」 をご確認ください。

ソフトウェアからはGPIO として制御可能であり、対応するGPIO 番号を次に示します。

表7.16 接点出力に対応する CON6 ピン番号

ピン番号

ピン名

GPIOチップ

GPIO番号

6

DO1A

gpiochip5

2

7

DO1B

gpiochip5

2

8

DO2A

gpiochip5

3

9

DO2B

gpiochip5

3


7.7.1. 出力レベルの設定

gpioset コマンドを用いて、出力レベルを設定することができます。出力レベルには "0" または "1" を設定します。"0"は LOW レベル、"1"は HIGH レベルを表わします。

[armadillo ~]# gpioset gpiochip5 [GPIO]=0

図7.55 出力レベルを "0" に設定する場合


7.8. RTC

本章では、Armadillo-IoT ゲートウェイ A6E のリアルタイムクロック(RTC) の使用方法について説明します。

7.8.1. RTCに時刻を設定する

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

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

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

フィールド意味

MM

DD

日(月内通算)

hh

mm

CC

年の最初の2桁(省略可)

YY

年の最後の2桁(省略可)

ss

秒(省略可)


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

[armadillo ~]# date
Sat Jan  1 09:00:00 JST 2000
[armadillo ~]# date 030212342022.56
Fri Mar  2 12:34:56 JST 2022
[armadillo ~]# date
Fri Mar  2 12:34:57 JST 2022

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


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

[armadillo ~]# hwclock  1
2000-01-01 00:00:00.000000+09:00
[armadillo ~]# hwclock --utc --systohc  2
[armadillo ~]# hwclock --utc  3
2022-03-02 12:57:20.534140+09:00

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


1

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

2

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

3

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



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