0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

こんにちは、よろず相談担当 すぎもん :yum: です。

今回は、Linuxゲートウェイ機器であるサン電子Rooster(NSX7000)にHULFT IoT EdgeStreamingのパッケージを作成してみました!

まずはやってみる

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

[NSX7000機器情報] (https://www.sun-denshi.co.jp/sc/nsx7000/)

HULFT IoT EdgeStreamingをインストールするには、事前にパッケージ作成環境を準備する必要があるみたいなので、パッケージの作成をやってみました。
image.png

パッケージ作成環境の準備

  • HULFT IoT EdgeStreaming

    • 製品本体が含まれる zip ファイルを指定のサイトからダウンロード

    • HULFT IoT EdgeStreaming に関する用語や操作については zip ファイル内の「FirstStepGuide_jpn.pdf」にあります。

  • NSX7000 パッケージ作成環境(※開発環境を別途準備します)
     NSX7000マニュアル
     上記リンクから、パッケージ作成環境の構築手順のマニュアルを参照しました。

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

これで事前準備完了です。

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

HULFT IoT EdgeStreaming Studio を使って、ストリーム処理を実装しパッケージ作成環境にデプロイします。

ストリーム処理を実装方法やデプロイ方法については、製品ダウンロード時に取得したzip ファイル内の「FirstStepGuide_jpn.pdf」を参考にやってみます。

  • FirstStepGuide_jpn.pdf

1. HULFT IoT EdgeStreaming Studio を起動し、ストリーム処理を表すスクリプトを作成
2. 開発したスクリプトを NSX7000 パッケージ作成環境上の任意のディレクトリにデプロイ
  - 指定した任意のディレクトリには es-agent.tar.gz がデプロイされました
3. デプロイしたファイルを以下のコマンドで展開

   tar zxf es-agent.tar.gz

4. コマンドを実行すると、同一ディレクトリに以下のファイルが展開されました。

  • es-agent
  • es-agent.yaml
  • script.bql
  • (plugins)※プラグインモジュールを使用している場合

パッケージの作成

NSX7000 パッケージ作成環境で HULFT IoT EdgeStreaing runtime のパッケージを作成してみます。

各種ファイルのパラメータについては以下のマニュアルを参照しました。

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

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

トップ・ディレクトリ/
|
+-- object/
|    |
|    +-- run-es-agent 起動スクリプト
+-- rpk/
|    |
|    +-- CONTROL/
|    |      |
|    |      +-- control ファイル
|    |
|    +-- appctl スクリプト
|
+-- EdgeStreaming-runtime
+-- Makefile

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

  • es-agent
  • es-agent.yaml
  • script.bql
  • (plugins)※プラグインモジュールを使用している場合

3. 次に、control ファイルの作成してみます。
わたしは、以下の通り作成してみました。

Package: EdgeStreaming-runtime
Version: 2.0.0
Depends: 
Runtime-Depends: 
Maintainer: Company
Architecture: nsx7000
Provides: 
Replaces: 
Description: 

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

わたしは、以下の通り作成してみました。

#!/bin/sh

PACKAGE_NAME=EdgeStreaming-runtime
PACKAGE_DIR=/app/package

exec $PACKAGE_DIR/$PACKAGE_NAME/sbin/$PACKAGE_NAME $@

5. appctl スクリプトから実行される EdgeStreaming-runtime スクリプトを作成します。

#!/bin/sh /etc/rc.common

USE_PROCD=1

PACKAGE_NAME=EdgeStreaming-runtime
PACKAGE_DIR=/app/package
COMMAND=$PACKAGE_DIR/$PACKAGE_NAME/sbin/run-es-agent

start_service() {
	procd_open_instance
	procd_set_param command $COMMAND
	procd_set_param respawn
	procd_close_instance
}

stop_service() {
	return 0
}

6. 起動スクリプト(run-es-agent)を作成します

わたしは、以下の通り作成してみました。

#!/bin/sh

PACKAGE_NAME=EdgeStreaming-runtime
PACKAGE_DIR=/app/package

LD_LIBRARY_PATH=${PACKAGE_DIR}/${PACKAGE_NAME}/lib
BIN_DIR=${PACKAGE_DIR}/${PACKAGE_NAME}/bin
COMMAND=${BIN_DIR}/es-agent

export LD_LIBRARY_PATH
cd $BIN_DIR

exec $COMMAND run -c es-agent.yaml

7. 起動スクリプト(run-es-agent)に実行権限を付与します。

chmod 755 run-es-agent

8. Makefile を作成します。

わたしは、以下の通り作成してみました。

ROOSTER_TOP_DIR ?= $(HOME)/RoosterOS-SDK

ADD_ON_PKG_NAME := EdgeStreaming-runtime
ADD_ON_PKG_VERSION := 2.0.0
ADD_ON_PKG_MAINTAINER := Company
ADD_ON_PKG_DESCRIPTION := 

OBJ_DIR=./object

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


EdgeStreaming-runtime: 


contents: $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR) EdgeStreaming-runtime
	mkdir -p $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
	cp $(OBJ_DIR)/es-agent* $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
	cp $(OBJ_DIR)/script.bql $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
	cp -r $(OBJ_DIR)/plugins $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin

	mkdir -p $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin
	cp $(OBJ_DIR)/run-es-agent $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin
	$(call replace_add_on_keyword,\
		$(ADD_ON_PKG_NAME),\
		$(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin/$(ADD_ON_PKG_NAME))
	chmod +x $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin/$(ADD_ON_PKG_NAME)

	touch $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_PREPARED)


$(eval $(DefaultTarget))

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

make rpk

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

  • EdgeStreaming-runtime_2.0.0.rpk

後は、この作成したパッケージファイルをRooster上に持っていき、下記のマニュアルを参考にインストールすることで使用可能です。

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

最後に

今回は、HULFT IoT EdgeStreamingをLinuxゲートウェイ機器にインストールしてみましたが、いかがでしたでしょうか。
パッケージの作成をしてみましたが、マニュアルも充実しているので作業自体は思うより簡単にすることができました!

また今回は、とっかかりのパッケージ作成をまずしてみましたが、
別の機会で、HULFT IoT EdgeStreamingを具体的に使ってみたいなーと思ってます!
そこでもっと具体的なところをお話しできたらと思います!

このブログでは、今後も技術の「よろず相談窓口」で相談を受けた内容や、誕生したワザをご紹介していけたらな、と思っています。

これからも是非チェックいただき、宜しければフォローをお願いします。

それでは、また!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?