diff --git a/general/overlay/etc/init.d/S10modules b/general/overlay/etc/init.d/S10modules
index 6ed9e789..acc14423 100755
--- a/general/overlay/etc/init.d/S10modules
+++ b/general/overlay/etc/init.d/S10modules
@@ -10,12 +10,13 @@ case "$1" in
 		[ -r /etc/modules ] || exit 0
 		while read module args; do
 			case "$module" in
-				""|"#"*) continue
-				;;
+				""|"#"*)
+					continue
+					;;
 			esac
 
 			# attempt to load modules
-			modprobe ${module} ${args} >/dev/null
+			modprobe ${module} ${args} > /dev/null
 		done < /etc/modules
 		;;
 esac
diff --git a/general/overlay/etc/init.d/S21rngd b/general/overlay/etc/init.d/S21rngd
index 547719c2..2da62c66 100755
--- a/general/overlay/etc/init.d/S21rngd
+++ b/general/overlay/etc/init.d/S21rngd
@@ -9,15 +9,13 @@ PID_FILE="/var/run/${NAME}.pid"
 # Read configuration variable file if it is present
 [ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
 
-start()
-{
+start() {
 	printf "Starting ${NAME}: "
 	start-stop-daemon -S -q -x "${DAEMON}" -- ${DAEMON_ARGS}
 	[ $? = 0 ] && echo "OK" || echo "FAIL"
 }
 
-stop()
-{
+stop() {
 	printf "Stopping ${NAME}: "
 	# This daemon does not exit properly with the default TERM signal unless
 	# it's forced to work by something reading /dev/random. Killing it and
diff --git a/general/overlay/etc/init.d/S30customizer b/general/overlay/etc/init.d/S30customizer
index 3d572c42..225dea4a 100755
--- a/general/overlay/etc/init.d/S30customizer
+++ b/general/overlay/etc/init.d/S30customizer
@@ -2,6 +2,11 @@
 
 case "$1" in
 	start)
-	system_fb
-	;;
+		system_fb
+		;;
+
+	*)
+		echo "Usage: $0 {start}"
+		exit 1
+		;;
 esac
diff --git a/general/overlay/etc/init.d/S40mdev b/general/overlay/etc/init.d/S40mdev
index e2dad6dd..4591ab1b 100755
--- a/general/overlay/etc/init.d/S40mdev
+++ b/general/overlay/etc/init.d/S40mdev
@@ -1,23 +1,14 @@
 #!/bin/sh
-#
-# Start mdev....
-#
 
 case "$1" in
 	start)
 		echo "Starting mdev..."
-		echo /sbin/mdev >/proc/sys/kernel/hotplug
+		echo /sbin/mdev > /proc/sys/kernel/hotplug
 		/sbin/mdev -s
 		;;
 
-	stop)
-		;;
-
-	restart|reload)
-		;;
-
 	*)
-		echo "Usage: $0 {start|stop|restart|reload}"
+		echo "Usage: $0 {start}"
 		exit 1
 		;;
 esac
diff --git a/general/overlay/etc/init.d/S94rc.local b/general/overlay/etc/init.d/S94rc.local
index ea83b817..fedddf84 100755
--- a/general/overlay/etc/init.d/S94rc.local
+++ b/general/overlay/etc/init.d/S94rc.local
@@ -1,40 +1,20 @@
 #!/bin/sh
-#
-# Start rc.local
-#
 
 start() {
-	echo "Starting rc.local"
-	/etc/rc.local
-}
-
-restart() {
-	echo "Restarting rc.local"
 	/etc/rc.local
 }
 
 stop() {
-	echo "Stopping rc.local"
-	# Check if rc.local.stop exists and if so, execute it
-	if [ -x /etc/rc.local.stop ]; then
-		/etc/rc.local.stop
-	else
-		echo "/etc/rc.local.stop not found or not executable."
-	fi
+	[ -x /etc/rc.local.stop ] && /etc/rc.local.stop
 }
 
 case "$1" in
-	start)
-		start
-		;;
-	restart|reload)
-		restart
-		;;
-	stop)
-		stop
+	start|stop)
+		"$1"
 		;;
+
 	*)
-		echo "Usage: $0 {start|stop|restart|reload}"
+		echo "Usage: $0 {start|stop}"
 		exit 1
 		;;
 esac
diff --git a/general/overlay/etc/init.d/S99watchdog b/general/overlay/etc/init.d/S99watchdog
deleted file mode 100755
index c23d0b8a..00000000
--- a/general/overlay/etc/init.d/S99watchdog
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-DAEMON="watchdog"
-
-WATCHDOG_ENABLED=false
-WATCHDOG_TIMEOUT=60
-
-SUPPORTED_VENDORS="ingenic"
-WATCHDOG_ARGS="-T $WATCHDOG_TIMEOUT /dev/watchdog"
-WATCHDOG_VENDOR=$(ipcinfo -v)
-
-vendor_supported() {
-	for vendor in $SUPPORTED_VENDORS; do
-		[ "$WATCHDOG_VENDOR" = "$vendor" ] && return 0
-	done
-	return 1
-}
-
-start()
-{
-	if [ "$(cli -g .watchdog.enabled)" = "true" ]; then
-		printf "Starting ${DAEMON}: "
-		echo "majestic watchdog enabled"
-		exit 0
-	fi
-
-	if vendor_supported && [ "$WATCHDOG_ENABLED" = "true" ]; then
-		printf "Starting ${DAEMON}: "
-		start-stop-daemon -b -S -q -x "/sbin/${DAEMON}" -- ${WATCHDOG_ARGS}
-		if [ $? = 0 ]; then
-			echo "OK"
-		else
-			echo "FAIL"
-		fi
-	else
-		echo "Watchdog: System watchdog disabled"
-		exit 0
-	fi
-}
-
-stop()
-{
-	printf "Stopping ${DAEMON}: "
-	if start-stop-daemon -K -q -s KILL -n "${DAEMON}"; then
-		echo "OK"
-	else
-		echo "FAIL"
-	fi
-}
-
-case "$1" in
-	start|stop)
-		"$1"
-		;;
-
-	restart|reload)
-		stop
-		start
-		;;
-
-	*)
-		echo "Usage: $0 {start|stop|restart|reload}" >&2
-		exit 1
-		;;
-esac
diff --git a/general/overlay/etc/init.d/rcS b/general/overlay/etc/init.d/rcS
index d9ae88ea..3b28ce57 100755
--- a/general/overlay/etc/init.d/rcS
+++ b/general/overlay/etc/init.d/rcS
@@ -9,7 +9,7 @@ export TZ=$(cat /etc/TZ)
 
 # Start all init scripts in /etc/init.d
 # executing them in numerical order.
-for i in /etc/init.d/S??* ; do
+for i in /etc/init.d/S??*; do
 	# Ignore dangling symlinks (if any).
 	[ ! -f "$i" ] && continue
 
diff --git a/general/overlay/etc/network/if-post-down.d/bridge b/general/overlay/etc/network/if-post-down.d/bridge
index 2f7cb41a..ed1d1408 100755
--- a/general/overlay/etc/network/if-post-down.d/bridge
+++ b/general/overlay/etc/network/if-post-down.d/bridge
@@ -26,5 +26,5 @@ esac
 brctl delbr $IFACE
 
 for i in $INTERFACES; do
-  ip link set $i down
+	ip link set $i down
 done
diff --git a/general/overlay/etc/profile b/general/overlay/etc/profile
index 2c255a4a..95216697 100644
--- a/general/overlay/etc/profile
+++ b/general/overlay/etc/profile
@@ -4,14 +4,15 @@ export HOME=${HOME:-/root}
 export TZ=$(cat /etc/TZ)
 export SENSOR=$(fw_printenv -n sensor)
 
-echo_c() { echo -ne "\e[1;$1m$2\e[0m"; }
+echo_c() {
+	echo -ne "\e[1;$1m$2\e[0m"
+}
 
 if [ "$PS1" ]; then
 	[ -f /etc/os-release ] && . /etc/os-release
 	[ -f /etc/openipc_banner ] && echo_c 34 "$(cat /etc/openipc_banner)"
 	echo_c 32 "$(printf "%56s" "${GITHUB_VERSION}")"
 	[ -f /etc/openipc_donors ] && echo_c 37 "\n\n$(cat /etc/openipc_donors)\n\n"
-	#
 	if [ "$(id -u)" -eq 0 ]; then
 		export PS1='\u@\h:\w\# '
 	else
@@ -21,7 +22,9 @@ fi
 
 export EDITOR='/bin/vi'
 
-[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
+[ -x /usr/bin/arp ] || arp() {
+	cat /proc/net/arp
+}
 
 differ() {
 	diff -rN "/rom$1" "$1"
@@ -31,43 +34,32 @@ majestic_changes() {
 	diff -L "Majestic changes" -U 3 /rom/etc/majestic.yaml /etc/majestic.yaml
 }
 
-show_modules() {
-	echo; cat /proc/modules | cut -f 1 -d " " | while read module; do echo "Module: $module"; \
-	if [ -d "/sys/module/$module/parameters" ]; then ls /sys/module/$module/parameters/ | while read parameter; \
-	do echo -n "Parameter: $parameter --> "; cat /sys/module/$module/parameters/$parameter; done; fi; echo; done
+set_fullname() {
+	show_fullname >/etc/hostname
 }
 
 show_fullname() {
 	echo "openipc-$(ipcinfo --chip-name)-$(ipcinfo --short-sensor)"
 }
 
-set_fullname() {
-	show_fullname >/etc/hostname
+show_modules() {
+	echo; cat /proc/modules | cut -f1 -d " " | while read module; do echo "Module: $module"; \
+	if [ -d "/sys/module/$module/parameters" ]; then ls /sys/module/$module/parameters/ | while read parameter; \
+	do echo -n "Parameter: $parameter --> "; cat /sys/module/$module/parameters/$parameter; done; fi; echo; done
 }
 
 show_gain() {
-	while sleep 1; do wget -q -O - http://127.0.0.1/metrics/isp | grep ^isp_again; done
+	while sleep 1; do wget -T1 -q -O - http://127.0.0.1/metrics/isp | grep ^isp_again; done
 }
 
 show_wlan() {
-	grep -r '$1..=' /etc/wireless | cut -d '"' -f 4 | sort | grep -e $(fw_printenv -n soc) -e generic
+	grep -r '$1..=' /etc/wireless | cut -d '"' -f4 | sort | grep -e $(fw_printenv -n soc) -e generic
 }
 
 network() {
 	/etc/init.d/S40network "$1"
 }
 
-switch_debug() {
-	[ "$1" = "on" ] && action='+' report='enabled' || action='-' report='disabled'
-	mount | grep -q 'debugfs' || mount -t debugfs none /sys/kernel/debug
-	echo "${action}p" > /sys/kernel/debug/dynamic_debug/control
-	for entry in mmc_core avpu squashfs mtdblock; do
-		echo "module $entry -p" > /sys/kernel/debug/dynamic_debug/control
-	done
-	echo "file fs/sysfs/file.c -p" > /sys/kernel/debug/dynamic_debug/control
-	echo "Dynamic debug for all files has been $report."
-}
-
 # Source configuration files from /etc/profile.d
 for i in /etc/profile.d/*.sh; do
 	[ -r "$i" ] && . $i
diff --git a/general/overlay/etc/wireless/usb b/general/overlay/etc/wireless/usb
index 2f2638de..b0503440 100755
--- a/general/overlay/etc/wireless/usb
+++ b/general/overlay/etc/wireless/usb
@@ -192,9 +192,9 @@ fi
 
 # T31 ZTE K540
 if [ "$1" = "atbm603x-t31-zte-k540" ]; then
-        set_gpio 51 0
-        modprobe atbm603x_wifi_usb
-        exit 0
+	set_gpio 51 0
+	modprobe atbm603x_wifi_usb
+	exit 0
 fi
 
 exit 1
diff --git a/general/overlay/lib/mdev/automount.sh b/general/overlay/lib/mdev/automount.sh
index 67f00417..bab736ad 100755
--- a/general/overlay/lib/mdev/automount.sh
+++ b/general/overlay/lib/mdev/automount.sh
@@ -2,17 +2,15 @@
 
 destdir=/mnt
 
-my_umount()
-{
-	if grep -qs "^/dev/$1 " /proc/mounts ; then
-		umount "${destdir}/$1";
+my_umount() {
+	if grep -qs "^/dev/$1 " /proc/mounts; then
+		umount "${destdir}/$1"
 	fi
 
 	[ -d "${destdir}/$1" ] && rmdir "${destdir}/$1"
 }
 
-my_mount()
-{
+my_mount() {
 	mkdir -p "${destdir}/$1" || exit 1
 
 	if ! mount -t auto -o sync "/dev/$1" "${destdir}/$1"; then
@@ -25,18 +23,19 @@ my_mount()
 	[ -d "${destdir}/$1/autoconfig" ] && cp -afv ${destdir}/$1/autoconfig/* / | logger -s -p daemon.info -t autoconfig
 
 	# execution of the specified commands one time
-	[ -f "${destdir}/$1/autoconfig.sh" ] && (sh ${destdir}/$1/autoconfig.sh ; rm -f ${destdir}/$1/autoconfig.sh) | logger -s -p daemon.info -t autoconfig
+	[ -f "${destdir}/$1/autoconfig.sh" ] && (sh ${destdir}/$1/autoconfig.sh; rm -f ${destdir}/$1/autoconfig.sh) | logger -s -p daemon.info -t autoconfig
 
 	# execution of the specified commands
 	[ -f "${destdir}/$1/autostart.sh" ] && sh ${destdir}/$1/autostart.sh | logger -s -p daemon.info -t autostart
 }
 
 case "${ACTION}" in
-add|"")
-	my_umount ${MDEV}
-	my_mount ${MDEV}
-	;;
-remove)
-	my_umount ${MDEV}
-	;;
+	add|"")
+		my_umount ${MDEV}
+		my_mount ${MDEV}
+		;;
+
+	remove)
+		my_umount ${MDEV}
+		;;
 esac
diff --git a/general/package/datalink/files/S98datalink b/general/package/datalink/files/S98datalink
index 6d1c5b64..f2082801 100755
--- a/general/package/datalink/files/S98datalink
+++ b/general/package/datalink/files/S98datalink
@@ -4,37 +4,45 @@
 #
 . /etc/datalink.conf
 chip=$(ipcinfo -c)
+skip=$(fw_printenv -n fpv)
 fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2)
 
 case "$1" in
 	start)
+		if [ ${skip} = "true" ]; then
+			sed -i "s/console/#console/g" /etc/inittab
+		elif [ ${skip} = "false" ]; then
+			sed -i "s/#console/console/g" /etc/inittab
+			exit 0
+		fi
+
 		if ! [ -f /etc/system.ok ]; then
 			tweaksys ${chip}
 		fi
 
 		echo "Starting FPV datalink..."
 		if [ ${fw} = "lte" ]; then
-		if [ ${usb_modem} = "true" ]; then
-		echo "Starting lte modem configuration..."
-		echo "ToDo: Running usb_modeswitch or other shit here..."
-		fi
-		# for the future
-		#cli -s .outgoing.url1 udp://${gs_ipaddr}:${gs_port}
-		if [ ${use_zt} = "true" ]; then
-		echo "Starting ZeroTier-One daemon..."
-		/usr/sbin/zerotier-one -d &
-		if [ ! -f /var/lib/zerotier-one/networks.d/${zt_netid}.conf ]; then
-		sleep 8
-		zerotier-cli join ${zt_netid} &> /dev/null
-		echo "Don't forget authorize in the my.zerotier.com!"
-		fi
-		fi
-		if [ ${telemetry} = "true" ]; then
-		telemetry start
-		fi
+			if [ ${usb_modem} = "true" ]; then
+				echo "Starting lte modem configuration..."
+				echo "ToDo: Running usb_modeswitch or other shit here..."
+			fi
+			# for the future
+			#cli -s .outgoing.url1 udp://${gs_ipaddr}:${gs_port}
+			if [ ${use_zt} = "true" ]; then
+				echo "Starting ZeroTier-One daemon..."
+				/usr/sbin/zerotier-one -d &
+				if [ ! -f /var/lib/zerotier-one/networks.d/${zt_netid}.conf ]; then
+					sleep 8
+					zerotier-cli join ${zt_netid} &> /dev/null
+					echo "Don't forget authorize in the my.zerotier.com!"
+				fi
+			fi
+			if [ ${telemetry} = "true" ]; then
+				telemetry start
+			fi
 		else
-		echo "Starting wifibroadcast service..."
-		wifibroadcast start
+			echo "Starting wifibroadcast service..."
+			wifibroadcast start
 		fi
 		;;