動作確認方法

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

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

7.1. ネットワーク

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

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

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

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

Ethernet

全モデル

eth0

DHCP

LTE

Cat.1

usb0

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

Cat.M1

ppp0

無線LAN

Cat.1[a], WLAN

wlan0

クライアントモード

[a] 型番によっては、搭載/非搭載が異なります。


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「DHCP の設定」に示します。

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

図7.10 DHCP の設定


[注記]

-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.1/Cat.M1 モデル)

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

[ティップ]

Armadillo-IoT ゲートウェイ A6E Cat.1 モデルに搭載しております Thales 製 LTE 通信モジュール ELS31-J は、ドコモの相互接続性試験を完了しています。

[ティップ]

Armadillo-IoT ゲートウェイ A6E Cat.M1 モデルに搭載しております Thales 製 LTE 通信モジュール EMS31-J は、ドコモ/KDDI/ソフトバンクそれぞれの相互接続性試験を完了しています。

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

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

[警告]

Armadillo-IoT ゲートウェイ A6E Cat.1 及び Cat.M1 モデルでの動作検証済み 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の設定を行うには、表7.3「APN 設定情報」に示す情報が必要です。モデル毎の文字長を超える設定はできませんので、SIM の料金プランを選択する際にはご注意ください。特に Cat.1 モデル (ELS31-J) の最大パスワード文字数が短いのでご注意ください。

表7.3 APN 設定情報

項目 Cat.1 モデル (ELS31-J) Cat.M1 モデル (EMS31-J)

APN

最大 99 文字

最大 99 文字

ユーザー名

最大 30 文字

最大 64 文字

パスワード

最大 20 文字

最大 64 文字

認証方式

PAP または CHAP

PDP Type

IP のみをサポート


7.1.5.2. Cat.1 モデルの LTE ネットワーク構成について (Cat.1 モデル)

Cat.1 モデル搭載の LTE モデム ELS31-J は、USB インターフェースで Armadillo のプロセッサと接続しています。USB インターフェースは USB CDC ACM、USB CDC Ethernet として動作します。

この USB CDC Ethernet によって LTE モジュールと Armadillo Base OS の間で LAN を構成します。

それぞれの IP アドレスの割り当てを、図7.17「Cat.1 モデル (ELS31-J) LTE ネットワーク構成」 に示します。Armadillo Base OS 側の IP アドレスを 24 ビットマスクのアドレス空間で示しているのは、 LTE モジュール内部で動作している DHCP サーバーがIPアドレスを提供するためです。

images/els31-nat.png

図7.17 Cat.1 モデル (ELS31-J) LTE ネットワーク構成


7.1.5.3. Cat.1 モデル搭載 ELS31-J ファイアーウォール設定 (Cat.1 モデル)

Cat.1 モデル搭載の LTE モデム ELS31-J は、デフォルトでファイアーウォールが有効となっており、外部からのアクセスが出来ないようになっております。

ELS31-J のファイアーウォール設定を変更したい場合、設定ファイル(/etc/atmark/els31.conf)を作成します。

設定ファイルの記載例として、サンプルファイル(/etc/atmark/els31.conf.example)がありますので、こちらをリネームまたはコピーしてご利用ください。

ファイアーウォールを有効にする場合は図7.18「ELS31-J ファイアーウォールを有効にする」 に示すとおり FIREWALL="enable" に設定します。

#!/bin/sh

FIREWALL="enable"

図7.18 ELS31-J ファイアーウォールを有効にする


無効にする場合は図7.19「ELS31-J ファイアーウォールを無効にする」に示すとおり FIREWALL="disable" に設定します。

#!/bin/sh

FIREWALL="disable"

図7.19 ELS31-J ファイアーウォールを無効にする


編集後、図7.20「ELS31-J ファイアーウォール設定の永続化」に示す設定ファイルの永続化を実施した後に Armadillo の再起動を行うことで ELS31-J のファイアーウォールの有効・無効を変更できます。

[armadillo ~]# persist_file /etc/atmark/els31.conf

図7.20 ELS31-J ファイアーウォール設定の永続化


ファイアーウォール設定を変更する必要がない場合は、図7.21「ELS31-J ファイアーウォール設定ファイルの削除」に示すとおり設定ファイル (/etc/atmark/els31.conf) を削除するか、図7.22「ELS31-J ファイアーウォール設定を行わない場合の設定ファイル」に示すとおり設定ファイル(/etc/atmark/els31.conf) の FIREWALL の行を # でコメントアウトしてください。

[armadillo ~]# persist_file -d /etc/atmark/els31.conf

図7.21 ELS31-J ファイアーウォール設定ファイルの削除


#!/bin/sh

#FIREWALL="enable"

図7.22 ELS31-J ファイアーウォール設定を行わない場合の設定ファイル


7.1.5.4. LTE モデム EMS31-J 省電力などの設定 (Cat.M1 モデル)

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

設定ファイルの記載例として、サンプルファイル(/etc/atmark/ems31-boot.conf.example)がありますので、こちらをリネームまたはコピーしてご利用ください。

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

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

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

表7.4 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.5「psm の tau と act-time に設定可能な値」に示します。disable にしない場合、tau (Periodic TAU cycle (T3412)) は act_time (Active time (T3324)) より大きい値にする必要があります。

表7.5 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.6「edrx の pcl と ptw に設定可能な値」に示します。disable にしない場合、pcl (Paging Cycle Length) は ptw (Paging Time Window eDRX) より大きい値にする必要があります。

表7.6 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.5. LTEのコネクションを作成する

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

表7.7 APN情報設定例

項目 設定

APN

[apn]

ユーザー名

[user]

パスワード

[password]

ネットワークデバイス

[wwan]


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

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

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

Thales 製 ELS31-J (Cat.1 モデル)

ttyCommModem

Thales 製 EMS31-J (Cat.M1 モデル)


[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.23 LTEのコネクションの作成


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

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

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

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


7.1.5.6. MCC/MNC を指定した LTE のコネクションを作成する (Cat.M1 モデルのみ)

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

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

Cat.1 モデルに搭載の LTE モデム ELS31-J はドコモ網のみに接続可能ですので、この設定は不要です。

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

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


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

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


[警告]

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

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

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

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

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


7.1.5.9. LTE の接続を確認する

ご利用になるサービスとの通信を検証する、ICMP に対応しているアドレス (8.8.8.8など) と PING 通信を行うなどの方法で LTE の接続を確認してください。

[armadillo ~]# ping -c 3 8.8.8.8 -I [network device]

図7.28 LTE の PING 確認


[network device] には、表7.1「ネットワークとネットワークデバイス」を参照し、ご使用の製品モデルで使用しているLTEのネットワークデバイスを指定してください。

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

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

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

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


1

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

2

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

7.1.5.11. LTE再接続サービス

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

Cat.1 モデルは初期状態でこのサービスが有効になっております。

[ティップ]

Cat.M1 モデルでは、LTE モデムの省電力動作のため、初期状態では LTE 再接続サービスを無効にしております。有効にする手順は、図7.36「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 モジュールの電源オン・オフを実施します。

Cat.1 モデルの場合、工場出荷状態で本サービスは有効化されており、システム起動時にサービスが自動的に開始されます。PING を実行する宛先は、初期設定では "8.8.8.8" です。

atmark-wwan-utils のバージョンが 1.5.0-r0 以降の場合は、設定ファイルは /etc/atmark/connection-recover.conf を使用します。

設定ファイルの記載例として、サンプルファイル(/etc/atmark/connection-recover.conf.example)がありますので、こちらをリネームまたはコピーしてご利用ください。

[ティップ]

atmark-wwan-utils 1.5.0-r0 以降、旧設定ファイル Cat.1 モデル:/etc/atmark/connection-recover/gsm-ttyACM0_connection-recover.conf、Cat.M1 モデル:/etc/atmark/connection-recover/gsm-ttyMux0_connection-recover.conf が存在する場合、/etc/atmark/connection-recover.conf よりも優先して設定ファイルとして使用します。

旧設定ファイルが不要である場合は、図7.30「再接続サービス 旧設定ファイルの削除」に示すとおりに削除してご利用ください。

[armadillo ~]# persist_file -d /etc/atmark/connection-recover/<設定ファイル名>

図7.30 再接続サービス 旧設定ファイルの削除


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

設定ファイルが存在しない場合は初期値で動作します。

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

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

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 再接続を試みます。


設定ファイル変更後、変更内容を永続化するには図7.31「LTE 再接続サービスの設定値を永続化する」に示すコマンドを実行してください。

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

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


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

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

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


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

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

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


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

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

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


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


1

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

2

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

3

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

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


1

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

2

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

3

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

7.1.5.12. 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.13. mmcli - 認識されているモデムの一覧を取得する

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

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

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


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

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

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.38 モデムの情報を取得する


[ティップ]

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

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

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


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

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

[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.40 回線情報を取得する


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.41 無線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.42 無線LANのコネクションが作成された状態


[注記]

NetworkManagerの仕様により、無線LANの接続にはランダムなMACアドレスが使用されます。搭載されている無線LANモジュール固有のMACアドレスを使用したい場合は、以下の例のようにNetworkManagerの設定を変更し、再起動を行ってください。

[armadillo ~]# echo "[device-mac-randomization]" > /etc/NetworkManager/conf.d/no-random-mac.conf
[armadillo ~]# echo "wifi.scan-rand-mac-address=no" >> /etc/NetworkManager/conf.d/no-random-mac.conf
[armadillo ~]# echo "[connection-mac-randomization]" >> /etc/NetworkManager/conf.d/no-random-mac.conf
[armadillo ~]# echo "wifi.cloned-mac-address=permanent" >> /etc/NetworkManager/conf.d/no-random-mac.conf
[armadillo ~]# persist_file /etc/NetworkManager/conf.d/no-random-mac.conf

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

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

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

[armadillo ~]# ping 192.0.2.20

図7.43 無線LANのPING確認


[ティップ]

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

7.1.7. 無線 LAN アクセスポイント (AP) として設定する

WLAN+BT コンボ搭載モデルの無線 LAN をアクセスポイント (以降 AP) として設定する方法を説明します。AP 設定は hostapd というソフトウェアと、 DNS/DHCP サーバである dnsmasq というソフトウェアを使用します。

hostapd と dnsmasq は Armadillo Base OS にデフォルトでインストール済みとなっているため、インストール作業は不要です。インストールされていない場合は、 Armadillo Base OS を最新バージョンに更新してください。

[警告]

アクセスポイントモード (AP) と ステーションモード (STA) の同時利用はできません。

7.1.7.1. bridge インターフェースを追加する

NetworkManager を使用し bridge インターフェース (br0) を追加します。同時に AP の IP アドレスも設定します。ここでは 192.0.2.1 を設定しています。

[armadillo ~]# nmcli con add type bridge ifname br0
[armadillo ~]# nmcli con mod bridge-br0 ipv4.method manual ipv4.address "192.0.2.1/24"
[armadillo ~]# nmcli con up bridge-br0
[armadillo ~]# persist_file /etc/NetworkManager/system-connections/bridge-br0.nmconnection 1

図7.44 bridge インターフェースを作成する


1

設定ファイルを永続化します。

また、NetworkManager のデフォルト状態では定期的に wlan0 のスキャンを行っています。スキャン中は AP の性能が低下するため wlan0 を NetworkManager の管理から外します。

[armadillo ~]# vi /etc/NetworkManager/conf.d/90_disable_wlan0.conf
[device_wlan0]
match-device=interface-name:wlan0
managed=0

[armadillo ~]# persist_file /etc/NetworkManager/conf.d/90_disable_wlan0.conf
[armadillo ~]# nmcli d set wlan0 managed no 1

図7.45 wlan0 インターフェースを NetworkManager の管理から外す


1

nmcli で NetworkManager をリスタートせずに設定します。

7.1.7.2. hostapd を設定する

hostapd の設定ファイルの雛形として用意してある /etc/hostapd/hostapd.conf.example をコピーして使用します。

[armadillo ~]# cp /etc/hostapd/hostapd.conf.example /etc/hostapd/hostapd.conf
[armadillo ~]# vi /etc/hostapd/hostapd.conf
hw_mode=a 1
channel=44 2
ssid=myap 3
wpa_passphrase=myap_pass 4
interface=wlan0 5
bridge=br0
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
driver=nl80211
country_code=JP
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
disassoc_low_ack=1
preamble=1
wmm_enabled=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
ieee80211ac=1
ieee80211ax=1
ieee80211n=1
ieee80211d=1
ieee80211h=1
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2

[armadillo ~]# persist_file /etc/hostapd/hostapd.conf 6
[armadillo ~]# rc-service hostapd start 7
[armadillo ~]# rc-update add hostapd 8
[armadillo ~]# persist_file /etc/runlevels/default/hostapd 9

図7.46 hostapd.conf を編集する


1

5GHz であれば a を、2.4GHz であれば g を設定します。

2

使用するチャンネルを設定します。

3

子機から接続するための任意の SSID を設定します。この例では myap を設定しています。

4

子機から接続するための任意のパスフレーズを設定します。この例では myap_pass を設定しています。

5

Armadillo-IoT ゲートウェイ A6E では interface には wlan0 を設定します。

6

設定ファイルを永続化します。

7

hostapd を起動します。

8

Armadillo 起動時に hostapd が自動的に起動されるようにします。

9

hostapd 自動起動の設定を永続化します。

7.1.7.3. dnsmasq を設定する

dnsmasq の設定ファイルを以下の内容で作成し /etc/dnsmasq.d/ 下に配置します。ファイル名は任意ですが、拡張子は .conf としてください。ここでは dhcp.conf としています。

[armadillo ~]# vi /etc/dnsmasq.d/dhcp.conf
interface=br0
bind-dynamic
dhcp-range=192.0.2.10, 192.0.1.2, 24h 1

[armadillo ~]# persist_file /etc/dnsmasq.d/dhcp.conf 2
[armadillo ~]# rc-service dnsmasq restart 3

図7.47 dnsmasq の設定ファイルを編集する


1

子機に割り当てる IP アドレスの範囲とリース期間を設定します。

2

設定ファイルを永続化します。

3

dnsmasq を再起動します。

hostapd と dnsmasq の起動完了後、子機から hostapd.conf で設定した SSID とパスフレーズで接続できます。

7.1.8. BT

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

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

[armadillo ~]# apk add bluez

図7.48 bluezのインストール


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

[armadillo ~]# service bluetooth start

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


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

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

図7.51 bluetoothctl スキャン停止


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

[bluetooth]# exit

図7.52 bluetoothctl 終了


7.2. ストレージ

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

表7.10 ストレージデバイス

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

オンボード eMMC

/dev/mmcblk0

/dev/mmcblk0p1

オンボード

オンボード eMMC (GPP)

/dev/mmcblk0gp2

なし

オンボード

オンボード eMMC (GPP)

/dev/mmcblk0gp3

なし

オンボード

SD/SDHC/SDXCカード [a]

/dev/mmcblk1

/dev/mmcblk1p1

microSDスロット(CON1)

USBメモリ

/dev/sd* [b]

/dev/sd*1

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

[a] WLAN 搭載モデルでは SD のストレージとして使用はできません。量産用インストールディスクを WLAN 搭載モデルで作成する場合は、「量産用インストールディスクのイメージファイルを USB メモリに書き出す」 をご覧ください。

[b] 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.11「eMMCのGPPの用途」に示します。

表7.11 eMMCのGPPの用途

ディスクデバイス 用途

/dev/mmcblk0gp0

ライセンス情報等の為の予約領域

/dev/mmcblk0gp1

動作ログ領域

/dev/mmcblk0gp2

動作ログ予備領域[a]

/dev/mmcblk0gp3

ユーザー領域

[a] 詳細は「ログ用パーティションについて」を参照ください。


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

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

[ティップ]

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

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

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

mount [-t fstype] device dir

図7.53 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.54 ストレージのマウント


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

[armadillo ~]# umount /media

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


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

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

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


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

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

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


7.3. LED

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

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

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


[注記]

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

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

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

図7.59 LEDを消灯させる


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

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

図7.60 LEDの状態を表示する


7.3.2. トリガを使用する

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

表7.13 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.61 対応している 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.62 LEDのトリガにtimerを指定する


7.4. ユーザースイッチ

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

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

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

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

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.63 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 1675319542.225053, type 1 (EV_KEY), code 148 (KEY_PROG1), value 1 1
Event: time 1675319542.225053, -------------- SYN_REPORT ------------
Event: time 1675319542.475046, type 1 (EV_KEY), code 148 (KEY_PROG1), value 0 2
Event: time 1675319542.475046, -------------- SYN_REPORT ------------

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


1

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

2

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

7.5. 温度センサー

Armadillo-IoT ゲートウェイ A6E の温度センサーは、i.MX6ULL の TEMPMON(Temperature Monitor)を利用しています。

起動直後の設定では、i.MX6ULL の測定温度が 100℃以上になった場合、Linuxカーネルが /sbin/poweroff コマンドを実行し、システムを停止します。

7.5.1. 温度を取得する

/sys/class/thermal/thermal_zone0/temp ファイルの値を読み出すことによって、i.MX6ULL の測定温度を取得することができます。

[armadillo ~]# cat /sys/class/thermal/thermal_zone0/temp
50000 1

図7.65 i.MX6ULL の測定温度を取得する


1

温度はミリ°C の単位で表示されます。この例では 50.000°C を示しています。

7.6. RS485

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

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

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

ピン番号 ピン名

10

DATA+

11

DATA-

12

GND


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

7.7. 接点入力

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

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

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

ピン番号 ピン名 GPIOチップ GPIO番号

4

DI1

gpiochip5

0

5

DI2

gpiochip5

1


7.7.1. 入力レベルの確認

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

[armadillo ~]# gpioget gpiochip5 [GPIO]
0

図7.66 入力レベルの確認


[ティップ]

接点入力に何も接続していない(開放状態)場合、取得できる入力レベルは "1" (HIGH レベル)となります。

[警告]

接点入力機能は、デフォルトの状態ではゲートウェイコンテナが使用しています。そのため、入力レベルを確認するには「コンテナの終了」の手順でゲートウェイコンテナを終了させる必要があります。

7.8. 接点出力

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

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

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

ピン番号 ピン名 GPIOチップ GPIO番号

6

DO1A

gpiochip5

2

7

DO1B

gpiochip5

2

8

DO2A

gpiochip5

3

9

DO2B

gpiochip5

3


7.8.1. 出力レベルの設定

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

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

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


7.8.2. 接点入力、接点出力をループバックして確認する

ピン1とピン3、ピン2とピン6、ピン4とピン7をそれぞれ接続することで、DI1、DO1をループバックして確認することが可能です。

[armadillo ~]# gpioget gpiochip5 0
0
[armadillo ~]# gpioset gpiochip5 2=1    # DO1の出力レベルを "1" に設定する
[armadillo ~]# gpioget gpiochip5 0      # DI1の入力レベルが "1" に変化する
1

図7.68 DI1、DO1をループバックした場合のコマンド実行例


[警告]

接点出力機能は、デフォルトの状態ではゲートウェイコンテナが使用しています。そのため、出力レベルを確認するには「コンテナの終了」の手順でゲートウェイコンテナを終了させる、または表11.5「[DO1,DO2] 設定可能パラメータ」で "disable" を設定する必要があります。

7.9. RTC

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

7.9.1. RTCに時刻を設定する

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

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

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

フィールド意味

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.69 システムクロックを設定


システムクロックを設定後、ハードウェアクロックを 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.70 ハードウェアクロックを設定


1

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

2

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

3

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

[ティップ]

インターネットに接続できている場合は、chronyd により自動的に日時設定が行われます。そのため、手動で日時設定を行う必要はありません。



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