[LINUX] Ich habe versucht, HULFT IoT (Agent) in das Gateway Rooster von Sun Electronics zu integrieren

Hallo, Yorozu Beratung verantwortlich Sugimon: yum: Es ist.

Letztes Mal habe ich ein Paket von HULFT IoT Edge Streaming auf Sun Electronics Rooster (NSX7000) erstellt, einem Linux-Gateway-Gerät. (Oben) Dieses Mal habe ich als zweiten Schritt auch die Paketerstellung von HULFT IoT Agent im Blog zusammengefasst.

Möglicherweise gibt es Hinweise, um Ihre Probleme zu lösen. Schauen Sie also bitte vorbei.

Verfahren zum Erstellen von HULFT IoT Agent-Paketen für NSX7000

Einführung

Sun Electronics Rooster (NSX7000) ist ein Gerät der Router Rooster-Serie von Sun Electronics Co., Ltd. für IoT / M2M. Der NSX7000 ist als Multi-Carrier-kompatibles LTE-Kommunikations-kompatibles Linux-Gateway positioniert.

--NSX7000 Geräteinformationen

Weitere Informationen zur Ausstattung finden Sie unter dem folgenden Link. NSX7000-Geräteinformationen

Um den HULFT IoT Agent zu installieren, müssen Sie die Verpackungsumgebung im Voraus vorbereiten. Ich habe tatsächlich versucht, ein Paket zu erstellen. image.png

Vorbereitungen

Bitte bereiten Sie Folgendes vor.

--NSX7000-Paketerstellungsumgebung (* Entwicklungsumgebung wird separat vorbereitet) NSX7000-Handbuch Informationen zum Erstellen der Paketerstellungsumgebung finden Sie im folgenden Handbuch.

Building Manager-Umgebung

HULFT IoT-Handbuch Erstellen Sie die Manager-Umgebung gemäß dem HULFT IoT-Handbuch.

Vorbereitung der zu verpackenden Module

Hinweis: Führen Sie als Root-Benutzer die folgenden Schritte aus

  1. Kopieren Sie die folgenden Dateien in ein beliebiges Verzeichnis in der NSX7000-Paketerstellungsumgebung
  1. Extrahieren Sie die kopierte Datei
tar zxf HULFT_IoT_Agent_Linux_AArch32_Vxxx.tar.gz
  1. Wenn Sie den Befehl ausführen, werden die folgenden Dateien erweitert
iot_agent/
+-- modules/
|    +-- huliotcore
|    +-- huliotinfo
|    +-- huliotsend
|    +-- huliotservice
|
+-- defaultsettings.ini
|
+-- huliotsetup
|
+-- huliotsetup.ini

Konfigurationsdatei bearbeiten

Bearbeiten Sie die Konfigurationsdatei des HULFT IoT Agent.

  1. Erstellung von agent.conf

Kopieren Sie den folgenden Text und speichern Sie ihn in einem beliebigen Verzeichnis mit dem Dateinamen agent.conf

devicename = 
server_hostname = 
proxy = 
proxy_user = 
protocol = 0
cert_verification = 0
activation_key = 
first_conn_retry_interval = 3600
remarks_file = 
  1. Legen Sie die folgenden Elemente in der erstellten agent.conf fest

Paket erstellen

Erstellen Sie ein Paket für den HULFT IoT Agent in der NSX7000-Paketerstellungsumgebung. Informationen zu den Parametern verschiedener Dateien finden Sie im folgenden Handbuch.

  1. Erstellen Sie ein angegebenes Verzeichnis
Top-Verzeichnis/
|
+-- object/
+-- rpk/
|    |
|    +-- CONTROL/
|    |      |
|    |      +--Steuerdatei
|    |      +--Postrm-Skript
|    |
|    +--Appctl-Skript
|
+-- Makefile

  1. Kopieren Sie die folgenden Dateien in das Objektverzeichnis
  1. Erstellen Sie eine Steuerdatei

Ich habe es wie folgt erstellt.

Package: hulftiot-agent
Version: 2.0.0
Depends: 
Runtime-Depends: 
Maintainer: Company
Architecture: nsx7000
Provides: 
Replaces: 
Description: 
  1. Erstellen Sie ein PostRM-Skript
#!/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
  1. Erstellen Sie ein Appctl-Skript

Ich habe es wie folgt erstellt.

#!/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

  1. Erstellen Sie ein Makefile

Ich habe es wie folgt erstellt.

ROOSTER_TOP_DIR ?= $(HOME)/RoosterOS-SDK

ADD_ON_PKG_NAME := hulftiot-agent
ADD_ON_PKG_VERSION := 2.0.0
ADD_ON_PKG_MAINTAINER := Company
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))

  1. Führen Sie den folgenden Befehl aus, um ein Paket zu erstellen
make rpk
  1. Wenn Sie den Befehl ausführen, wird die folgende Datei erstellt

Danach können Sie es verwenden, indem Sie diese erstellte Paketdatei zu Rooster bringen und gemäß dem folgenden Handbuch installieren.

Zusammenfassung

Was haben Sie gedacht. Dieses Mal habe ich versucht, ein HULFT IoT Agent-Paket zu erstellen. Es gibt viele Schritte, aber wenn Sie dem Handbuch folgen und stetig reagieren, haben Sie es bis zum Ende getan!

In diesem Blog möchte ich weiterhin die Inhalte der Konsultationen am "Yorozu Consultation Counter" der Technologie und die geborenen Tricks vorstellen.

Bitte probieren Sie es weiter aus und folgen Sie uns, wenn Sie möchten.

Wir sehen uns wieder!

Recommended Posts

Ich habe versucht, HULFT IoT (Agent) in das Gateway Rooster von Sun Electronics zu integrieren
Ich habe versucht, HULFT IoT (Edge Streaming) in das Gateway Rooster von Sun Electronics zu integrieren
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, Pytest in die eigentliche Schlacht zu bringen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
[Erste Datenwissenschaft ⑥] Ich habe versucht, den Marktpreis von Restaurants in Tokio zu visualisieren
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe versucht, den in Pandas häufig verwendeten Code zusammenzufassen
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die im Geschäftsleben häufig verwendeten Befehle zusammenzufassen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich habe versucht, das Blackjack of Trump-Spiel mit Python zu implementieren
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
[Verarbeitung natürlicher Sprache] Ich habe versucht, die Bemerkungen jedes Mitglieds in der Slack-Community zu visualisieren
Ich habe versucht, den Trend der Anzahl der Schiffe in der Bucht von Tokio anhand von Satellitenbildern zu ermitteln.
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe versucht, den Sesam für Eingang 2 mit einem einzigen Druck auf die AWS IoT-Taste zu entsperren
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Ich habe versucht, einen Sender auf der IoT-Plattform "Rimotte" zu registrieren.
Ich habe versucht, in 3 Jahren 5 Muster der Analysebasis zu erstellen
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen
[RHEL7 / CentOS7] Ich habe das Farbfeld des Protokollüberwachungstools eingefügt und versucht, per E-Mail zu benachrichtigen.
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die Exponentialfunktion und die Logistikfunktion an die Anzahl der COVID-19-positiven Patienten in Tokio anzupassen
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
[Python] Ich habe versucht, den kollektiven Typ (Satz) auf leicht verständliche Weise zusammenzufassen.
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, die Beispielnachrichten zur Geschäftsintegration in Amazon Transcribe zu übertragen
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen