diff --git a/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/fonts/fonts.bin b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/fonts/fonts.bin
new file mode 100644
index 00000000..0aefb91f
Binary files /dev/null and b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/fonts/fonts.bin differ
diff --git a/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/script/S99goke b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/script/S99goke
new file mode 100755
index 00000000..365f6a97
--- /dev/null
+++ b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/files/script/S99goke
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+DAEMON="majestic"
+PIDFILE="/var/run/$DAEMON.pid"
+
+DAEMON_ARGS=""
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
+
+# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
+start() {
+	logger -s -p daemon.info -t goke "Check MAC for Xiongmai devices"
+	if [ "$(fw_printenv -n ethaddr)" = "00:00:23:34:45:66" ]; then
+		logger -s -p daemon.info -t goke "The eth0 interface has a lousy MAC, let's try to change it.."
+		XMMAC="$(ipcinfo --xm_mac)" && [ -n "${XMMAC}" ] && fw_setenv ethaddr ${XMMAC} && ifconfig eth0 hw ether ${XMMAC} && logger -s -p daemon.info -t goke "The eth0 interface have new MAC - ${XMMAC}" && reboot -f
+	else
+		logger -s -p daemon.info -t goke "The eth0 interface has a correct MAC - $(fw_printenv -n ethaddr)"
+	fi
+	#
+	logger -s -p daemon.info -t goke "Loading of kernel modules and initialization of the video system has started"
+	export TZ=$(cat /etc/TZ)
+	load_goke -i
+	#
+	printf 'Starting %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
+	# shellcheck disable=SC2086 # we need the word splitting
+	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
+		-- $DAEMON_ARGS
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
+
+stop() {
+	printf 'Stopping %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
+	start-stop-daemon -K -q -p "$PIDFILE"
+	status=$?
+	if [ "$status" -eq 0 ]; then
+		rm -f "$PIDFILE"
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
+
+restart() {
+	stop
+	sleep 1
+	start
+}
+
+case "$1" in
+	start|stop|restart)
+		"$1";;
+	reload)
+		# Restart, since there is no true "reload" feature.
+		restart;;
+	*)
+		echo "Usage: $0 {start|stop|restart|reload}"
+		exit 1
+esac
diff --git a/br-ext-chip-goke/package/goke-osdrv-gk7205v200/goke-osdrv-gk7205v200.mk b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/goke-osdrv-gk7205v200.mk
new file mode 100644
index 00000000..bff18d91
--- /dev/null
+++ b/br-ext-chip-goke/package/goke-osdrv-gk7205v200/goke-osdrv-gk7205v200.mk
@@ -0,0 +1,117 @@
+################################################################################
+#
+# goke-osdrv-gk7205v200
+#
+################################################################################
+
+GOKE_OSDRV_HI3516EV300_VERSION =
+GOKE_OSDRV_HI3516EV300_SITE =
+GOKE_OSDRV_HI3516EV300_LICENSE = MIT
+GOKE_OSDRV_HI3516EV300_LICENSE_FILES = LICENSE
+GOKE_OSDRV_HI3516EV300_INSTALL_STAGING = YES
+
+
+define GOKE_OSDRV_HI3516EV300_INSTALL_STAGING_CMDS
+	$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/goke
+	#$(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/include/*
+
+	## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/include
+	## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/include $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/include/*
+
+	## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod
+	## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/*.ko
+
+	## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/lib
+	## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/lib $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/*.so
+endef
+
+
+define GOKE_OSDRV_HI3516EV300_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
+	#$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/script/S99goke
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/sensor/config/*.ini
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/WDR
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/WDR $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/sensor/config/WDR/*.ini
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.37/goke
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/cma_osal.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_acodec.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_adec.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_aenc.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_ai.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_aio.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_ao.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_base.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_chnl.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_h264e.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_h265e.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_isp.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_ive.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_jpege.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_rc.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_rgn.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_sys.ko
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_tde.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_vedu.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_venc.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_vgs.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_vi.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_vpss.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/gk7205v200_wdt.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/hi_mipi_rx.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/hi_osal.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/hi_pwm.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/hi_sensor_i2c.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/hi_sensor_spi.ko
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/goke $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/kmod/sys_config.ko
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
+	#$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/script/load*
+	#$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/script/ircut_demo
+	#$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/script/set_allocator
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/fonts
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/fonts $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/fonts/*.bin
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/sensor/*.so
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libaaccomm.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libaacdec.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libaacenc.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libaacsbrdec.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libaacsbrenc.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libbcd.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libdnvqe.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hiae.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hiawb_natura.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hiawb.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhi_cipher.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hidehaze.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hidrc.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hiir_auto.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/lib_hildci.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_AEC.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_AGC.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_ANR.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_common.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_EQ.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_HPF.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_record.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libhive_RES.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libisp.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libive.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libivp.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libmd.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libmpi.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libsecurec.so
+	## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libtde.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libupvqe.so
+	#$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_GOKE_PATH)/package/goke-osdrv-gk7205v200/files/lib/libVoiceEngine.so
+endef
+
+$(eval $(generic-package))
diff --git a/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516cv500/files/script/S99hisilicon b/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516cv500/files/script/S99hisilicon
index 7334e0e2..d6fb90c6 100755
--- a/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516cv500/files/script/S99hisilicon
+++ b/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516cv500/files/script/S99hisilicon
@@ -23,6 +23,7 @@ start() {
 	load_hisilicon -i
 	#
 	printf 'Starting %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	# shellcheck disable=SC2086 # we need the word splitting
 	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
 		-- $DAEMON_ARGS
@@ -37,6 +38,7 @@ start() {
 
 stop() {
 	printf 'Stopping %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	start-stop-daemon -K -q -p "$PIDFILE"
 	status=$?
 	if [ "$status" -eq 0 ]; then
diff --git a/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516ev300/files/script/S99hisilicon b/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516ev300/files/script/S99hisilicon
index 7334e0e2..fdbb8bc2 100755
--- a/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516ev300/files/script/S99hisilicon
+++ b/br-ext-chip-hisilicon/package/hisilicon-osdrv-hi3516ev300/files/script/S99hisilicon
@@ -23,6 +23,7 @@ start() {
 	load_hisilicon -i
 	#
 	printf 'Starting %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	# shellcheck disable=SC2086 # we need the word splitting
 	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
 		-- $DAEMON_ARGS
@@ -37,6 +38,7 @@ start() {
 
 stop() {
 	printf 'Stopping %s: ' "$DAEMON"
+	[ -f /usr/sbin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	start-stop-daemon -K -q -p "$PIDFILE"
 	status=$?
 	if [ "$status" -eq 0 ]; then
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config
index f99db808..2057fe9c 120000
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config
@@ -1 +1 @@
-ssc335.initramfs.config.test01
\ No newline at end of file
+ssc335.initramfs.config.test03
\ No newline at end of file
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
old mode 100755
new mode 100644
index 84102d3f..ed36849a
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
@@ -1352,8 +1352,8 @@ CONFIG_GPIO_SYSFS=y
 # CONFIG_POWER_SUPPLY is not set
 # CONFIG_HWMON is not set
 # CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_WATCHDOG_CORE is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 # CONFIG_WATCHDOG_SYSFS is not set
 
diff --git a/br-ext-chip-sigmastar/package/sigmastar-osdrv-ssc335/files/script/S99sigmastar b/br-ext-chip-sigmastar/package/sigmastar-osdrv-ssc335/files/script/S99sigmastar
index 5abec081..e0d30654 100755
--- a/br-ext-chip-sigmastar/package/sigmastar-osdrv-ssc335/files/script/S99sigmastar
+++ b/br-ext-chip-sigmastar/package/sigmastar-osdrv-ssc335/files/script/S99sigmastar
@@ -22,6 +22,7 @@ start() {
 	load_sigmastar -i
 	#
 	printf 'Starting %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	# shellcheck disable=SC2086 # we need the word splitting
 	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
 		-- $DAEMON_ARGS
@@ -36,6 +37,7 @@ start() {
 
 stop() {
 	printf 'Stopping %s: ' "$DAEMON"
+	[ -f /usr/bin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	start-stop-daemon -K -q -p "$PIDFILE"
 	status=$?
 	if [ "$status" -eq 0 ]; then
diff --git a/general/overlay/etc/init.d/S50snmpd b/general/overlay/etc/init.d/S50snmpd
index 9c7eafd4..5515f71a 100755
--- a/general/overlay/etc/init.d/S50snmpd
+++ b/general/overlay/etc/init.d/S50snmpd
@@ -12,6 +12,7 @@ SNMPD_ARGS="-n -4 -c openipc -i eth0 -D OpenIPC -C https://openipc.org -L Intern
 # and use "-m" to instruct start-stop-daemon to create one.
 start() {
 	printf 'Starting %s: ' "$DAEMON"
+	[ -f /usr/sbin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	# shellcheck disable=SC2086 # we need the word splitting
 	start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \
 		-- $SNMPD_ARGS
@@ -26,6 +27,7 @@ start() {
 
 stop() {
 	printf 'Stopping %s: ' "$DAEMON"
+	[ -f /usr/sbin/$DAEMON ] || (echo "IT IS MISSING" ; exit 1)
 	start-stop-daemon -K -q -p "$PIDFILE"
 	status=$?
 	if [ "$status" -eq 0 ]; then
diff --git a/general/overlay/etc/init.d/S50telnet b/general/overlay/etc/init.d/S50telnet
new file mode 100755
index 00000000..9fa21676
--- /dev/null
+++ b/general/overlay/etc/init.d/S50telnet
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Start telnet server
+#
+
+TELNETD_ARGS="-F -p 4321 -l /bin/sh"
+[ -r /etc/default/telnet ] && . /etc/default/telnet
+
+start() {
+      printf "Starting telnetd: "
+      [ -f /usr/sbin/telnetd ] || (echo "IT IS MISSING" ; exit 1)
+      start-stop-daemon -S -q -m -b -p /var/run/telnetd.pid \
+			-x /usr/sbin/telnetd -- $TELNETD_ARGS
+      [ $? = 0 ] && echo "OK (port 4321)" || echo "FAIL"
+}
+
+stop() {
+	printf "Stopping telnetd: "
+	[ -f /usr/sbin/telnetd ] || (echo "IT IS MISSING" ; exit 1)
+	start-stop-daemon -K -q -p /var/run/telnetd.pid \
+			  -x /usr/sbin/telnetd
+	[ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+case "$1" in
+    start)
+	start
+	;;
+    stop)
+	stop
+	;;
+    restart|reload)
+	stop
+	start
+	;;
+  *)
+	echo "Usage: $0 {start|stop|restart}"
+	exit 1
+esac
+
+exit $?
diff --git a/general/overlay/usr/sbin/telegram_bot b/general/overlay/usr/sbin/telegram_bot
new file mode 100755
index 00000000..da9698e8
--- /dev/null
+++ b/general/overlay/usr/sbin/telegram_bot
@@ -0,0 +1,103 @@
+#!/bin/sh
+#
+PATH='/usr/bin:/usr/sbin:/bin:/sbin'
+
+rupor=$1
+token=$2
+start=1
+api="https://api.telegram.org/bot$token"
+offset_file=/tmp/telegram_offset
+
+
+if [ "$start" == "0" ]; then
+	echo "Launch of the Telegram_bot is not allowed." | logger -t "telegram_bot" -p daemon.info
+	exit 1
+fi
+
+sleep 10
+keyboard='{"keyboard": [["/snap \uD83D\uDCF7","/guard \uD83D\uDC6E","/relay \uD83D\uDCA1"],["/system \uD83D\uDCCA","/reboot \uD83D\uDCA9","/menu \uD83D\uDD25"]],"resize_keyboard":true,"one_time_keyboard":false}'
+curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d chat_id=$rupor -d parse_mode=Markdown --data-urlencode text="OpenIPC device started." >/dev/null 2>&1
+curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d chat_id=$rupor -d "reply_markup=${keyboard}" -d "text=Please insert command:" >/dev/null 2>&1
+
+polling_timeout=30
+offset=0
+if [ -f "$offset_file" ]; then
+	offset=$( cat $offset_file )
+else
+	echo $offset > $offset_file
+fi
+
+reply_to_msg () {
+	msg_id=$1
+	origin=$2
+	eval toReturn="$3"
+	curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d reply_to_message_id=$msg_id -d chat_id=$origin -d parse_mode=HTML --data-urlencode text="$toReturn" >/dev/null 2>&1
+}
+
+while [ true ]
+do
+	updates=$(curl -s -X GET ${api}/getUpdates?offset=${offset}&timeout=${polling_timeout})
+	status=$(jsonfilter -s "$updates" -e $.ok)
+	if [ $status = 'true' ]; then
+		update_ids=$(jsonfilter -s "$updates" -e $.result[*].update_id)
+		for update_id in $update_ids
+		do
+			offset=$((update_id+1))
+			echo $offset > $offset_file
+			origin=$(jsonfilter -s "$updates"  -e "$.result[@.update_id=$update_id].message.chat.id")
+			msg_id=$(jsonfilter -s "$updates"  -e "$.result[@.update_id=$update_id].message.message_id")
+			command=$(jsonfilter -s "$updates" -e "$.result[@.update_id=$update_id].message.text")
+			is_a_cmd=$(jsonfilter -s "$updates" -e "$.result[@.update_id=$update_id].message.entities[*].type")
+			query_ans=$(jsonfilter -s "$updates" -e "$.result[@.update_id=$update_id].callback_query.id")
+			origin_ans=$(jsonfilter -s "$updates"  -e "$.result[@.update_id=$update_id].callback_query.message.chat.id")
+			if [[ "$origin" != "$rupor" && "$origin_ans" != "$rupor" ]];then
+				curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d reply_to_message_id=$msg_id -d chat_id=$origin -d parse_mode=Markdown --data-urlencode text="This is a Private bot." >/dev/null 2>&1
+				curl -s -X POST $api/leaveChat -d chat_id=$origin >/dev/null 2>&1
+			else
+				if [ "$is_a_cmd" ==  "bot_command" ]; then
+					cmd=$(echo $command |  awk '{print $1}')
+					DATE=`date +%Y-%m-%d_%H:%M:%S`
+					case "$cmd" in
+						("/guard")
+							echo "[ $DATE ] Run /guard command !" | logger -t "telegram_bot" -p daemon.info
+							informex_guard=$("tg_guard.sh")
+							reply_to_msg $msg_id $origin "\${informex_guard}"
+							;;
+						("/menu")
+							echo "[ $DATE ] Run /menu command !" | logger -t "telegram_bot" -p daemon.info
+							curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d chat_id=$rupor -d "reply_markup=${keyboard}" -d "text=Please insert command:" >/dev/null 2>&1
+							;;
+						("/reboot")
+							echo "[ $DATE ] Run /reboot command !" | logger -t "telegram_bot" -p daemon.info
+							informex_reboot=$("tg_reboot.sh")
+							reply_to_msg $msg_id $origin "\${informex_reboot}"
+							;;
+						("/relay")
+							echo "[ $DATE ] Run /relay command !" | logger -t "telegram_bot" -p daemon.info
+							informex_relay=$("tg_relay.sh")
+							reply_to_msg $msg_id $origin "\${informex_relay}"
+							;;
+						("/snap")
+							echo "[ $DATE ] Run /snap command !" | logger -t "telegram_bot" -p daemon.info
+							informex_system=$("tg_snap.sh")
+							reply_to_msg $msg_id $origin "\${informex_system}"
+							;;
+						("/system")
+							echo "[ $DATE ] Run /system command !" | logger -t "telegram_bot" -p daemon.info
+							informex_system=$("tg_system.sh")
+							reply_to_msg $msg_id $origin "\${informex_system}"
+							;;
+						(*)
+							echo "[ $DATE ] $cmd command not enabled" | logger -t "telegram_bot" -p daemon.info
+							informex_unknown="This command is not enabled."
+							reply_to_msg $msg_id $origin "\${informex_unknown}"
+							;;
+					esac
+				#else
+				#	curl -s -X POST -H "Charset: UTF-8" $api/sendMessage -d reply_to_message_id=$msg_id -d chat_id=$origin -d parse_mode=Markdown --data-urlencode text="Is not a command." >/dev/null 2>&1
+				fi
+			fi
+		done
+	fi
+	sleep 1
+done &