OpenBlocks HW 制御ソフト

LEDステータスインジケーター

OpenBlocksシリーズの正面にあるLEDはRGBの組み合せで7色に点灯し、それぞれの表示色で点滅などをスクリプト制御しています。
WEB-UIが使用されている場合には、デフォルトのLED点灯仕様は以下の通りになっています。

ステータスインジケーター
色/
状態
内容
黄/
点灯
OS起動中。(一時的に無点灯状態が続くこともあります。)
緑/
点滅
モバイルHW搭載しているのにSIMが挿入されていない。
タイムアウト後モバイル無しモードへの移行しOS起動。
白/
点滅
モバイル回線の電波強度が強レベルの時。
水/色
点滅
モバイル回線の電波強度が中レベルの時。
青/
点滅
モバイル回線の電波強度が弱レベルの時。
この電波強度での通信はリトライが多発する可能性があります。
なるべく電波強度が中レベル以上の場所にアンテナを設置してください。
紫/
点滅
モバイル回線の電波強度が圏外レベルの時。
アンテナを延長ケーブルなどを使って位置調整してください。
黄/
点滅
OpenBlocksのFUNCボタンの機能が有効な時。
※モバイル回線やSIMスロット未使用時におけるステータスインジケーターと交互点滅となります。
黄/
点灯
シャットダウン中。(一時的に無店頭状態が続くこともあります。)
赤/
点灯
AirManageリモート管理サーバへの初回アクセスが失敗した時。
WEB-UI未使用時の場合は5分後にOSが終了します。
赤/
点灯
モデム搭載モデルで強制SIMモードを有効にした時モデムのデバイスファイルが存在しない。
またはSIMカードが認識できない。この時、5分後にOSが再起動します。
赤/
点灯
AirManage及びSIM認識失敗時のOS終了中。
モバイル回線電波強度
HW / モデム種別電波:強電波:中電波:弱電波:圏外
BX1-87dBm以上-88~-108dBm-109~-112dBm-113dBm以下
BX3-87dBm以上-88~-108dBm-109~-112dBm-113dBm以下
BX5-95dbm以上-95.1~-105dBm-105.1~-120dBm-120.1dBm以下
LTEモジュール(KDDI)アンテナ2本以上アンテナ1本時アンテナ0本時圏外時
LTEモジュール(NTTドコモ)アンテナ3本時アンテナ2本時アンテナ1本時圏外時
LTE/3Gモジュール(ソフトバンク)AT+CSQ値: 14以上AT+CSQ値: 13 ~ 3AT+CSQ値: 2 ~ 1AT+CSQ値: 0または99
LTE/3Gモジュール(NTTドコモ/KDDI)-95dbm以上-95.1~-105dBm-105.1~-120dBm-120.1dBm以下
BWAモジュール-95dbm以上-95.1~-105dBm-105.1~-120dBm-120.1dBm以下
3Gモジュール(NTTドコモ)-87dBm以上-88~-108dBm-109~-112dBm-113dBm以下
3Gモジュール(ソフトバンク)-87dBm以上-88~-108dBm-109~-112dBm-113dBm以下
補足:電波強度の判定方法
HW / モデム種別電波状態判定
BX1RSSIによる判定
BX3RSSIによる判定
BX5RSRPによる判定
LTEモジュール(KDDI)モデムモジュールによる判定
LTEモジュール(NTTドコモ)モデムモジュールによる判定
LTE/3Gモジュール(ソフトバンク)AT+CSQ値判定
LTE/3Gモジュール(NTTドコモ/KDDI)RSRPによる判定
BWAモジュールRSRPによる判定
3Gモジュール(NTTドコモ)RSSIによる判定
3Gモジュール(ソフトバンク)RSSIによる判定

WEB-UI LED点灯制御スクリプト

以下にソースコードがあります。

/var/webui/bin/set_signal_value.sh
/var/webui/scripts/led_updater.sh
LEDの制御

LEDの表示色・点灯状態を変更する場合は、/tmp/.runledファイルの内容を編集します。
なお、WEB-UI使用時におけるSIM挿入時は電波強度と連動する為、定期的に本ファイルが更新されます。
このため意図的に変更する場合は、WEB-UIを未使用とするかLED点灯制御スクリプトを終了させてください。

# cat /tmp/.runled
130
470
2
0
設定内容備考
1行目点灯1 時間(msec)1以上
2行目点灯2 時間(msec)1以上
3行目点灯1 色番号下表参照
4行目点灯2 色番号下表参照(省略した場合、0)
色番号
0非点灯
1
2
3
4
5
6水色
7
範囲外非点灯
設定例:1秒毎に黄色点滅
# echo -e "1000\n1000\n3" > /tmp/.runled
設定例:1秒毎に黄色/緑色交互点滅
# echo -e "1000\n1000\n3\n2" > /tmp/.runled

モバイル回線向けモデム制御

本装置搭載のモデムモジュールの電源ON/OFFや電波状態をチェックするツールを搭載しています。

コマンド名:atcmd
起動方法1:atcmd [コマンド]
起動方法2:atcmd [コマンド1] [コマンド2] [コマンド3]
起動方法3:atcmd -d [デバイスファイル] [コマンド]

起動方法2のように、コマンドを列挙して順次実行することが可能です。

また、起動方法3のように使用するデバイスファイルを指定実行することも可能です。

コマンド機能備考
PONモデム電源ON
POFFモデム電源OFF
PRSTモデムrebootソフトウェアリセット(一部、ハードウェアリセット)
HRSTモデムrebootハードウェアリセット
SMONI電波強度取得BX1限定
CSQ電波強度取得LTEモジュール(NTTドコモ/KDDI)及びBWAモジュールでは
正しい電波強度の取得は行えません。
SIND基地局からの時刻取得BX1限定
CCLK基地局からの時刻取得BX3限定
CCIDSIMの番号取得
CTZU 1タイムゾーン自動取得BX1及びEX/VXシリーズ LTEモジュール(NTTドコモ)以外のモデル
のみ対応
※Uと1の間にスペースが入ります。
ATIモデム型番取得
CGSNモデムシリアル番号取得

コマンドは上記表の内容で指定します。

実行例:電源ON、SIM番号取得、電源OFF
# atcmd PON CCID POFF
xxxxxxxxxxxxxx
実行例:電源ON、電波強度取得、電源OFF
# atcmd PON CSQ POFF
-86
caution

WEB-UIでは常時電波状況取得によりデバイスファイルを占有しています。
そのため、本コマンドはWEB-UIで使っていないデバイスファイルを指定し実行してください。
なお、WEB-UIを使用していない環境では本制約はありません。

また、使用モジュールによってatcmdにて使用できるデバイスファイルが異なります。

BX1
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用不可
/dev/ttyMODEM2使用不可
/dev/ttyMODEM3使用可能
/dev/ttyMODEM4使用可能
/dev/ttyMODEM5使用不可
/dev/ttyMODEM6使用不可
BX3
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用可能
/dev/ttyMODEM2使用可能
/dev/ttyMODEM3使用不可
/dev/ttyMODEM4使用不可
/dev/ttyMODEM5使用不可
/dev/ttyMODEM6使用不可
BX5
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用不可
/dev/ttyMODEM2使用不可
/dev/ttyMODEM3使用可能
/dev/ttyMODEM4使用不可
EX/VXシリーズ LTE/3Gモジュール(ソフトバンク)
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
EX/VXシリーズ LTEモジュール(KDDI)
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
EX/VXシリーズ LTEモジュール(NTTドコモ/KDDI)
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用不可
/dev/ttyMODEM2使用不可
/dev/ttyMODEM3使用可能
/dev/ttyMODEM4使用不可
EX/VXシリーズ BWAモジュール
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用不可
/dev/ttyMODEM2使用不可
/dev/ttyMODEM3使用可能
/dev/ttyMODEM4使用不可
EX1/3Gモジュール(NTTドコモ)
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用可能
/dev/ttyMODEM2使用可能
/dev/ttyMODEM3使用不可
/dev/ttyMODEM4使用不可
/dev/ttyMODEM5使用不可
/dev/ttyMODEM6使用不可
EX1/3Gモジュール(ソフトバンク)
デバイスファイルatcmd使用可否
/dev/ttyMODEM0使用可能
/dev/ttyMODEM1使用可能
/dev/ttyMODEM2使用可能
/dev/ttyMODEM3使用不可
/dev/ttyMODEM4使用不可
/dev/ttyMODEM5使用不可
/dev/ttyMODEM6使用不可

モバイル回線接続制御

モバイル回線モデムの制御は通常はWEB-UIにて行っています。
通常はOpenBlocksの起動と同時にモバイル回線接続が行われます。
これに対して、必要な時だけモバイル回線を接続するオンデマンド接続を設定することができます。

オンデマンド接続の設定

WEB-UIのネットワーク基本タブにアクセスし、モバイル回線の接続に必要な情報を設定します。

use01

必要な設定は次の通りです。

  • APN (LTEモジュール(KDDI)時は項目が有りません)
  • ユーザー名
  • パスワード
  • 認証方式
  • 自動接続 : 自動接続しないを選択してください。
  • 通信確認用ホスト
  • 定期再接続設定
  • (モバイル回線再接続時間)
  • SMSコントロール(通常は無し/LTEモジュール(KDDI)時は項目が有りません)

※一般設定と違うのは自動接続の部分です。

設定したら保存ボタンを押しOpenBlocksの再起動を行ってください。
また、モバイル回線のオンデマンド接続及び切断のコマンドは以下となります。
なお、下記のコマンドラインにおける数字1はオンデマンド接続を前提とするものです。
0を指定した場合には、接続を保持する常時接続(何らかの影響で回線断が起こると自動再接続)となります。

モバイル回線の接続
# /var/webui/scripts/mobile_control.sh con 1
モバイル回線の切断
# /var/webui/scripts/mobile_control.sh coff 1

上記のコマンドを組み合わせたシェルスクリプトのサンプルです。
スクリプト内容は次の通りです。

  1. モバイル回線の接続
  2. DNSサーバに対してpingコマンドを実行
  3. モバイル回線の切断
#!/bin/bash
echo "#------------------------------------------------------------#"
echo "# Connect (`date`)"
echo "#------------------------------------------------------------#"
/var/webui/scripts/mobile_control.sh con 1
sleep 2
echo ""
echo "#------------------------------------------------------------#"
echo "# Command Exec (`date`)"
echo "#------------------------------------------------------------#"
ping -c 3 8.8.8.8
echo ""
echo "#------------------------------------------------------------#"
echo "# Disonnect (`date`)"
echo "#------------------------------------------------------------#"
/var/webui/scripts/mobile_control.sh coff 1
sleep 2
exit 0

システムバックアップ

設定やアプリケーションなど作りこみを行い、システム完成したOpenBlocksはシステムデータバックアップをお奨めします。

VXシリーズおよびIX9の場合

①エマージェンシーブートモードによる起動

起動時のGRUB画面にてEmergency bootを選択して下さい。

use03

②不要データの削除及びバックアップ
info

IX9のSSDブートの場合には以下の"/dev/mmcblk0p1"を"/dev/sda1", "/dev/mmcblk0p2"を"/dev/sda2"へと読み替えてください。

リカバリーモードでログインし不要なファイルを消します。
そのあとtarでバックアップ及びカーネルファイルをバックアップします。

obsiot login: root
Password: 0BSI0T
# mount /dev/mmcblk0p2 /mnt
  ※/mnt以下のHW依存の固有ファイル等は削除してください。以下はBT情報を削除しています。
# rm -rf /mnt/var/lib/bluetooth/*
# cd /mnt
# tar --exclude=lost+found --exclude=<tgzファイル> -cpzf <tgzファイル> .
# mkdir /tmp/kernel
# mount /dev/mmcblk0p1 /tmp/kernel
# cp -p /tmp/kernel/bzImage .
# sync
# umount /tmp/kernel

/mnt/<tgzファイル>がバックアップしたファイルです。
/mnt/bzImageがバックアップしたカーネルファイルです。
これらのファイルをUSBメモリー(ext2/ext3/vfat)などにコピーして完了です。

info
  • <tgzファイル>部は"backup.tgz"等の実際のファイル名へと変更してください。
  • /var/lib/bluetooth/ディレクトリ配下にHW依存の固有情報が含まれています。
    また、他にも作りこみの際の中間ファイル等も削除した方が良いです。

BX/EXシリーズの場合

① リカバリーブート起動

OpenBlocks IoT BX/EXシリーズではuboot起動画面でキー入力を行うとubootプロンプトが表示されます。
ubootプロンプトでリカバリーFW起動用コマンドを入力し、RAMディスクモードのリカバリーモードで再起動します。

******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************
SCU IPC: 0x800000d0 0xfffce92c
PSH miaHOB version: TNG.B0.VVBD.0000000c
microkernel built 23:15:13 Apr 24 2014
******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size) = 0x00080000
*** Ready to receive application ***
U-Boot 2014.04 (Oct 14 2014 - 15:19:04)
Watchdog enabled
DRAM: 980.6 MiB
MMC: tangier_sdhci: 0
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0    ※キー入力

uboot画面でコマンド入力

boot > run bootRecovery
② 不要データの削除及びバックアップ

リカバリーモードでログインし不要なファイルを消します。
そのあとtarでバックアップ及びカーネルファイルをバックアップします。

obsiot login: root
Password: 0BSI0T
# mount /dev/mmcblk0p10 /mnt
  ※/mnt以下のHW依存の固有ファイル等は削除してください。以下はBT情報を削除しています。
# rm -rf /mnt/var/lib/bluetooth/*
# cd /mnt
# tar --exclude=lost+found --exclude=<tgzファイル> -cpzf <tgzファイル> .
# mkdir /tmp/kernel
# mount /dev/mmcblk0p7 /tmp/kernel
# cp -p /tmp/kernel/bzImage .
# sync
# umount /tmp/kernel

/mnt/<tgzファイル>がバックアップしたファイルです。
/mnt/bzImageがバックアップしたカーネルファイルです。
これらのファイルをUSBメモリー(ext2/ext3/vfat)などにコピーして完了です。

info
  • <tgzファイル>部は"backup.tgz"等の実際のファイル名へと変更してください。
  • /var/lib/bluetooth/ディレクトリ配下にHW依存の固有情報が含まれています。
    また、他にも作りこみの際の中間ファイルなどがあれば削除した方が良いです。

システムリストア

システムバックアップした<tgzファイル>を及びカーネルファイル(bzImage)を用いてリストアをおこないます。

info

以下の<tgzファイル>は実際のシステムバックアップで作成したファイル名へと変更してください。

VXシリーズおよびIX9の場合

①エマージェンシーブートモードによる起動

起動時のGRUB画面にてEmergency bootを選択して下さい。

use03

② システムリストア
info

IX9のSSDブートの場合には以下の"/dev/mmcblk0p1"を"/dev/sda1", "/dev/mmcblk0p2"を"/dev/sda2"へと読み替えてください。

バックアップした<tgzファイル>ファイル及びカーネルファイルをOpenBlocksの/rootのディレクトリに転送しておきます。
ファイルはsftpコマンドなどでOpenBlocksへ転送してください。

obsiot login: root
Password: 0BSI0T
# yes | mkfs -t ext4 -L "" /dev/mmcblk0p2
# sync
# mount /dev/mmcblk0p2 /mnt
# tar --numeric-owner -xpzf /root/<tgzファイル> -C /mnt 2> /dev/null
# sync
# umount /mnt
# mount /dev/mmcblk0p1 /mnt
# cp -p /root/bzImage /mnt
# sync
# umount /mnt

上記でリストアは完了です。OpenBlocksを再起動すると、次の起動でリストアした状態で起動してきます。

BX/EXシリーズの場合

① リカバリーブート起動

OpenBlocks IoT BX/EXシリーズではuboot起動画面でキー入力を行うとubootプロンプトが表示されます。
ubootプロンプトでリカバリーFW起動用コマンドを入力し、RAMディスクモードのリカバリーモードで再起動します。

******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************
SCU IPC: 0x800000d0 0xfffce92c
PSH miaHOB version: TNG.B0.VVBD.0000000c
microkernel built 23:15:13 Apr 24 2014
******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size) = 0x00080000
*** Ready to receive application ***
U-Boot 2014.04 (Oct 14 2014 - 15:19:04)
Watchdog enabled
DRAM: 980.6 MiB
MMC: tangier_sdhci: 0
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0    ※キー入力

uboot画面でコマンド入力

boot > run bootRecovery
② システムリストア

バックアップした<tgzファイル>ファイル及びカーネルファイルをOpenBlocksの/rootのディレクトリに転送しておきます。
uboot環境変数設定ファイルFW4用 ←マウス右クリックメニューから「名前を付けてリンク先を保存」を選んでパソコンへダウンロードしOpenBlocksの/rootのディレクトリに配置しておきます。
各ファイルはsftpコマンドなどでOpenBlocksへ転送してください。

obsiot login: root
Password: 0BSI0T
# yes | mkfs -t ext4 -L "" /dev/mmcblk0p10
# sync
# mount /dev/mmcblk0p10 /mnt
# tar --numeric-owner -xpzf /root/<tgzファイル> -C /mnt 2> /dev/null
# sync
# umount /mnt
# mount /dev/mmcblk0p7 /mnt
# cp -p /root/bzImage /mnt
# sync
# umount /mnt
# /root/update_ubootenv.sh --edison-default
# /root/update_ubootenv.sh -a

上記でリストアは完了です。OpenBlocksを再起動すると、次の起動でリストアした状態で起動してきます。

推奨使用デバイスファイル

Linuxでは各デバイスファイル等は認識順に名前がアサインされます。

そのため、デバイス自体の電源ON/OFF状況によってデバイスファイルが異なる恐れがあります。

モデル毎に自動でデバイスファイルのリンクを張りますので、デバイスファイルへのアクセスを行う場合には以下の推奨デバイスファイルを使用してください。

  • OpenBlocks IoT VXシリーズの場合
推奨デバイスファイル対象デバイス
/dev/ttyRS485RS-485用デバイスファイル
/dev/ttyEX1拡張スロット1用デバイスファイル(LoRaWAN等)
/dev/ttyEX2拡張スロット2用デバイスファイル(EnOcean等)
/dev/S4RS-232C用デバイスファイル(VX1のみ)
  • OpenBlocks IoT EX1の場合
推奨デバイスファイル対象デバイス
/dev/ttyEX1拡張スロット1用デバイスファイル(LoRaWAN等)
/dev/ttyEX2拡張スロット2用デバイスファイル(EnOcean等)
/dev/MFD1RS-232CまたはRS-485用デバイスファイル
  • OpenBlocks IoT EX1Gの場合
推奨デバイスファイル対象デバイス
/dev/ttyRS485RS-485用デバイスファイル
/dev/ttyEX1拡張スロット1用デバイスファイル(LoRaWAN等)
/dev/ttyEX2拡張スロット2用デバイスファイル(EnOcean等)
/dev/MFD1RS-232C用デバイスファイル
  • OpenBlocks IX9の場合
推奨デバイスファイル対象デバイス
/dev/S4RS-232Cポート0用デバイスファイル
/dev/S5RS-232Cポート1用デバイスファイル

リカバリー起動

各モデルにて通常起動で用いているFWデータやストレージデータが破損した場合、リカバリー用のFWにて起動することが出来ます。

OpenBlocks IX9及びOpenBlocks IoT VXシリーズにてGRUBメニューのEmergency bootを選択することで、RAM Diskモードにて起動することが行えます。

本起動によるコンソールによるログインアカウント及びパスワードは"root"/"0BSI0T"となります。(パスワードの0は数字の0となります。)

use03

OpenBlocks IoT BX/EXシリーズでは起動時にuboot起動中にキー入力を行う事で、ubootプロンプトが表示されます。

ubootプロンプトにて、リカバリーFW起動用コマンドを実施しRAMディスクモードにて起動することが行えます。

リカバリーFW起動後に、kernel-imageデータを再インストールやストレージデータの復旧等を実施してください。

******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************
SCU IPC: 0x800000d0 0xfffce92c
PSH miaHOB version: TNG.B0.VVBD.0000000c
microkernel built 23:15:13 Apr 24 2014
******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size) = 0x00080000
*** Ready to receive application ***
U-Boot 2014.04 (Oct 14 2014 - 15:19:04)
Watchdog enabled
DRAM: 980.6 MiB
MMC: tangier_sdhci: 0
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0    ※キー入力
boot > run bootRecovery

なお、WEB-UIを用いている場合通常起動時においてコマンドラインにより以下のコマンドを実行することで次回以降の起動をリカバリーモード起動することが行えます。また、同様にリカバリーモード時から次回以降の起動を通常起動とするコマンドについても以下となります。

  • 通常起動からリカバリーモード起動への切り替えコマンド
# /var/webui/bin/bxex_uboot_runrecovery.sh
  • リカバリーモード起動から通常起動への切り替えコマンド
# /usr/sbin/fw_setenv bootcmd 'setenv firm_part 0:7;run bootDebian;'
info

通常起動からリカバリーモードへの切り替えコマンドを実施した場合、次回以降の起動は常にリカバリーモードとなります。そのため、実配置しているOpenBlocksでは実行しないでください。

クロス開発環境の構築

OpenBlocksシリーズのファームウェアの作成方法を、以下のページに用意しています。開発環境の構築を行う方はご確認ください。

https://github.com/plathome/debian_based_firmware