diff --git a/sysmngr/Config.in b/sysmngr/Config.in new file mode 100644 index 000000000..c1fa421a0 --- /dev/null +++ b/sysmngr/Config.in @@ -0,0 +1,35 @@ +if PACKAGE_sysmngr + +config SYSMNGR_VENDOR_CONFIG_FILE + bool "Enable Device.DeviceInfo.VendorConfigFile. Object" + default y + +config SYSMNGR_MEMORY_STATUS + bool "Enable Device.DeviceInfo.MemoryStatus. Object" + default y + +config SYSMNGR_PROCESS_STATUS + bool "Enable Device.DeviceInfo.ProcessStatus. Object" + default y + +config SYSMNGR_SUPPORTED_DATA_MODEL + bool "Enable Device.DeviceInfo.SupportedDataModel. Object" + default y + +config SYSMNGR_FIRMWARE_IMAGE + bool "Enable Device.DeviceInfo.FirmwareImage. Object" + default y + +config SYSMNGR_REBOOTS + bool "Enable Device.DeviceInfo.Reboots. Object" + default y + +config SYSMNGR_NETWORK_PROPERTIES + bool "Enable Device.DeviceInfo.NetworkProperties. Object" + default y + +config SYSMNGR_VENDOR_EXTENSIONS + bool "Enable vendor extensions for Device.DeviceInfo." + default y + +endif diff --git a/sysmngr/Makefile b/sysmngr/Makefile new file mode 100644 index 000000000..4ca9147da --- /dev/null +++ b/sysmngr/Makefile @@ -0,0 +1,100 @@ +# +# Copyright (C) 2024 IOPSYS +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=sysmngr +PKG_VERSION:=1.0.0 + +LOCAL_DEV:=0 +ifneq ($(LOCAL_DEV),1) +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://dev.iopsys.eu/system/sysmngr.git +PKG_SOURCE_VERSION:=aaca7af64e21d99be49c1b3b31f71571f8fdb50e +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +PKG_MIRROR_HASH:=skip +endif + +PKG_LICENSE:=BSD-3-Clause +PKG_LICENSE_FILES:=LICENSE + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk + +define Package/$(PKG_NAME) + SECTION:=utils + CATEGORY:=Utilities + SUBMENU:=TRx69 + TITLE:=System manager daemon + DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libopenssl + DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service + MENU:=1 +endef + +define Package/$(PKG_NAME)/config + source "$(SOURCE)/Config.in" +endef + +MAKE_PATH:=src + +define Package/$(PKG_NAME)/description + Manage device info and provides Device.DeviceInfo. datamodel object based on TR181-2.18 +endef + +ifeq ($(LOCAL_DEV),1) +define Build/Prepare + $(CP) -rf ~/git/sysmngr/* $(PKG_BUILD_DIR)/ +endef +endif + +TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\" + +ifeq ($(CONFIG_SYSMNGR_VENDOR_CONFIG_FILE),y) +MAKE_FLAGS += SYSMNGR_VENDOR_CONFIG_FILE=y +endif + +ifeq ($(CONFIG_SYSMNGR_MEMORY_STATUS),y) +MAKE_FLAGS += SYSMNGR_MEMORY_STATUS=y +endif + +ifeq ($(CONFIG_SYSMNGR_PROCESS_STATUS),y) +MAKE_FLAGS += SYSMNGR_PROCESS_STATUS=y +endif + +ifeq ($(CONFIG_SYSMNGR_SUPPORTED_DATA_MODEL),y) +MAKE_FLAGS += SYSMNGR_SUPPORTED_DATA_MODEL=y +endif + +ifeq ($(CONFIG_SYSMNGR_FIRMWARE_IMAGE),y) +MAKE_FLAGS += SYSMNGR_FIRMWARE_IMAGE=y +endif + +ifeq ($(CONFIG_SYSMNGR_REBOOTS),y) +MAKE_FLAGS += SYSMNGR_REBOOTS=y +endif + +ifeq ($(CONFIG_SYSMNGR_NETWORK_PROPERTIES),y) +MAKE_FLAGS += SYSMNGR_NETWORK_PROPERTIES=y +endif + +ifeq ($(CONFIG_SYSMNGR_VENDOR_EXTENSIONS),y) +MAKE_FLAGS += SYSMNGR_VENDOR_EXTENSIONS=y +endif + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/etc/config/ + $(INSTALL_CONF) ./files/etc/config/sysmngr $(1)/etc/config/sysmngr + + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/sysmngr $(1)/usr/sbin/sysmngr + + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/etc/init.d/sysmngr $(1)/etc/init.d/sysmngr + + $(INSTALL_DIR) $(1)/usr/share/bbfdm/scripts + $(CP) $(PKG_BUILD_DIR)/src/files/usr/share/bbfdm/scripts/bbf_activate_handler.sh $(1)/usr/share/bbfdm/scripts/ + $(CP) $(PKG_BUILD_DIR)/src/files/usr/share/bbfdm/scripts/bbf_check_idle.sh $(1)/usr/share/bbfdm/scripts/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/sysmngr/files/etc/config/sysmngr b/sysmngr/files/etc/config/sysmngr new file mode 100644 index 000000000..39173d05d --- /dev/null +++ b/sysmngr/files/etc/config/sysmngr @@ -0,0 +1,4 @@ + +config reboots 'reboots' + option max_reboot_entries '3' + diff --git a/sysmngr/files/etc/init.d/sysmngr b/sysmngr/files/etc/init.d/sysmngr new file mode 100644 index 000000000..be12d730e --- /dev/null +++ b/sysmngr/files/etc/init.d/sysmngr @@ -0,0 +1,16 @@ +#!/bin/sh /etc/rc.common + +START=60 +STOP=8 + +USE_PROCD=1 +PROG=/usr/sbin/sysmngr + +start_service() +{ + procd_open_instance "sysmngr" + procd_set_param command ${PROG} + #procd_append_param command -ddd + procd_set_param respawn + procd_close_instance "sysmngr" +}