From e87c0f7a492a665b77efaaab715ba4d4adf1605c Mon Sep 17 00:00:00 2001 From: desertwitch <24509509+desertwitch@users.noreply.github.com> Date: Tue, 17 Feb 2026 08:41:41 +0100 Subject: [PATCH] feat: add SMART monitoring terminal --- board/shredos/fsoverlay/etc/inittab | 2 ++ .../fsoverlay/usr/bin/smartdmt_launcher | 18 +++++++++++++++ configs/shredos_defconfig | 1 + configs/shredos_i686_lite_defconfig | 1 + configs/shredos_iso_extra_defconfig | 1 + configs/shredos_iso_extra_i686_lite_defconfig | 1 + configs/shredos_lite_defconfig | 1 + package/Config.in | 1 + package/smartdmt/Config.in | 18 +++++++++++++++ package/smartdmt/smartdmt.mk | 23 +++++++++++++++++++ 10 files changed, 67 insertions(+) create mode 100755 board/shredos/fsoverlay/usr/bin/smartdmt_launcher create mode 100644 package/smartdmt/Config.in create mode 100644 package/smartdmt/smartdmt.mk diff --git a/board/shredos/fsoverlay/etc/inittab b/board/shredos/fsoverlay/etc/inittab index d2887d1642..c31ca0ccf5 100644 --- a/board/shredos/fsoverlay/etc/inittab +++ b/board/shredos/fsoverlay/etc/inittab @@ -16,6 +16,8 @@ rcS:12345:wait:/etc/init.d/rcS sole::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL 1:3:respawn:/sbin/getty 38400 tty1 -n -l /usr/bin/nwipe_launcher 2:3:respawn:/sbin/getty 38400 tty2 -n -l /bin/sh +# tty3 is reserved for the regular console +4:3:respawn:/sbin/getty 38400 tty4 -n -l /usr/bin/smartdmt_launcher # Stuff to do for the 3-finger salute #ca::ctrlaltdel:/sbin/reboot diff --git a/board/shredos/fsoverlay/usr/bin/smartdmt_launcher b/board/shredos/fsoverlay/usr/bin/smartdmt_launcher new file mode 100755 index 0000000000..22e9e829f0 --- /dev/null +++ b/board/shredos/fsoverlay/usr/bin/smartdmt_launcher @@ -0,0 +1,18 @@ +#!/bin/sh +trap "echo" INT + +sleep 2 +if [ -x /usr/bin/smartdmt ]; then + while true; do + /usr/bin/smartdmt + echo "Press ENTER to restart SMART Device Monitoring Terminal..." + read dummy + clear + done +else + while true; do + echo "SMART Device Monitoring Terminal is not available in this version of ShredOS." + read dummy + clear + done +fi diff --git a/configs/shredos_defconfig b/configs/shredos_defconfig index 432bafa054..f46f40ebea 100644 --- a/configs/shredos_defconfig +++ b/configs/shredos_defconfig @@ -45,6 +45,7 @@ BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_EXFATPROGS=y BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_SMARTDMT=y BR2_PACKAGE_ASCII_INVADERS=y BR2_PACKAGE_FBDUMP=y BR2_PACKAGE_FBGRAB=y diff --git a/configs/shredos_i686_lite_defconfig b/configs/shredos_i686_lite_defconfig index fca66cde37..f58bdaf72e 100644 --- a/configs/shredos_i686_lite_defconfig +++ b/configs/shredos_i686_lite_defconfig @@ -24,6 +24,7 @@ BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_SMARTDMT=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_I915=y BR2_PACKAGE_LINUX_FIRMWARE_XE=y diff --git a/configs/shredos_iso_extra_defconfig b/configs/shredos_iso_extra_defconfig index 8fa56cae2d..c97d00e426 100644 --- a/configs/shredos_iso_extra_defconfig +++ b/configs/shredos_iso_extra_defconfig @@ -46,6 +46,7 @@ BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_EXFATPROGS=y BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_SMARTDMT=y BR2_PACKAGE_ASCII_INVADERS=y BR2_PACKAGE_FBDUMP=y BR2_PACKAGE_FBGRAB=y diff --git a/configs/shredos_iso_extra_i686_lite_defconfig b/configs/shredos_iso_extra_i686_lite_defconfig index 82a7318915..4300f5f17e 100644 --- a/configs/shredos_iso_extra_i686_lite_defconfig +++ b/configs/shredos_iso_extra_i686_lite_defconfig @@ -25,6 +25,7 @@ BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_SMARTDMT=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_I915=y BR2_PACKAGE_LINUX_FIRMWARE_XE=y diff --git a/configs/shredos_lite_defconfig b/configs/shredos_lite_defconfig index 2105433c0d..cf7a54c4a1 100644 --- a/configs/shredos_lite_defconfig +++ b/configs/shredos_lite_defconfig @@ -25,6 +25,7 @@ BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_SMARTDMT=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_I915=y BR2_PACKAGE_LINUX_FIRMWARE_XE=y diff --git a/package/Config.in b/package/Config.in index b079f74c0f..cef1c0966e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -245,6 +245,7 @@ menu "Filesystem and flash utilities" source "package/sp-oops-extract/Config.in" source "package/squashfs/Config.in" source "package/sshfs/Config.in" + source "package/smartdmt/Config.in" source "package/sunxi-tools/Config.in" source "package/udftools/Config.in" source "package/ufs-utils/Config.in" diff --git a/package/smartdmt/Config.in b/package/smartdmt/Config.in new file mode 100644 index 0000000000..ee61b20676 --- /dev/null +++ b/package/smartdmt/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_SMARTDMT + bool "smartdmt" + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + select BR2_PACKAGE_HOST_GO + help + SMART Device Monitoring Terminal + + https://github.com/desertwitch/smartdmt + +config BR2_PACKAGE_SMARTDMT_GIT_REVISION + string "Git revision (full commit SHA-1 or tag v0.25-v0.40 ..)" + depends on BR2_PACKAGE_SMARTDMT + default "v0.1.4" + help + When 'Git revision' is selected above, this string is passed as the + Git ref to check out. Examples: + - 051e1aa0c9572b26301a33d40689adb544927d11 (full commit SHA-1) + - v0.40 (tag) diff --git a/package/smartdmt/smartdmt.mk b/package/smartdmt/smartdmt.mk new file mode 100644 index 0000000000..092989551e --- /dev/null +++ b/package/smartdmt/smartdmt.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# smartdmt +# +################################################################################ + +SMARTDMT_VERSION = $(call qstrip,$(BR2_PACKAGE_SMARTDMT_GIT_REVISION)) + +SMARTDMT_SITE = https://github.com/desertwitch/smartdmt.git +SMARTDMT_SITE_METHOD = git + +SMARTDMT_LICENSE = MIT +SMARTDMT_LICENSE_FILES = LICENSE + +SMARTDMT_GOMOD = github.com/desertwitch/smartdmt +SMARTDMT_GO_ENV = CGO_ENABLED=0 + +SMARTDMT_LDFLAGS = \ + -X main.Version=$(shell echo $(SMARTDMT_VERSION) | sed 's/^v//' | cut -c1-7) + +SMARTDMT_BUILD_TARGETS = ./cmd/smartdmt + +$(eval $(golang-package))