サン電子のゲートウェイRoosterにHULFT IoTを入れてみた(2/2)

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

こんにちは、OrangeLab事務局です。

前回は、Linuxゲートウェイ機器であるサン電子Rooster(NSX7000)にHULFT IoT EdgeStreamingを入れてみましたが、第2弾として、HULFT IoT Agentを入れてみたことをブログにまとめてみました。

皆さまの課題を解決する糸口があるかもしれませんので、是非ご一読いただければ、と思います。

はじめに

サン電子Rooster(NSX7000)とは、サン電子株式会社のIoT/M2M向けルーターRoosterシリーズの機器となります。NSX7000は、マルチキャリア対応 LTE通信対応Linuxゲートウェイと位置づけられております。

NSX7000機器情報

機器の詳細については、下記リンクをご参照ください。

______.jpg

作業の流れ

HULFT IoT Agentを インストールするには、事前にパッケージ作成環境を準備する必要があります。
主に以下の流れで作業をしていきます。
  • パッケージ作成環境を準備し、HULFT IoT Agentのパッケージを作成します
  • NSX7000に作成したHULFT IoT Agentのパッケージを適用します

事前準備

まず事前に以下の準備が必要となります。

HULFT IoT

  • 製品本体が含まれる zip ファイルを指定のサイトからダウンロードし、展開します
  • xxxは製品のバージョンです
  • HULFT IoT に関する用語や操作などについては zip ファイルに含まれる「readme.html」かオンラインマニュアルを参照してください
hulftiot_vxxx/ 
+-- Agent/
| |
| +-- HULFT IoT Agent のインストールモジュール
|
+-- Agent_UpdateModule/
| |
| +-- HULFT IoT Agent のアップデートモジュール
|
+-- Licenses/
| |
| +-- ライセンスファイル
|
+-- Manager/
| |
| +-- HULFT IoT Manager のインストールモジュール
|
+-- Manual/
| |
| +-- HULFT IoT のマニュアル
|
+-- readme.html

NSX7000 パッケージ作成環境

NSX7000マニュアル
パッケージ作成環境の構築手順のマニュアルを参照してください。

  • Add-onアプリケーション開発-パッケージ作成マニュアル.pdf
  • Add-onアプリケーション開発-環境構築マニュアル.pdf
 

Manager 環境の構築

HULFT IoTマニュアル
HULFT IoTのマニュアルを参照し、Manager環境の構築を行ってください。

パッケージ化するモジュールの準備

注意:以降の手順は、rootユーザで実行してください。

1. NSX7000 パッケージ作成環境の任意のディレクトリに以下のファイルをコピーします

  • hulftiot_vxxx/Agent/HULFT_IoT_Agent_Linux_AArch32_Vxxx.tar.gz

2. コピーしたファイルを展開します

   tar zxf HULFT_IoT_Agent_Linux_AArch32_Vxxx.tar.gz

3. コマンドを実行すると、以下のファイルが展開されます

   iot_agent/
   +-- modules/
   |    +-- huliotcore
   |    +-- huliotinfo
   |    +-- huliotsend
   |    +-- huliotservice
   |
   +-- defaultsettings.ini
   |
   +-- huliotsetup
   |
   +-- huliotsetup.ini

設定ファイルの編集

HULFT IoT Agentの設定ファイルを編集します

1. 作成した agent.conf の以下の項目を設定します

以下のテキストをコピーして、agent.conf というファイル名で任意のディレクトリに保存します
   devicename = 
   server_hostname = 
   proxy = 
   proxy_user = 
   protocol = 0
   cert_verification = 0
   activation_key = 
   first_conn_retry_interval = 3600
   remarks_file = 

2. 作成した agent.conf の以下の項目を設定します

  • devicename
    • Manager にアクティベートした際に表示されるAgentの名前を指定します
    • 省略時はホスト名を採用します
  • server_hostname
    • Manager のサーバ名、または IP アドレスとポート番号を : (コロン) 区切りで指定します
  • proxy
    • プロキシサーバ名、または IP アドレスとポート番号を : (コロン) 区切りで指定します
    • Agent がプロキシ環境下にいる場合に指定します
  • proxy_user
    • プロキシ認証が通るユーザ名とパスワードを : (コロン) 区切りで指定します
  • activation_key
    • 構築した Manager からアクティベーションキーを取得して設定します

※その他の項目の説明については、マニュアルを参照してください。

以下は、設定値の例となります。

   devicename = nsx7000
   server_hostname = server:8765
   proxy = 
   proxy_user = 
   protocol = 0
   cert_verification = 0
   activation_key = 11e1400a-0989-4699-9703-88f85c653c35
   first_conn_retry_interval = 3600
   remarks_file = 

パッケージの作成

NSX7000 パッケージ作成環境で HULFT IoT Agent のパッケージを作成します。 各種ファイルのパラメータについては以下のマニュアルを参照してください。

  • Add-onアプリケーション開発-パッケージ作成マニュアル.pdf

1. 規定のディレクトリを作成します

   トップ・ディレクトリ/
   |
   +-- object/
   +-- rpk/
   |    |
   |    +-- CONTROL/
   |    |      |
   |    |      +-- control ファイル
   |    |      +-- postrm スクリプト
   |    |
   |    +-- appctl スクリプト
   |
   +-- Makefile

2. 以下のファイルを object ディレクトリにコピーします

  • agent.conf

  • iot_agent/modules/huliotcore

  • iot_agent/modules/huliotinfo

  • iot_agent/modules/huliotsend

  • iot_agent/modules/huliotservice

3. control ファイルを作成します

以下は作成例です。

   Package: hulftiot-agent
   Version: 2.0.0
   Depends: 
   Runtime-Depends: 
   Maintainer: SAISON INFORMATION SYSTEMS CO.,LTD.
   Architecture: nsx7000
   Provides: 
   Replaces: 
   Description: 

4. postrm スクリプトを作成します

#!/bin/sh

   PATH=/usr/sbin:/sbin:$PATH
   export PATH
   : ${ROOSTER_OS_LOG_STDERR:=yes}
   : ${ROOSTER_OS_LOG_FACILITY:=user}

   . /lib/functions.sh
   include /lib/functions/rooster-os/base
   include /lib/functions/rooster-os/rpkg

   PACKAGE_NAME=hulftiot-agent

   on_remove() {
     rm -rf /app/var/${PACKAGE_NAME}
     return 0
   }

   case "$1" in
     *)
       if [ $PKG_ROOT = "/" ]; then
         on_remove
       fi
       ;;
   esac

   exit 0

5. appctl スクリプトを作成します

以下は作成例です。

   #!/bin/bash

   PACKAGE_NAME=hulftiot-agent
   PACKAGE_DIR=/app/package

   EXEC_DIR=/app/var/${PACKAGE_NAME}
   WORK_DIR=${EXEC_DIR}/work
   LOG_DIR=${EXEC_DIR}/log

   HASH_CMD=sha1sum
   HASH_FILE=huliot.sha1
   IOT_FILE=("huliotcore"  "huliotinfo"  "huliotsend"  "huliotservice")


   make_hash() {
       if [ -e ${EXEC_DIR}/${HASH_FILE} ]; then
           rm -f ${EXEC_DIR}/${HASH_FILE}
       fi

       for ((i = 0; i < ${#IOT_FILE[@]}; i++)) {
           ${HASH_CMD} ${PACKAGE_DIR}/${PACKAGE_NAME}/bin/${IOT_FILE[i]} >> ${EXEC_DIR}/${HASH_FILE}
       }
   }

   start_app() {
       if [ ! -d ${EXEC_DIR} ]; then
           mkdir -p ${EXEC_DIR}
           mkdir -p ${WORK_DIR}
           mkdir -p ${LOG_DIR}
           cp -p ${PACKAGE_DIR}/${PACKAGE_NAME}/bin/* ${EXEC_DIR}
           echo "workfile_path = ${WORK_DIR}" >> ${EXEC_DIR}/agent.conf
           echo "logfile_path = ${LOG_DIR}"  >> ${EXEC_DIR}/agent.conf
           make_hash
       else
           ${HASH_CMD} -c ${EXEC_DIR}/${HASH_FILE} > /dev/null 2>&1
           if [ $? -ne 0 ]; then
               cp -pf ${PACKAGE_DIR}/${PACKAGE_NAME}/bin/huliot* ${EXEC_DIR}
               make_hash
           fi
       fi
       ${EXEC_DIR}/huliotservice
   }

   stop_app() {
       ${EXEC_DIR}/huliotservice --stop
   }

   case "$1" in
       start)
           start_app
           ;;
       stop)
           stop_app
           ;;
       restart)
           stop_app
           start_app
           ;;
       *)
           ;;
   esac

   exit 0

6. Makefile を作成します

以下は作成例です。

   ROOSTER_TOP_DIR ?= $(HOME)/RoosterOS-SDK

   ADD_ON_PKG_NAME := hulftiot-agent
   ADD_ON_PKG_VERSION := 2.0.0
   ADD_ON_PKG_MAINTAINER := SAISON INFORMATION SYSTEMS CO.,LTD.
   ADD_ON_PKG_DESCRIPTION := 

   include $(ROOSTER_TOP_DIR)/mk/add-on-package.mk

   OBJ_DIR=./object

   hulftiot-agent:

   contents: $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR) hulftiot-agent
    mkdir -p $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    cp $(OBJ_DIR)/huliot* $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    cp $(OBJ_DIR)/agent.conf $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    touch $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_PREPARED)

   $(eval $(DefaultTarget))

7. 以下のコマンドを実行してパッケージを作成します

   make rpk

8. コマンドを実行すると以下のファイルが作成されます

  • hulftiot-agent_2.0.0.rpk

 

パッケージのインストール、アンインストール

パッケージのインストール手順、アンインストール手順については、以下のマニュアルを参照してください。
  • Add-onアプリケーション開発-パッケージ作成マニュアル.pdf

まとめ

いかがでしたでしょうか。
この手順を実施することで、HULFT IoT Agentのパッケージを作成して、
ゲートウェイ機器に適用することが可能になります。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント