第6章 動作確認方法

6.1. 動作確認を行う前に

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

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

6.2. ネットワーク

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

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

Armadillo-IoT は、複数の種類のネットワークに接続することができます。接続可能なネットワークとLinuxから使用するネットワークデバイスの対応を次に示します。

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

ネットワークネットワークデバイス備考
有線LANeth0 
無線WLANawlan0Armadillo-WLAN(AWL13) 搭載
3Gusb0Sierra Wireless製 MC8090 搭載

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

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

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

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

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

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet dhcp
	pre-up 3g-connect
	post-down 3g-disconnect

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


6.2.3. 有線LAN

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

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

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

[armadillo ~]# ifup eth0

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


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

[armadillo ~]# ifdown eth0

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


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

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

[警告]

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

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

[注記]

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

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

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

表6.3 有線LAN固定IPアドレス設定例

項目設定
IPアドレス192.0.2.10
ネットマスク255.255.255.0
ネットワークアドレス192.0.2.0
ブロードキャストアドレス192.0.2.255
デフォルトゲートウェイ192.0.2.1

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

auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.0.2.10
netmask 255.255.255.0
network 192.0.2.0
broadcast 192.0.2.255
gateway 192.0.2.1
iface usb0 inet dhcp
	pre-up 3g-connect
	post-down 3g-disconnect

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


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

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

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

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

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet dhcp
	pre-up 3g-connect
	post-down 3g-disconnect

図6.5 DHCP設定


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

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

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

[armadillo ~]# ping 192.0.2.20

図6.6 有線LANのPING確認


[注記]

awlan0 または usb0 を使用してネットワークに接続している場合、ネットワーク通信に eth0 が使用されない場合があります。確実に eth0 を使用させる場合は、事前に eth0 以外のネットワークインターフェースを無効化してください。

6.2.4. 無線LAN

ここでは、Armadillo-IoT に搭載されている無線LANモジュール「Armadillo-WLANモジュール(AWL13)」の使用方法について説明します。

6.2.4.1. WLAN インターフェースの有効化

Armadillo-WLANモジュール(AWL13)が接続されている WLAN インターフェース(ベースボード:CON5)と SD インターフェース(ベースボード:CON4)は、共通の信号が接続されています。工場出荷状態のソフトウェアでは、デフォルトで SD インターフェースが有効化されているため、無線LANモジュールを利用することができません。

WLAN インターフェースを有効化するためには、図6.7「無線LANモジュールの有効化」のようにコマンドを実行します。事前に SD インターフェース(ベースボード:CON4)から SD カードを取り外しておく必要があります。

[armadillo ~]# sd-awlan-sel awlan
select to AWLAN
mmc1: new high speed SDIO card at address 02bd
awl13: RX Transmission mode SDINT HT
mmc1: registerd "awl13" device as awlan0
awl13: WID=0x5, STATUS CODE=0x0
awl13: disconnected!
awl13: device ready!
awl13: MAC is 00:1d:12:cf:28:ae
awl13: WID=0x5, STATUS CODE=0x1
awl13: WID=0x5, STATUS CODE=0x1

図6.7 無線LANモジュールの有効化


WLAN インターフェースを有効化すると、Armadillo-WLANモジュール(AWL13)のLinuxカーネルモジュールおよびファームウェアのロードが自動的に行われます。

[ティップ]

Armadillo-WLANモジュール(AWL13)のファームウェアは、"STA"(ステーションおよびアドホックモード用)と"AP"(アクセスポイントモード用)の2種類が用意されています。工場出荷状態のソフトウェアでは、"STA"が自動的にロードされるよう設定されています。

"AP"を自動的にロードするように設定するには図6.7「無線LANモジュールの有効化」を実行する前に、次のように設定ファイル/etc/config/awl13.confを編集します。

[armadillo ~]# vi /etc/config/awl13.conf
#AWL13_MODE=STA
AWL13_MODE=AP

設定ファイルをコンフィグ領域に保存する方法については、7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。

6.2.4.2. 手動で無線LANインターフェースを有効化する

コマンドを入力して無線設定および無線LANインターフェースの有効化を行う方法について説明します。事前に「WLAN インターフェースの有効化」を参照してWLANインターフェースを有効化しておく必要があります。

ここでは例として、WPA2-PSK(AES)のアクセスポイントに接続します。WPA2-PSK(AES)以外のアクセスポイントへの接続方法など、AWL13のより詳細な情報については、「Armadillo-WLAN(AWL13)ソフトウェアマニュアル」を参照してください。

WPA2-PSK(AES)のアクセスポイントに接続する場合の設定例を次に示します。以降の説明では、アクセスポイントのESSIDを[essid]、パスフレーズを[passphrase]と表記します。

[armadillo ~]# iwconfig awlan0 essid [essid]
[armadillo ~]# iwpriv awlan0 set_psk [passphrase]
[armadillo ~]# iwpriv awlan0 set_cryptmode WPA2-AES
[armadillo ~]# iwconfig awlan0 mode managed

上記コマンドを実行すると、無線設定が完了します。無線LANインターフェースのIPアドレスを 192.0.2.1 に設定して有効化するには、次のようにコマンドを実行します。

[armadillo ~]# ifconfig awlan0 192.0.2.1 up

図6.8 ネットワークインターフェース(awlan0)のIPアドレス設定と有効化


6.2.4.3. 自動で無線LANインターフェースを有効化する

Armadilloの起動時に、自動的に無線LANインターフェースの有効化を行う方法について説明します。無線LANの設定をコンフィグ領域に保存することにより、Armadilloを再起動するたびに設定を行う必要が無くなります。

Armadilloの起動時に、自動的に WLAN インターフェースを有効化するために/etc/config/rc.localに「sd-awlan-sel awlan」を追加します。

[armadillo ~]# vi /etc/config//etc/config/rc.local
        echo -n "Starting vinmonitor: "
        /etc/config/vinmonitor &
        check_status
fi

sd-awlan-sel awlan  1

1

WLAN インターフェースを有効化します

WPA2-PSK(AES)のアクセスポイントに接続する場合の/etc/config/interfacesの編集例を次に示します。

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

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet dhcp
	pre-up 3g-connect
	post-down 3g-disconnect
iface awlan0 inet dhcp  1
      pre-up iwpriv awlan0 set_psk [passphrase]  2
      pre-up iwpriv awlan0 set_cryptmode WPA2-AES  3
      pre-up iwconfig awlan0 essid [essid]  4
      wireless-mode managed  5

1

awlan0をDHCPに設定します

2

パスフレーズを[passphrase]に設定します

3

暗号化方式をWPA2-PSK(AES)に設定します

4

ESSIDを[essid]に設定します

5

接続モードをインフラストラクチャモード(STA)に設定します

Armadilloの起動時に自動的にawlan0が有効化されるようにするには、/etc/config/awl13-firmware-load.shの最後の行に「ifup awlan0」を追加します。

[armadillo ~]# vi /etc/config/awl13-firmware-load.sh
[ -f /sys/module/awl13_usb/$WLAN/firmware ] && \
cat $FIRMWARE_USB > /sys/module/awl13_usb/$WLAN/firmware
iwpriv $WLAN fwload
iwpriv $WLAN fwsetup

ifup awlan0  1

1

/etc/config/interfacesの設定でawlan0を有効化します

追加後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。

[armadillo ~]# flatfsd -s

Armadilloを再起動すると、自動的に無線LANインターフェースが有効化されます。

[注記]

Armadilloの再起動の前に、SD インターフェース(ベースボード:CON4)から SD カードを取り外しておく必要があります。

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

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

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

[armadillo ~]# ping 192.0.2.20

図6.9 無線LANのPING確認


[注記]

eth0 または usb0 を使用してネットワークに接続している場合、ネットワーク通信に awlan0 が使用されない場合があります。確実に awlan0 を使用させる場合は、事前に awlan0 以外のネットワークインターフェースを無効化してください。

6.2.5. 3G

ここでは、Armadillo-IoT に搭載されている 3Gモジュール「Sierra Wireless製 MC8090」の使用方法について説明します。

6.2.5.1. 3G データ通信設定を行う前に

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

[警告]

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

microSIM(UIMカード)は、次のようにArmadillo-IoTに取り付けます。

microSIMの取り付け

図6.10 microSIMの取り付け


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

  • APN

  • ユーザー名

  • パスワード

  • 認証方式(PAP または CHAP)

  • PDP Type(IP または PPP)

6.2.5.2. 3Gモジュールを制御するソフトウェア

3Gモジュールは、TTY デバイスファイル/dev/ttyUSB3から制御を行うことができます。

/dev/ttyUSB3 から、対話形式での AT コマンドが利用できます。AT コマンドを利用すると、接続先やユーザ名、パスワードの設定などを行うことができます。

Armadillo-IoT のソフトウェアでは、AT コマンドを自動実行するシェルスクリプトがインストールされています。このスクリプトを使用して接続先設定とパケット接続を行うと、通常のネットワークインターフェースとして使用することができるようになります。

6.2.5.3. APN設定方法

3GモジュールにAPN情報を設定します。APN設定には3g-set-apコマンドを利用します。3g-set-apコマンドのヘルプは次の通りです。

[armadillo ~]# 3g-set-ap
usage: /usr/bin/3g-set-ap [apn] [user] [passwd] [auth_type] [pdp_type]
   apn       ... access point name
   user      ... user name
   passwd    ... pass word
   auth_type ... NON/PAP/CHAP(default)
   pdp_type  ... IP(default)/PPP

図6.11 3g-set-apコマンドのヘルプ


表6.4「APN情報設定例」の内容に設定する例を、図6.12「APN設定例」に示します。

表6.4 APN情報設定例

項目設定
APN[apn]
ユーザー名[user]
パスワード[password]
認証方式PAP
PDP TypeIP

[armadillo ~]# 3g-set-ap [apn] [user] [password] PAP IP

図6.12 APN設定例


APN情報は、3Gモジュール内の不揮発性メモリに保存されます。そのためArmadillo-IoTの電源を切断しても再設定を行う必要はありません。

6.2.5.4. 3Gインターフェースの有効化、無効化

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

[armadillo ~]# ifup usb0

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


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

[armadillo ~]# ifdown usb0

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


[注記]

APN情報が適切に設定されていない場合、3Gインターフェースを有効化することができません。

[armadillo ~]# ifup usb0
3G connect
error

上記のように"error"と表示された場合は、APNの設定を確認してください。

6.2.5.5. 自動で3Gインターフェースを有効化する

Armadilloの起動時に、自動的に3Gインターフェースの有効化を行う方法について説明します。

/etc/config/interfacesを、次のように編集します。

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

auto lo eth0 usb0 1
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet dhcp
        pre-up 3g-connect
        post-down 3g-disconnect

1

auto 節に usb0 を追加します。

追加後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。

[armadillo ~]# flatfsd -s

Armadilloを再起動すると、自動的に3Gインターフェースが有効化されます。

6.2.5.6. 3Gの接続を確認する

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

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

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

図6.15 3GのPING確認


[注記]

eth0 または awlan0 を使用してネットワークに接続している場合、ネットワーク通信に usb0 が使用されない場合があります。確実に usb0 を使用させる場合は、事前に usb0 以外のネットワークインターフェースを無効化してください。

6.2.5.7. microSIMから電話番号を取得する

microSIM(UIMカード)から電話番号を取得するには、次のようにコマンドを実行します。

[armadillo ~]# 3g-phone-num
[number] 1

1

11桁の電話番号が表示されます。

図6.16 microSIMからの電話番号取得


[注記]

microSIMが適切に接続されていない場合、電話番号を取得することができません。

[armadillo ~]# 3g-phone-num
error

上記のように"error"と表示された場合は、図6.10「microSIMの取り付け」を参照してmicroSIMの接続を確認してください。

6.2.5.8. 3Gモジュールの温度を取得する

3Gモジュール内蔵の温度センサから温度を取得するには、次のようにコマンドを実行します。

[armadillo ~]# 3g-temp
30 1

1

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

図6.17 3Gモジュールからの温度取得


6.2.5.9. 3Gモジュールの高度な設定

本書で紹介していない高度な設定を行うために、直接 AT コマンドを利用する方法について説明します。例として、ATIコマンドを実行し、3Gモジュールの情報を表示する手順を次に示します。

手順6.1 3Gモジュールの情報を表示する

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

    [armadillo ~]$ tip -l /dev/ttyUSB3 -s 115200
    Connected.
  2. ATIコマンドを実行すると、3Gモジュールの情報が表示されます。

    ATI
    Manufacturer: Sierra Wireless, Incorporated
    Model: MC8090
    Revision: P1_0_0_23AP R3272 CNSZXD00000132 2014/05/05 17:34:31
    IMEI: 013087000546434
    IMEI SV: 10
    FSN: CEB0704032110
    3GPP Release 6
    +GCAP: +CGSM,+DS,+ES
    
    
    OK
  3. tipを終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。

    Disconnected.
    [armadillo ~]$ 

その他の AT コマンドについては Sierra Wireless製ドキュメントを参照してください。ドキュメントのダウンロードには、ユーザー登録が必要です。

[注記]

MDM6200(MC8090のチップセット)に対応した AT コマンドを実行することができます。

6.2.6. DNSサーバー

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

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

図6.18 DNSサーバーの設定


[ティップ]

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

6.2.7. ファイアーウォール

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

[armadillo ~]# iptables --list

図6.19 iptables


6.2.8. ネットワークアプリケーション

工場出荷イメージで利用することができるネットワークアプリケーションについて説明します。

[注記]

ATDEとArmadilloのネットワーク設定がデフォルト状態であることを想定して記述しています。ネットワーク設定を変更している場合は適宜読み換えてください。

6.2.8.1. TELNET

ATDEなどのPCからネットワーク経由でログインし、リモート操作することができます。ログイン可能なユーザを次に示します。

表6.5 TELNETでログイン可能なユーザ

ユーザ名パスワード
guest(なし)

TELNETを使用してATDEからArmadilloにリモートログインする場合の例を、次に示します。

[ATDE ~]$ telnet 192.0.2.10  1
Trying 192.0.2.10...
Connected to 192.0.2.10.
Escape character is '^]'.

atmark-dist v1.36.0 (AtmarkTechno/Armadillo-IoTG-Std)
Linux 2.6.26-at21 [armv5tejl arch]

armadillo-iotg login: guest 2
[guest@armadillo ~]$
[guest@armadillo ~]$ su 3
Password:  4
[root@armadillo ~]#
[root@armadillo ~]# exit 5
[guest@armadillo ~]$ exit 6
Connection closed by foreign host.
[ATDE ~]$ 

1

telnetの引数にArmadilloのIPアドレスを指定します。

2

"guest"と入力するとログインすることができます。パスワードの入力は不要です。

3

特権ユーザーとなる場合には"su"コマンドを実行します。

4

特権ユーザーのデフォルトパスワードは"root"です。

5

特権ユーザーからguestユーザーに戻る場合は、"exit"と入力します

6

telnetを終了するにはもう一度"exit"を入力します

図6.20 telnetでリモートログイン


6.2.8.2. FTP

ATDEなどのPCからネットワーク経由でファイル転送することができます。次に示すユーザでログインすることができます。

表6.6 ftpでログイン可能なユーザ

ユーザ名パスワード
ftp(なし)

ftpを使用してATDEからArmadilloにファイルを転送する場合の例を、次に示します。

[ATDE ~]$ ls -l file
-rw-r--r-- 1 atmark atmark 1048576 Jan 1 12:00 file
[ATDE ~]$ ftp 192.0.2.10  1
Connected to 192.0.2.10.
220 localhost FTP server (GNU inetutils 1.4.1) ready.
Name (192.0.2.10:atmark): ftp
331 Guest login ok, type your name as password.
Password: 2
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub 3
250 CWD command successful.
ftp> put file 4
local: file remote: file
200 PORT command sucessful.
150 Opening BINARY mode data connection for 'file'.
226 Transfer complete.
1048576 bytes sent in 0.14 secs (7399.5 kB/s)
ftp> quit 5
221 Goodbye.
[ATDE ~]$ 

1

ftpの引数にArmadilloのIPアドレスを指定します。

2

ftpユーザにパスワードが設定されていないためEnterキーを入力します。

3

ファイル転送することができるpubディレクトリに移動します。

4

ファイルをアップロードします。ダウンロードする場合は"get"コマンドを使用します。

5

ftpを終了する場合は"quit"と入力します。

図6.21 ftpでファイル転送


ATDEからArmadilloにファイルをアップロードすると、/home/ftp/pub/ディレクトリ以下にファイルが作成されています。ダウンロードする場合も、同じディレクトリにファイルを配置してください。

[armadillo ~]# cd /home/ftp/pub/
[armadillo /home/ftp/pub]# ls
file

図6.22 Armadillo上でアップロードされたファイルを確認


6.2.8.3. HTTPサーバー

Armadilloでは、HTTPサーバーが動作しています。ATDEなどのPCのWebブラウザからArmadilloのURL (http://[ArmadilloのIPアドレス]/ [9] または、http://armadillo-iotg.local/)にアクセスすると、Armadilloのトップページ(index.html)が表示されます。

Armadilloトップページ

図6.23 Armadilloトップページ


6.3. ストレージ

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

表6.7 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティションインターフェース
SD/SDHC/SDXCカード/dev/mmcblk*[a]/dev/mmcblk*p1SDインターフェース(ベースボード:CON4)
microSD/microSDHC/microSDXCカード/dev/mmcblk*[b]/dev/mmcblk*p1SDインターフェース(Armadillo-410:CON1)
USBフラッシュメモリ/dev/sd*[c]/dev/sd*1USB ホストインターフェース(ベースボード:CON7)

[a] microSD/microSDHC/microSDXCカードを接続した場合は、認識された順に mmcblk0 mmcblk1 となります。

[b] SD/SDHC/SDXCカード を接続した場合は、認識された順に mmcblk0 mmcblk1 となります。

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


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

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

[注記]

SD インターフェース(ベースボード:CON4)と WLAN インターフェース(ベースボード:CON5)は、共通の信号が接続されています。工場出荷状態のソフトウェアでは、デフォルトで SD インターフェースが有効化されています。

「WLAN インターフェースの有効化」の手順を実行してWLAN インターフェースが有効化されている場合は、次のように SD インターフェースを有効化してください。

[armadillo ~]# sd-awlan-sel sd
select to SD
[ティップ]

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

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

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

mount -t fstype device dir

図6.24 mountコマンド書式


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

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

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

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

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

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


[注記]

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

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

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

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

[armadillo ~]# umount /mnt

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


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

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

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

[armadillo ~]# fdisk /dev/mmcblk0

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

Command (m for help): d
Selected partition 1

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

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

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

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

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


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

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

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


6.4. LED

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

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

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

LEDクラスディレクトリインターフェースデフォルトトリガ
/sys/class/leds/led1/ベースボード:LED3default-on
/sys/class/leds/led2/ベースボード:LED2default-on
/sys/class/leds/led3/ベースボード:LED4none
/sys/class/leds/led4/ベースボード:LED5none
/sys/class/leds/yellowArmadillo-410:LED5none

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

6.4.1. LEDを点灯/消灯する

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

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

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

図6.29 LEDを点灯させる


[ティップ]

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

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

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

図6.30 LEDを消灯させる


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

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

図6.31 LEDの状態を表示する


6.4.2. トリガを使用する

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

表6.9 triggerの種類

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

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

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

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


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

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

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


6.5. RTC

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

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

6.5.1. RTCに時刻を設定する

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

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

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

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

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

[armadillo ~]# date 1
Sat Jan  1 09:00:00 JST 2000
[armadillo ~]# date 121912342014.56 2
Fri Dec 19 12:34:56 JST 2014
[armadillo ~]# date 3
Fri Dec 19 12:34:57 JST 2014

1

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

2

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

3

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

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


[ティップ]

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

[armadillo ~]# ntpclient -h [NTP SERVER] -s
41976 29468.239   24954.0      0.8   14070.6      0.0         0
[armadillo ~]# date
Fri Dec 19 12:34:57 JST 2014

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

[armadillo ~]# hwclock 1
Sat Jan  1 00:00:00 2000  0.000000 seconds
[armadillo ~]# hwclock --utc --systohc 2
[armadillo ~]# hwclock --utc 3
Fri Dec 19 12:35:01 2014  -0.807757

1

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

2

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

3

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

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


6.6. GPIO

Armadillo-IoT のGPIOは、generic GPIOとして実装されています。GPIOクラスディレクトリ以下のファイルによってGPIOの制御を行うことができます。

アドオンインターフェース(ベースボード:CON1, ベースボード:CON2)のGPIOと、GPIOクラスディレクトリの対応を次に示します。

表6.11 アドオンインターフェースのGPIOディレクトリ

ピン番号GPIOクラスディレクトリ
CON1 3ピン, CON2 24ピン/sys/class/gpio/gpio2
CON1 4ピン, CON2 25ピン/sys/class/gpio/gpio3
CON1 5ピン, CON2 33ピン/sys/class/gpio/gpio26
CON1 6ピン, CON2 32ピン/sys/class/gpio/gpio78
CON1 7ピン, CON2 41ピン/sys/class/gpio/gpio118
CON1 8ピン, CON2 40ピン/sys/class/gpio/gpio119
CON1 9ピン, CON2 7ピン, CON2 39ピン/sys/class/gpio/gpio120
CON1 10ピン, CON2 8ピン, CON2 38ピン/sys/class/gpio/gpio121
CON1 11ピン, CON2 50ピン/sys/class/gpio/gpio117
CON1 12ピン, CON2 16ピン, CON2 37ピン/sys/class/gpio/gpio27
CON1 13ピン, CON2 17ピン, CON2 36ピン/sys/class/gpio/gpio28
CON1 14ピン, CON2 12ピン, CON2 18ピン, CON2 35ピン/sys/class/gpio/gpio29
CON1 15ピン, CON2 13ピン, CON2 19ピン, CON2 34ピン/sys/class/gpio/gpio30
CON1 16ピン, CON2 49ピン/sys/class/gpio/gpio61
CON1 17ピン, CON2 48ピン/sys/class/gpio/gpio62
CON1 18ピン, CON2 47ピン/sys/class/gpio/gpio63
CON1 19ピン, CON2 46ピン/sys/class/gpio/gpio64
CON1 20ピン, CON2 20ピン, CON2 45ピン/sys/class/gpio/gpio65
CON1 21ピン, CON2 21ピン, CON2 44ピン/sys/class/gpio/gpio66
CON1 22ピン, CON2 22ピン, CON2 43ピン/sys/class/gpio/gpio67
CON1 23ピン, CON2 23ピン, CON2 42ピン/sys/class/gpio/gpio68
CON1 24ピン/sys/class/gpio/gpio0
CON1 25ピン/sys/class/gpio/gpio1
CON1 32ピン/sys/class/gpio/gpio5
CON1 33ピン/sys/class/gpio/gpio4
CON1 42ピン/sys/class/gpio/gpio21
CON1 43ピン/sys/class/gpio/gpio20
CON1 44ピン/sys/class/gpio/gpio19
CON1 45ピン/sys/class/gpio/gpio51
CON1 46ピン/sys/class/gpio/gpio50
CON1 47ピン/sys/class/gpio/gpio49
CON1 48ピン/sys/class/gpio/gpio48
CON1 49ピン/sys/class/gpio/gpio47
CON1 50ピン/sys/class/gpio/gpio25
CON1 51ピン/sys/class/gpio/gpio23
CON1 52ピン/sys/class/gpio/gpio22
CON1 53ピン/sys/class/gpio/gpio24

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

6.6.1. GPIOクラスディレクトリを作成する

/sys/class/gpio/exportにGPIO番号を書き込むことによって、GPIOクラスディレクトリを作成することができます。

アドオンインターフェース(ベースボード:CON1) 24ピンに対応するGPIOクラスディレクトリを作成する例を次に示します。

[armadillo ~]# echo 0 > /sys/class/gpio/export
[armadillo ~]# ls /sys/class/gpio/gpio0/
direction  edge       power/     subsystem@ uevent     value

図6.36 GPIOの入力レベルを取得する


[ティップ]

作成済みのGPIOクラスディレクトリを削除するには、/sys/class/gpio/unexportにGPIO番号を書き込みます。

[armadillo ~]# echo 0 > /sys/class/gpio/unexport
[armadillo ~]# ls /sys/class/gpio/gpio0/
ls: /sys/class/gpio/gpio0/: No such file or directory

6.6.2. 入出力方向を変更する

GPIOディレクトリ以下のdirectionファイルへ値を書き込むことによって、入出力方向を変更することができます。directionに書き込む有効な値を次に示します。

表6.12 directionの設定

設定説明
high入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはHIGHレベルになります。
out入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはLOWレベルになります。
lowoutを設定した場合と同じです。
in入出力方向をINPUTに設定します。入力レベルの取得を行うことができますが設定はできません。

[armadillo ~]# echo in > /sys/class/gpio/[GPIO]/direction

図6.37 GPIOの入出力方向を設定する(INPUTに設定)


[armadillo ~]# echo out > /sys/class/gpio/[GPIO]/direction

図6.38 GPIOの入出力方向を設定する(OUTPUTに設定)


6.6.3. 入力レベルを取得する

GPIOディレクトリ以下のvalueファイルから値を読み出すことによって、入力レベルを取得することができます。"0"はLOWレベル、"1"はHIGHレベルを表わします。入力レベルの取得は入出力方向がINPUT, OUTPUTのどちらでも行うことができます。入出力方向がOUTPUTの時に読み出される値は、GPIOピンの状態ではなく、自分がvalueファイルに書き込んだ値となります。

[armadillo ~]# cat /sys/class/gpio/[GPIO]/value
0

図6.39 GPIOの入力レベルを取得する


6.6.4. 出力レベルを設定する

GPIOディレクトリ以下のvalueファイルへ値を書き込むことによって、出力レベルを設定することができます。"0"はLOWレベル、"0"以外はHIGHレベルを表わします。出力レベルの設定は入出力方向がOUTPUTでなければ行うことはできません。

[armadillo ~]# echo 1 > /sys/class/gpio/[GPIO]/value

図6.40 GPIOの出力レベルを設定する


6.7. ユーザースイッチ

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

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

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

ユーザースイッチインプットデバイスファイルイベントコード
ベースボード:SW1/dev/input/event02 (1)
ベースボード:SW2/dev/input/event13 (2)
ベースボード:SW34 (3)


[警告]

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

6.7.1. イベントを確認する

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

[armadillo ~]# evtest /dev/input/event1
Input driver version is 1.0.0
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys-polled"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 3 (2)
    Event code 4 (3)
Testing ... (interrupt to exit)
Event: time 946704238.665631, type 1 (Key), code 3 (2), value 1
Event: time 946704238.665651, -------------- Report Sync ------------ 1
Event: time 946704238.785610, type 1 (Key), code 3 (2), value 0
Event: time 946704238.785623, -------------- Report Sync ------------ 2
                 :
[armadillo ~]#

1

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

2

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

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


6.8. 温度センサ

Armadillo-IoT には、温度センサが実装されています。基板周辺温度の取得や、温度変化を監視することができます。

6.8.1. 温度を取得する

/sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0048/temp1_inputファイルを値を読み出すことによって、現在の基板周辺温度を取得することができます。

[armadillo ~]# cat /sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0048/temp1_input
30000 1

1

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

図6.42 基板周辺温度を取得する


6.8.2. 温度を監視する

thermaltriggerコマンドを利用して、指定した温度になった場合に任意のコマンドを実行させることができます。

[警告]

thermaltriggerを複数起動することはできません。「thermalmonitor」に示すthermalmonitorコマンドも、内部的にthermaltriggerを起動しています。

thermaltriggerコマンドのヘルプは次の通りです。

[armadillo ~]# thermaltrigger
Usage: thermaltrigger -a|-b THRESHOLD COMMAND [ARGS]
Options:
  -a, --above=THRESHOLD
      Execute the program COMMAND when the detected temperature is equal
      to or above the THRESHOLD.
  -b, --below=THRESHOLD
      Execute the program COMMAND when the detected temperature is equal
      to or below the THRESHOLD.
TEMPERATURE: Range: -55000 - 125000

図6.43 thermaltriggerコマンドのヘルプ


温度が60000ミリ°C(60°C)以上になった場合に、ベースボード:LED2を点灯させる例を次に示します。

[armadillo ~]# thermaltrigger -a 60000 echo 1 > /sys/class/leds/led2/brightness

図6.44 thermaltriggerコマンド例


[ティップ]

thermaltriggerコマンドのログは/var/log/messagesファイルに出力されます。

[armadillo ~]# cat /var/log/messages
                 :
Dec 19 12:34:59 (none) daemon.info thermaltrigger[1131]: Waiting for 60000 millidegrees Celsius or above.  1
Dec 19 12:34:59 (none) daemon.info thermaltrigger[1131]: exceeded the threshold. executing command.  2

1

指定した温度(60000ミリ°C)以上になることを待機します。

2

指定した温度に達したのでコマンドを実行します。

6.9. ADコンバーター

Armadillo-IoT には、ADコンバーターが実装されています。電源電圧の取得や、電圧の変化を監視することができます。

6.9.1. 電源電圧を取得する

電源電圧は、分圧されてADコンバーターへ入力されています。電源電圧を取得するためには、まずADコンバーターへの入力電圧を取得する必要があります。

/sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0054/valueファイルを値を読み出すことによって、現在のADコンバーターへの入力電圧を取得することができます。

[armadillo ~]# cat /sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0054/value
1958 1

1

電圧は mV の単位で表示されます。この例では 1.958V を示しています。

図6.45 ADコンバーターへの入力電圧を取得する


ADコンバーターへの入力電圧から、電源電圧を求める計算式を次に示します。

[電源電圧] = [ADコンバーターへの入力電圧] × (200 + 39) ÷ 39

図6.46 電源電圧の計算式


図6.45「ADコンバーターへの入力電圧を取得する」を例にとると、ADコンバーターへの入力電圧1.958Vから、電源電圧が約11.999Vであることを求めることができます。

[ティップ]

exprコマンドを利用して、次のように電源電圧を表示することができます。

[armadillo ~]# adc=`cat /sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0054/value`
[armadillo ~]# expr $adc \* \( 200 + 39 \) / 39
11999

6.9.2. 電源電圧を監視する

vintriggerコマンドを利用して、電源電圧が指定した電圧になった場合に任意のコマンドを実行させることができます。

[警告]

vintriggerを複数起動することはできません。「vinmonitor」に示すvinmonitorコマンドも、内部的にvintriggerを起動しています。

vintriggerコマンドのヘルプは次の通りです。

[armadillo ~]# vintrigger
Usage: vintrigger -o|-u VOLTAGE COMMAND [ARGS]
Options:
  -o, --over=VOLTAGE
      Execute the program COMMAND when the detected voltage is equal
      to or over the VOLTAGE.
  -u, --under=VOLTAGE
      Execute the program COMMAND when the detected voltage is equal
      to or unver the VOLTAGE.
VOLTAGE: Range: 0 - 20223

図6.47 vintriggerコマンドのヘルプ


電源電圧が11000mV(11V)以下になった場合に、ベースボード:LED2を点灯させる例を次に示します。

[armadillo ~]# vintrigger -u 11000 echo 1 > /sys/class/leds/led2/brightness

図6.48 vintriggerコマンド例


[ティップ]

vintriggerコマンドのログは/var/log/messagesファイルに出力されます。

[armadillo ~]# cat /var/log/messages
                 :
Dec 19 12:34:57 (none) daemon.info vintrigger[1173]: waiting for an under range alert (11000 mV). 1
Dec 19 12:34:57 (none) daemon.info vintrigger[1173]: exceeded the limit. executing command. 2

1

指定した電圧(11000mV)以下になることを待機します。

2

指定した電圧に達したのでコマンドを実行します。

6.10. Armadillo-IoT RS232Cアドオンモジュール RS00

Armadillo-IoT RS232Cアドオンモジュール RS00(以降、RS232Cアドオンモジュールと記載します)は RS232C レベルのシリアルポートが 1 ポート搭載されています。RS232Cアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。

RS232Cアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。

表6.14 アドオンインターフェースとTTYデバイスファイル

アドオンインターフェースTTYデバイスファイル
ベースボード:CON1/dev/ttymxc3
ベースボード:CON2/dev/ttymxc0

[注記]

工場出荷状態の開発セットは、ベースボード:CON1にRS232Cアドオンモジュールが接続されています。

[ティップ]

RS232Cアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON1に接続されている場合は次のように出力されます。

Atmark Techno RS232C board detected at CON1(0x0001).

6.10.1. Armadillo-IoTにログインする

RS232CアドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。

アドオンインターフェース(ベースボード:CON1)に接続したRS232Cアドオンモジュールのシリアルインターフェースからログインする手順を次に示します。

手順6.2 RS232Cアドオンモジュールからログイン

  1. ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0を指定します。

    [ATDE ~]$ minicom -o -w -D /dev/ttyS0
  2. Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc3[12]を指定します。/etc/inittabの設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。

    [armadillo ~]# echo ::respawn:/sbin/getty -L 115200 ttymxc3 >> /etc/inittab
    [armadillo ~]# kill -SIGHUP 1

ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。

[ティップ]

以下のように/etc/securettyにシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。

[armadillo ~]# echo ttymxc3 >> /etc/securetty

デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。

6.11. Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01

Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01(以降、RS485アドオンモジュールと記載します)は、電気的に絶縁された RS232C/RS422/RS485 のシリアルポートが 1 ポート登載されています。RS485アドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。

[ティップ]

RS485アドオンモジュールには、Linuxカーネル v2.6.26-at22以降(カーネルイメージ linux-aiotg-std-v1.01.bin.gz 以降)で対応しています。それ以前のものを使用されている場合、本節で説明する動作確認を行う前にイメージを対応バージョンに書き換えてください。

RS485アドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。

表6.15 アドオンインターフェースとTTYデバイスファイル

アドオンインターフェースTTYデバイスファイル
ベースボード:CON1/dev/ttymxc3
ベースボード:CON2/dev/ttymxc0

[ティップ]

RS485アドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。

Atmark Techno RS485/RS422/RS232C board detected at CON2(0x0001).

6.11.1. RS422/RS485の通信設定を変更する

Armadillo-IoTに電源を投入する前に RS485アドオンモジュール:SW1.1をOFFに設定すると、TTYデバイスのRS485設定が自動的に有効化されます。

[警告]

Armadillo-IoTの電源投入後に RS485アドオンモジュール:SW1.1の設定を変更しないでください。故障の原因となる可能性があります。

変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.16「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。

表6.16 RS485設定と初期値

設定説明初期値
flagsENABLED(bit0)

0: RS485無効

1: RS485有効

1
RTS_ON_SEND(bit1)

0: データ送信時のRTS(Driver Enable)がLow

1: データ送信時のRTS(Driver Enable)がHigh

1
RTS_AFTER_SEND(bit2)

0: データ非送信時のRTS(Driver Enable)がLow

1: データ非送信時のRTS(Driver Enable)がHigh

0
RX_DURING_TX(bit4)

0: 半二重通信

1: 全二重通信

0
delay_rts_before_send送信前遅延時間(ミリ秒)0
delay_rts_before_send送信後遅延時間(ミリ秒)0

[警告]

flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。

[注記]

RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。

RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。

アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt)を参照してください。

Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。

表6.17 Linuxカーネル起動オプションからのRS485設定

オプション指定子説明
mxc_uart.rs485_uart4=

ベースボード:CON1に接続されているUART4(ttymxc3)のRS485設定を指定します。

mxc_uart.rs485_uart1=

ベースボード:CON2に接続されているUART1(ttymxc0)のRS485設定を指定します。


RS485設定のフォーマットは次の通りです。

<flags>,<delay_rts_before_send>,<delay_rts_after_send>

例として、ベースボード:CON2に接続したRS485 アドオンモジュールのRS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。

hermit> setenv console=ttymxc1,115200 mxc_uart.rs485_uart1=0x13,0,0

6.11.2. Armadillo-IoTにログインする

RS485アドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。

RS422/RS485通信を行う場合は、事前に「RS422/RS485の通信設定を変更する」を参照して通信環境に合わせた設定を行ってください。

アドオンインターフェース(ベースボード:CON2)に接続したRS485アドオンモジュールのシリアルインターフェースからログインする手順を次に示します。

手順6.3 RS485アドオンモジュールからログイン

  1. ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0を指定します。

    [ATDE ~]$ minicom -o -w -D /dev/ttyS0
  2. Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc0[13]を指定します。/etc/inittabの設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。

    [armadillo ~]# echo ::respawn:/sbin/getty -L 115200 ttymxc0 >> /etc/inittab
    [armadillo ~]# kill -SIGHUP 1

ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。

[ティップ]

以下のように/etc/securettyにシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。

[armadillo ~]# echo ttymxc0 >> /etc/securetty

デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。

6.12. Armadillo-IoT BLEアドオンモジュール BT00

Armadillo-IoT BLEアドオンモジュール BT00(以降、BLEアドオンモジュールと記載します)は Microchip製 RN4020が搭載されています。Bluetooth(R) version 4.1に対応しており、Bluetooth Low Energy 4.1 プロトコルスタックが内蔵されています。

BLEアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。BLEアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。

表6.18 アドオンインターフェースとTTYデバイスファイル

アドオンインターフェースTTYデバイスファイル
ベースボード:CON1/dev/ttymxc3
ベースボード:CON2/dev/ttymxc0

[ティップ]

BLEアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。

Atmark Techno Bluetooth Low Energy board detected at CON2(0x0001).

6.12.1. 設定情報を取得する

BLEアドオンモジュールを制御する例として、RN4020 の設定情報の取得を行います。

アドオンインターフェース(ベースボード:CON2)に接続したBLEアドオンモジュールに搭載されているRN4020の設定情報を取得する手順を次に示します。

手順6.4 設定情報の取得

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

    [armadillo ~]$ tip -l /dev/ttymxc0 -s 115200
    Connected.
  2. D (Dump configuration)コマンドを実行すると、RN4020の設定情報が表示されます。

    D
    BTA=001EC01BBF7B
    Name=RN4020_BF7B
    Role=Peripheral
    Connected=no
    Bonded=no
    Server Service=80000000
  3. tipを終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。

    Disconnected.
    [armadillo ~]$ 

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

6.13. Armadillo-IoT EnOceanアドオンモジュール EN00

Armadillo-IoT EnOceanアドオンモジュール EN00(以降、EnOceanアドオンモジュールと記載します)は ROHM製 BP35A3が搭載されています。BP35A3にはEnOcean無線トランシーバーTCM410Jが搭載されています。

EnOceanアドオンモジュールは、TTY デバイスファイルからEnOcean Serial Protocol 3(ESP3)で通信することができます。EnOceanアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。

表6.19 アドオンインターフェースとTTYデバイスファイル

アドオンインターフェースTTYデバイスファイル
ベースボード:CON1/dev/ttymxc3
ベースボード:CON2/dev/ttymxc0

[ティップ]

EnOceanアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。

Atmark Techno EnOcean board detected at CON2(0x0001).

6.13.1. EnOcean無線データを受信する

EnOcean無線データを受信する例として、ROHM製スイッチモジュール PTM 210Jを使用します

アドオンインターフェース(ベースボード:CON2)に接続したEnOceanアドオンモジュールで受信する手順を次に示します。

手順6.5 EnOcean無線データの受信

  1. sttyコマンドを実行してTTY デバイスの通信設定を行います。ボーレートは57600bpsです。

    [armadillo ~]$ stty -F /dev/ttymxc0 57600 -icanon min 1
  2. hexdumpコマンドを実行して受信データを16進数でダンプします。

    [armadillo ~]$ hexdump -v /dev/ttymxc0
    0000000 0055 0207 0a0a 0020 e928 8447 0114 bd38                                 
    0000010 0055 0207 0a0a 0020 e928 0047 0181 ba39
  3. hexdumpを終了するには、Ctrl+cを入力します。

PTM 210Jなど、EnOcean製品の情報については ROHM社 Webページを参照してください。

EnOcean Serial Protocolの詳細については EnOcean GmbH製ドキュメントを参照してください。

6.14. Armadillo-IoT Wi-SUNアドオンモジュール WS00

Armadillo-IoT Wi-SUNアドオンモジュール WS00(以降、Wi-SUNアドオンモジュールと記載します)は ROHM製 BP35A1が搭載されています。

Wi-SUNアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。Wi-SUNアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。

表6.20 アドオンインターフェースとTTYデバイスファイル

アドオンインターフェースTTYデバイスファイル
ベースボード:CON1/dev/ttymxc3
ベースボード:CON2/dev/ttymxc0

[ティップ]

Wi-SUNアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。

Atmark Techno Wi-SUN board detected at CON2(0x0001).

6.14.1. 設定情報を取得する

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

アドオンインターフェース(ベースボード:CON2)に接続したWi-SUNアドオンモジュールに搭載されているBP35A1の設定情報を取得する手順を次に示します。

手順6.6 設定情報の取得

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

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

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

    Disconnected.
    [armadillo ~]$ 

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



[9] ArmadilloのIPアドレスが 192.0.2.10 の場合、http://192.0.2.10/ となります。

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

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

[12] /dev/を指定する必要はありません。

[13] /dev/を指定する必要はありません。