From e276ac479f45e4fba7cf088048b4d80895092d2a Mon Sep 17 00:00:00 2001 From: Cameron Thompson <50184035+iamromulan@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:29:07 -0400 Subject: [PATCH] Add overlay-init-watchdog also updated pre/post scripts --- .../SDXPINN-mount-fix/CONTROL/postinst | 7 ++- opkg-source/SDXPINN-mount-fix/CONTROL/postrm | 1 - opkg-source/SDXPINN-mount-fix/CONTROL/prerm | 9 +++- .../root/etc/init.d/init-overlay-watchdog | 20 +++++++++ .../root/etc/opkg/distfeeds.conf | 44 +++++++++++++++++++ .../root/usr/sbin/init-overlay-watchdog.sh | 39 ++++++++++++++++ 6 files changed, 117 insertions(+), 3 deletions(-) delete mode 100644 opkg-source/SDXPINN-mount-fix/CONTROL/postrm create mode 100644 opkg-source/SDXPINN-mount-fix/root/etc/init.d/init-overlay-watchdog create mode 100644 opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf create mode 100644 opkg-source/SDXPINN-mount-fix/root/usr/sbin/init-overlay-watchdog.sh diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/postinst b/opkg-source/SDXPINN-mount-fix/CONTROL/postinst index f30dc30..0106eea 100644 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/postinst +++ b/opkg-source/SDXPINN-mount-fix/CONTROL/postinst @@ -2,9 +2,14 @@ # Make the init script executable chmod +x /etc/init.d/mount-fix +chmod +x /etc/init.d/init-overlay-watchdog +chmod +x /usr/sbin/init-overlay-watchdog.sh # Enable and start the service service mount-fix enable +service init-overlay-watchdog enable service mount-fix start - +opkg update +opkg install inotifywait inotifywatch +service init-overlay-watchdog start exit 0 diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/postrm b/opkg-source/SDXPINN-mount-fix/CONTROL/postrm deleted file mode 100644 index 2c9eadf..0000000 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/postrm +++ /dev/null @@ -1 +0,0 @@ -#!/bin/ash \ No newline at end of file diff --git a/opkg-source/SDXPINN-mount-fix/CONTROL/prerm b/opkg-source/SDXPINN-mount-fix/CONTROL/prerm index 2c9eadf..e9c48b3 100644 --- a/opkg-source/SDXPINN-mount-fix/CONTROL/prerm +++ b/opkg-source/SDXPINN-mount-fix/CONTROL/prerm @@ -1 +1,8 @@ -#!/bin/ash \ No newline at end of file +#!/bin/ash + +service stop mount-fix +service stop init-overlay-watchdog +service disable mount-fix +service disable init-overlay-watchdog + +exit 0 \ No newline at end of file diff --git a/opkg-source/SDXPINN-mount-fix/root/etc/init.d/init-overlay-watchdog b/opkg-source/SDXPINN-mount-fix/root/etc/init.d/init-overlay-watchdog new file mode 100644 index 0000000..74c4c04 --- /dev/null +++ b/opkg-source/SDXPINN-mount-fix/root/etc/init.d/init-overlay-watchdog @@ -0,0 +1,20 @@ +#!/bin/ash /etc/rc.common + +START=04 +USE_PROCD=1 + +start_service() { + procd_open_instance + procd_set_param command /usr/sbin/init-overlay-watchdog.sh + procd_set_param respawn 3600 5 5 + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param pidfile /var/run/init-overlay-watchdog.pid + procd_set_param tracking + procd_close_instance +} + +stop_service() { + echo "Stopping init-overlay-watchdog service" + # `procd` will handle stopping the service and its processes +} diff --git a/opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf b/opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf new file mode 100644 index 0000000..b1b2120 --- /dev/null +++ b/opkg-source/SDXPINN-mount-fix/root/etc/opkg/distfeeds.conf @@ -0,0 +1,44 @@ +# src/gz openwrt_core https://downloads.openwrt.org/releases/22.03.5/targets/sdx75/generic/packages +src/gz openwrt_base https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/base +src/gz openwrt_luci https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/luci +src/gz openwrt_packages https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/packages +# src/gz openwrt_qtiagm https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiagm +# src/gz openwrt_qtiargs https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiargs +# src/gz openwrt_qtiaudio https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiaudio +# src/gz openwrt_qtiaudioprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiaudioprop +# src/gz openwrt_qtibsp https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibsp +# src/gz openwrt_qtibspprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibspprop +# src/gz openwrt_qtibt https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibt +# src/gz openwrt_qtibtprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibtprop +# src/gz openwrt_qticore https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticore +# src/gz openwrt_qticoreinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticoreinternal +# src/gz openwrt_qticoreprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticoreprop +# src/gz openwrt_qtictainternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtictainternal +# src/gz openwrt_qtidata https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidata +# src/gz openwrt_qtidatainternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidatainternal +# src/gz openwrt_qtidataprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidataprop +# src/gz openwrt_qtiipq https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipq +# src/gz openwrt_qtiipqezmesh https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipqezmesh +# src/gz openwrt_qtiipqprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipqprop +# src/gz openwrt_qtilocation https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocation +# src/gz openwrt_qtilocationinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocationinternal +# src/gz openwrt_qtilocationprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocationprop +# src/gz openwrt_qtimsdcprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtimsdcprop +# src/gz openwrt_qtinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtinternal +# src/gz openwrt_qtipal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtipal +# src/gz openwrt_qtiperfprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiperfprop +# src/gz openwrt_qtippatprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtippatprop +# src/gz openwrt_qtiquectel https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiquectel +# src/gz openwrt_qtiquectelprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiquectelprop +# src/gz openwrt_qtirilprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtirilprop +# src/gz openwrt_qtisecurity https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurity +# src/gz openwrt_qtisecurityinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurityinternal +# src/gz openwrt_qtisecurityprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurityprop +# src/gz openwrt_qtisensorsinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisensorsinternal +# src/gz openwrt_qtisensorsprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisensorsprop +# src/gz openwrt_qtissdk https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissdk +# src/gz openwrt_qtissmgr https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissmgr +# src/gz openwrt_qtissmgrprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissmgrprop +# src/gz openwrt_qtiwlan https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiwlan +# src/gz openwrt_qtiwlanprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiwlanprop +src/gz openwrt_routing https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/routing diff --git a/opkg-source/SDXPINN-mount-fix/root/usr/sbin/init-overlay-watchdog.sh b/opkg-source/SDXPINN-mount-fix/root/usr/sbin/init-overlay-watchdog.sh new file mode 100644 index 0000000..92a8d02 --- /dev/null +++ b/opkg-source/SDXPINN-mount-fix/root/usr/sbin/init-overlay-watchdog.sh @@ -0,0 +1,39 @@ +#!/bin/ash + +# Paths to monitor and synchronize +WATCH_DIR="/etc/rc.d" +TARGET_DIR="/real_rootfs/etc/rc.d" + +# Function to synchronize init scripts +synchronize_init_scripts() { + mount -o remount,rw /real_rootfs + # Copy new or updated symlinks from WATCH_DIR to TARGET_DIR + for link in "$WATCH_DIR"/*; do + if [ -L "$link" ]; then + link_name=$(basename "$link") + if [ ! -e "$TARGET_DIR/$link_name" ] || [ "$link" -nt "$TARGET_DIR/$link_name" ]; then + cp -af "$link" "$TARGET_DIR/$link_name" + fi + fi + done + + # Remove symlinks in TARGET_DIR that no longer exist in WATCH_DIR + for link in "$TARGET_DIR"/*; do + if [ -L "$link" ]; then + link_name=$(basename "$link") + if [ ! -e "$WATCH_DIR/$link_name" ]; then + rm -f "$TARGET_DIR/$link_name" + fi + fi + done + mount -o remount,ro /real_rootfs +} + +# Initial synchronization +synchronize_init_scripts + +# Monitor WATCH_DIR for changes using inotifywait +while true; do + inotifywait -e create,delete,modify,move "$WATCH_DIR" + synchronize_init_scripts +done