Compare commits

...

31 Commits

Author SHA1 Message Date
PartialVolume
f5c1da45a9 Merge pull request #468 from desertwitch/upstream-fixes2
Nwipe versioning fixes & add 32-bit EFI to 64-bit builds
2026-02-18 11:57:09 +00:00
desertwitch
b7dcf284c9 chore(board): copy over 32-bit EFI for IMG 2026-02-18 10:58:13 +01:00
desertwitch
95872d0744 fix(nwipe): use less generic variable name 2026-02-18 10:45:23 +01:00
desertwitch
9b9c569e66 fix(nwipe): use sanitized variable 2026-02-18 10:35:40 +01:00
desertwitch
63ad758ad5 fix(nwipe): sanitize global arch variable 2026-02-18 10:33:35 +01:00
desertwitch
68710cedf1 chore(board): add 32-bit EFI to IMG 2026-02-18 10:26:09 +01:00
desertwitch
e2d8217ff8 fix(nwipe): evaluate variables on use 2026-02-18 10:22:40 +01:00
PartialVolume
58399ade5a Merge pull request #467 from desertwitch/smartdmt-readme
Smartdmt documentation
2026-02-18 09:16:48 +00:00
desertwitch
fcd4a17e44 chore(smartdmt): bump default version 2026-02-18 09:30:13 +01:00
desertwitch
5b710a81a6 chore(docs): add smartdmt documentation 2026-02-18 09:30:01 +01:00
desertwitch
6f212156fb chore(nwipe): print out case 2026-02-18 08:51:07 +01:00
desertwitch
03ba568178 chore(nwipe): print out commands 2026-02-18 08:49:33 +01:00
desertwitch
c8f737eb0a chore(nwipe): revert arch dependencies in config
A build may otherwise silently omit building nwipe, and we already check the architecture requirement as part of the pre-configure hook.
2026-02-18 08:13:33 +01:00
desertwitch
e6e4a2bab3 chore(nwipe): add arch dependencies 2026-02-18 08:12:02 +01:00
desertwitch
39d2a25c74 chore(nwipe): rename definition 2026-02-18 08:07:35 +01:00
desertwitch
e1f99a053d chore(nwipe): refactor config 2026-02-18 07:57:39 +01:00
desertwitch
3abe570540 chore(build): always rebuild nwipe for versioning 2026-02-18 07:56:02 +01:00
desertwitch
ecea0be3bd fix(nwipe): version replacement 2026-02-18 07:55:35 +01:00
desertwitch
3200381771 chore(board): add default 32-bit EFI 2026-02-18 07:10:01 +01:00
desertwitch
caf93d8106 chore(iso9660): add 32-bit EFI to 64-bit builds 2026-02-18 07:03:51 +01:00
PartialVolume
2ac8113e93 Merge pull request #465 from desertwitch/ssmart
feat: add SMART monitoring terminal
2026-02-17 23:07:41 +00:00
PartialVolume
54e7f83122 Merge pull request #466 from desertwitch/upstream-fixes2
QoL improvements
2026-02-17 22:32:38 +00:00
desertwitch
3cd5ee3f1e chore(iso9660): combine definitions 2026-02-17 20:28:48 +01:00
desertwitch
e7b2317d05 chore(board): rename iso arch to i686 2026-02-17 18:10:47 +01:00
desertwitch
59ec5813c6 chore(docs): update build targets 2026-02-17 18:10:45 +01:00
desertwitch
b4316be330 chore(board): rename arch to i686 2026-02-17 18:10:39 +01:00
desertwitch
8aeffd36d6 chore(iso9660): refactor for i686 2026-02-17 18:10:35 +01:00
desertwitch
e87c0f7a49 feat: add SMART monitoring terminal 2026-02-17 13:39:15 +01:00
PartialVolume
fd8eb7b898 Merge pull request #462 from PartialVolume/add-memtest86
Added memtest86+ to ShredOS boot menus
2026-02-11 10:36:14 +00:00
PartialVolume
e17537311c Added memtest86+ to both isolinux and grub2 boot menus, included the memtest package in all defconfigs 2026-02-11 10:33:54 +00:00
PartialVolume
92d50b61fd Merge pull request #458 from PartialVolume/update_nwipe_stable_release_selection
Simplify selection of git commit hash or revision tag v0.40 in menuconfig
2026-02-05 01:47:46 +00:00
24 changed files with 272 additions and 93 deletions

View File

@@ -226,7 +226,7 @@ Create the new ShredOS .img file
Copy shredos_with_mods.img to the root of the Ventoy USB stick and boot the Ventoy USB stick. You can confirm your changes to the kernel commmand line by booting ShredOS, switching to a virtual terminal ALT F2, and type `more /proc/cmdline`
## Virtual Terminals
ShredOS has three tty terminals, ALT-F1 (Where nwipe is initially launched), ALT-F2 (A virtual terminal), ALT-F3 (console log, login required which is root with no password). Typical use of a virtual terminal might be to run other disk related tools such as hdparm to remove hidden sectors or hexedit to display the contents of the disk as hexadecimal values.
ShredOS has four tty terminals, ALT-F1 (Where nwipe is initially launched), ALT-F2 (A virtual terminal), ALT-F3 (console log, login required which is root with no password), ALT-F4 ([SMART Monitoring Terminal](#smartdmt)). Typical use of a virtual terminal might be to run other disk related tools such as hdparm to remove hidden sectors or hexedit to display the contents of the disk as hexadecimal values.
## How to exclude the FAT formatted ShredOS Boot drive from Nwipe, interactive and autonuke modes
There are two methods that can be used to exclude the FAT formatted ShredOS boot drive from appearing in nwipe's interactive mode or autonuke modes.
@@ -577,7 +577,13 @@ After running the setfont command.
## Included Packages
#### smartmontools
Nwipes ability to detect serial numbers on USB devices now works on USB bridges who's chipset supports that functionality. Smartmontools provides nwipe with that capability. Smartmontools can be used in the second or third virtual terminal. ALT-F2 and ALT-F3.
Nwipes ability to detect serial numbers on USB devices now works on USB bridges who's chipset supports that functionality. Smartmontools provides nwipe with that capability. Smartmontools can be used in the second or third virtual terminal (ALT-F2 and ALT-F3).
#### smartdmt
For convenience a SMART Monitoring Terminal is available in the fourth virtual terminal (ALT-F4).
It allows to observe all SMART information on one screen and without interacting with the command-line.
![smartdmt](/images/smartdmt.gif)
#### hdparm
hdparm has many uses and is a powerfull tool. Although Nwipe will be adding ATA secure erase capability, i.e using the hard disk own firmware to initiate an erase, nwipe currently wipes drives using the traditional method of writing to every block. If you want to initiate a ATA secure erase using the drives firmware then hdparm will be of use.
@@ -807,18 +813,13 @@ $ dd if=shredos-20200412.img of=/dev/sdx (20200412 will be the day you compiled,
#### The following configurations are available to build different targets:
- `make shredos_defconfig` - build USB image and hybrid ISO (64-bit)
- `make shredos_i586_defconfig` - build USB image and hybrid ISO (32-bit)
- `make shredos_img_defconfig` - build USB image only (64-bit)
- `make shredos_img_i586_defconfig` - build USB image only (32-bit)
- `make shredos_iso_defconfig` - build hybrid ISO only (64-bit)
- `make shredos_iso_i586_defconfig` - build hybrid ISO only (32-bit)
- `make shredos_iso_legacy_defconfig` - build legacy ISO only (64-bit)
- `make shredos_iso_legacy_i586_defconfig` - build legacy ISO only (32-bit)
- `make shredos_lite_defconfig` - build lighter USB image and hybrid ISO (64-bit)
- `make shredos_i686_lite_defconfig` - build lighter USB image and hybrid ISO (32-bit)
#### The following experimental configurations are available for testing:
- `make shredos_iso_extra_defconfig` - build hybrid ISO with appended writeable partition (64-bit)
- `make shredos_iso_extra_i586_defconfig` - build hybrid ISO with appended writeable partition (32-bit)
- `make shredos_iso_extra_i686_lite_defconfig` - build lighter hybrid ISO with appended writeable partition (32-bit)
Do note that loading a configuration should typically be the last step before `make`.
@@ -833,8 +834,6 @@ Do note that loading a configuration should typically be the last step before `m
> partition at burn-time, which then also allows customization of the GRUB
> configuration.
>
>The **extra** ISOs (experimental) have an "extra" write partition appended.
>The **legacy** ISOs work in BIOS and UEFI, but only as burned to CD/DVD-ROM.
#### Building multiple configurations:

BIN
board/shredos/bootia32.efi Normal file

Binary file not shown.

View File

@@ -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

View File

@@ -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

View File

@@ -5,14 +5,17 @@ image boot.vfat {
file boot/grub/grub.cfg { image = 'grub.cfg' }
file boot/version.txt { image = 'version.txt' }
file boot/shredos.id { image = '/dev/null' }
file boot/memtest { image = 'memtest.bin' }
file EFI/BOOT/bootia32.efi { image = 'bootia32.efi' }
file EFI/BOOT/bootx64.efi { image = 'bootx64.efi' }
file EFI/BOOT/grub.cfg { image = 'grub.cfg' }
file EFI/BOOT/memtest.efi { image = 'memtest.efi' }
file shredos.ico { image = 'shredos.ico' }
file README.txt { image = 'README.txt' }
file autorun.inf { image = 'autorun.inf' }
}
size = 372809984
size = 119873792
}
image shredos.img {

View File

@@ -5,15 +5,17 @@ image boot.vfat {
file boot/grub/grub.cfg { image = 'grub.cfg' }
file boot/version.txt { image = 'version.txt' }
file boot/shredos.id { image = '/dev/null' }
file boot/memtest { image = 'memtest.bin' }
file EFI/BOOT/bootia32.efi { image = 'bootia32.efi' }
file EFI/BOOT/bootx64.efi { image = 'bootx64.efi'}
file EFI/BOOT/grub.cfg { image = 'grub.cfg' }
file EFI/BOOT/memtest.efi { image = 'memtest.efi' }
file shredos.ico { image = 'shredos.ico' }
file README.txt { image = 'README.txt' }
file autorun.inf { image = 'autorun.inf' }
}
size = 92344064
size = 115277568
}
image shredos.img {

View File

@@ -5,6 +5,35 @@ menuentry "ShredOS" {
linux /boot/bzImage console=tty3 loglevel=3
}
menuentry "ShredOS (nomodeset)" {
menuentry "ShredOS (nomodeset - display issues? try this)" {
linux /boot/bzImage console=tty3 loglevel=3 nomodeset
}
if [ "${grub_platform}" = "efi" ]; then
menuentry "Memtest86+ (BIOS legacy emulation for USB keyboard)" {
linux /EFI/BOOT/memtest.efi keyboard=legacy
}
menuentry "Memtest86+ (USB keyboards)" {
linux /EFI/BOOT/memtest.efi keyboard=both
}
menuentry "Memtest86+ (Disable SMP and memory identification)" {
linux /EFI/BOOT/memtest.efi nosmp nosm nobench
}
fi
if [ "${grub_platform}" = "pc" ]; then
menuentry "Memtest86+ (Use BIOS legacy emulation for USB keyboards)" {
linux /boot/memtest keyboard=legacy
}
menuentry "Memtest86+ (USB keyboards)" {
linux /boot/memtest keyboard=both
}
menuentry "Memtest86+ (Disable SMP and memory identification)" {
linux /boot/memtest nosmp nosm nobench
}
menuentry "Memtest86+ (Serial line RS232, ttyS0,115200)" {
linux /boot/memtest console=ttyS0,115200
}
fi

View File

@@ -6,7 +6,34 @@ menuentry "ShredOS" {
initrd __INITRD_PATH__
}
menuentry "ShredOS (nomodeset)" {
menuentry "ShredOS (nomodeset - display issues? try this)" {
linux __KERNEL_PATH__ console=tty3 loglevel=3 nomodeset
initrd __INITRD_PATH__
}
if [ "${grub_platform}" = "efi" ]; then
menuentry "Memtest86+ (BIOS legacy emulation for USB keyboard)" {
linux /EFI/BOOT/memtest.efi keyboard=legacy
}
menuentry "Memtest86+ (USB keyboards)" {
linux /EFI/BOOT/memtest.efi keyboard=both
}
menuentry "Memtest86+ (Disable SMP and memory identification)" {
linux /EFI/BOOT/memtest.efi nosmp nosm nobench
}
fi
if [ "${grub_platform}" = "pc" ]; then
menuentry "Memtest86+ (BIOS legacy emulation for USB keyboard)" {
linux /boot/memtest keyboard=legacy
}
menuentry "Memtest86+ (USB keyboards)" {
linux /boot/memtest keyboard=both
}
menuentry "Memtest86+ (Disable SMP and memory identification)" {
linux /boot/memtest nosmp nosm nobench
}
menuentry "Memtest86+ (Serial line RS232, ttyS0,115200)" {
linux /boot/memtest console=ttyS0,115200
}
fi

View File

@@ -10,6 +10,21 @@ label shredos
append initrd=__INITRD_PATH__ console=tty3 loglevel=3
label shredos-nomodeset
menu label ShredOS (nomodeset)
menu label ShredOS (nomodeset - display issues? try this)
kernel __KERNEL_PATH__
append initrd=__INITRD_PATH__ console=tty3 loglevel=3 nomodeset
label memtest86-bios-legacy-emulation-usb-keyboards
menu label Memtest86+ (use BIOS legacy emulation for USB keyboards)
kernel /boot/memtest
append keyboard=legacy
label memtest86-usb-keyboards
menu label Memtest86+ (USB Keyboards)
kernel /boot/memtest
append keyboard=both
label memtest86-serial
menu label Memtest86+ (Serial line RS232, ttyS0,115200 )
kernel /boot/memtest
append console=ttyS0,115200

View File

@@ -1,20 +1,18 @@
#!/bin/bash -e
if grep -Eq "^BR2_ARCH_IS_64=y$" "${BR2_CONFIG}"; then
MKIMAGE_ARCH=x86_64
MKIMAGE_EFI=bootx64.efi
MKIMAGE_ARCH=x86-64
MKIMAGE_CFG=genimage.cfg
else
MKIMAGE_ARCH=i586
MKIMAGE_EFI=bootia32.efi
MKIMAGE_CFG=genimage_i586.cfg
MKIMAGE_ARCH=i686
MKIMAGE_CFG=genimage_i686.cfg
fi
version=$(cat board/shredos/fsoverlay/etc/shredos/version.txt)
cp "board/shredos/grub.cfg" "${BINARIES_DIR}/grub.cfg" || exit 1
cp "output/target/lib/grub/i386-pc/boot.img" "${BINARIES_DIR}/boot.img" || exit 1
cp "${BINARIES_DIR}/efi-part/EFI/BOOT/${MKIMAGE_EFI}" "${BINARIES_DIR}/${MKIMAGE_EFI}" || exit 1
cp "${BINARIES_DIR}/efi-part/EFI/BOOT/bootia32.efi" "${BINARIES_DIR}/bootia32.efi" || exit 1
cp "${BINARIES_DIR}/efi-part/EFI/BOOT/bootx64.efi" "${BINARIES_DIR}/bootx64.efi" || exit 1
cp "board/shredos/autorun.inf" "${BINARIES_DIR}/autorun.inf" || exit 1

View File

@@ -1,9 +1,9 @@
#!/bin/bash -e
if grep -Eq "^BR2_ARCH_IS_64=y$" "${BR2_CONFIG}"; then
MKIMAGE_ARCH=x86_64
MKIMAGE_ARCH=x86-64
else
MKIMAGE_ARCH=i386
MKIMAGE_ARCH=i686
fi
version=$(cat board/shredos/fsoverlay/etc/shredos/version.txt)

View File

@@ -42,7 +42,8 @@ X32_CONFIGS=(
# Packages always needing rebuild between runs, even for the same architecture.
# This only applies when QUICK_BUILD is enabled, otherwise rebuilds everything.
ALWAYS_REBUILD_PKGS=(
"grub2"
"nwipe" # For specific version/banner patching
"grub2" # For specific bootloader generation
)
################################################################################

View File

@@ -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
@@ -92,6 +93,7 @@ BR2_PACKAGE_KBD=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_LSHW=y
BR2_PACKAGE_LSSCSI=y
BR2_PACKAGE_MEMTEST86=y
BR2_PACKAGE_MINICOM=y
BR2_PACKAGE_NVME=y
BR2_PACKAGE_READ_EDID=y

View File

@@ -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
@@ -40,6 +41,7 @@ BR2_PACKAGE_EDID_DECODE=y
BR2_PACKAGE_HDPARM=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_MEMTEST86=y
BR2_PACKAGE_NVME=y
BR2_PACKAGE_READ_EDID=y
BR2_PACKAGE_PCIUTILS=y

View File

@@ -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
@@ -93,6 +94,7 @@ BR2_PACKAGE_KBD=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_LSHW=y
BR2_PACKAGE_LSSCSI=y
BR2_PACKAGE_MEMTEST86=y
BR2_PACKAGE_MINICOM=y
BR2_PACKAGE_NVME=y
BR2_PACKAGE_READ_EDID=y

View File

@@ -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
@@ -42,6 +43,7 @@ BR2_PACKAGE_EDID_DECODE=y
BR2_PACKAGE_HDPARM=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_MEMTEST86=y
BR2_PACKAGE_NVME=y
BR2_PACKAGE_PCIUTILS=y
BR2_PACKAGE_READ_EDID=y

View File

@@ -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
@@ -42,6 +43,7 @@ BR2_PACKAGE_EDID_DECODE=y
BR2_PACKAGE_HDPARM=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_LM_SENSORS=y
BR2_PACKAGE_MEMTEST86=y
BR2_PACKAGE_NVME=y
BR2_PACKAGE_READ_EDID=y
BR2_PACKAGE_PCIUTILS=y

View File

@@ -44,11 +44,9 @@ ROOTFS_ISO9660_HYBRID_APPEND_PARTITION_TYPE = $(call qstrip,$(BR2_TARGET_ROOTFS_
ifeq ($(BR2_ARCH_IS_64),y)
ROOTFS_ISO9660_EFI_NAME = bootx64.efi
ROOTFS_ISO9660_EFI_NOTNAME = bootia32.efi
ROOTFS_ISO9660_GRUB2_EFI_PREFIX = $(call qstrip,$(GRUB2_PREFIX_x86_64-efi))
else
ROOTFS_ISO9660_EFI_NAME = bootia32.efi
ROOTFS_ISO9660_EFI_NOTNAME = bootx64.efi
ROOTFS_ISO9660_GRUB2_EFI_PREFIX = $(call qstrip,$(GRUB2_PREFIX_i386-efi))
endif
@@ -95,6 +93,17 @@ else
ROOTFS_ISO9660_TMP_TARGET_DIR = $(TARGET_DIR)
endif
################################################################################
# Memtest
################################################################################
define ROOTFS_ISO9660_COPY_MEMTEST_BINARIES
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/memtest.efi \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/memtest.efi
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/memtest.bin \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/memtest
endef
################################################################################
# Reproducible build support
################################################################################
@@ -140,26 +149,39 @@ ROOTFS_ISO9660_EFI_PARTITION_CONTENT = $(BINARIES_DIR)/efi-part
ROOTFS_ISO9660_GRUB2_CONFIG_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub.cfg
ROOTFS_ISO9660_GRUB2_EFI_CONFIG_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/grub.cfg
ifeq ($(BR2_ARCH_IS_64),y)
# Include also the 32-bit bootloader for 64-bit builds
define ROOTFS_ISO9660_EFI_OTHER_ARCH
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi \
$(TOPDIR)/board/shredos/bootx64.efi
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootia32.efi \
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi
endef
else
# Include also the 64-bit bootloader for 32-bit builds
define ROOTFS_ISO9660_EFI_OTHER_ARCH
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi \
$(TOPDIR)/board/shredos/bootia32.efi
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi \
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi
endef
endif
define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
# If 32bit build also copy the bootx64.efi from board/shredos/ so 32bit shredos will boot on a 64 EFI system
if [ "$(BR2_i386)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi; \
fi
# Install memtest binaries to ISO9660 filesystem
$(ROOTFS_ISO9660_COPY_MEMTEST_BINARIES)
# Include also the other achitecture bootloader
$(ROOTFS_ISO9660_EFI_OTHER_ARCH)
# Create file to better find ISO9660 filesystem
$(INSTALL) -D -m 0644 /dev/null \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE)
# Copy EFI bootloader also to ISO9660 filesystem
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME) \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME)
# If 32 bit build we also want the 64 bit EFI installed
if [ "$(BR2_i386)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME)
fi
# If 64bit build copy the bootx64.efi to board/shredos/ as this will be used when building 32bit build
if [ "$(BR2_x86_64)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi $(TOPDIR)/board/shredos/bootx64.efi; \
fi
# Create EFI FAT partition
$(RM) -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH)
mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH))
@@ -257,26 +279,39 @@ define ROOTFS_ISO9660_INSTALL_ISOLINUX_CONFIG
$(ROOTFS_ISO9660_ISOLINUX_CONFIG_PATH)
endef
ifeq ($(BR2_ARCH_IS_64),y)
# Include also the 32-bit bootloader for 64-bit builds
define ROOTFS_ISO9660_EFI_OTHER_ARCH
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi \
$(TOPDIR)/board/shredos/bootx64.efi
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootia32.efi \
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi
endef
else
# Include also the 64-bit bootloader for 32-bit builds
define ROOTFS_ISO9660_EFI_OTHER_ARCH
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootia32.efi \
$(TOPDIR)/board/shredos/bootia32.efi
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi \
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/bootx64.efi
endef
endif
define ROOTFS_ISO9660_INSTALL_GRUB2_EFI
# If 32bit build also copy the bootx64.efi from board/shredos/ so 32bit shredos will boot on a 64 EFI system
if [ "$(BR2_i386)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(TOPDIR)/board/shredos/bootx64.efi $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi; \
fi
# Install memtest binaries to ISO9660 filesystem
$(ROOTFS_ISO9660_COPY_MEMTEST_BINARIES)
# Include also the other achitecture bootloader
$(ROOTFS_ISO9660_EFI_OTHER_ARCH)
# Create file to better find ISO9660 filesystem
$(INSTALL) -D -m 0644 /dev/null \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE)
# Copy EFI bootloader also to ISO9660 filesystem
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME) \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NAME)
# If 32 bit build we also want the 64 bit EFI installed
if [ "$(BR2_i386)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME) \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_GRUB2_EFI_PREFIX)/$(ROOTFS_ISO9660_EFI_NOTNAME)
fi
# If 64bit build copy the bootx64.efi to board/shredos/ as this will be used when building 32bit build
if [ "$(BR2_x86_64)" = "y" ]; then \
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/efi-part/EFI/BOOT/bootx64.efi $(TOPDIR)/board/shredos/bootx64.efi; \
fi
# Create EFI FAT partition
$(RM) -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH)
mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH))

BIN
images/smartdmt.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 KiB

View File

@@ -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"

View File

@@ -8,10 +8,9 @@ config BR2_PACKAGE_NWIPE
help
NWipe secure disk wiping tool (fork of Darik's Boot and Nuke).
if BR2_PACKAGE_NWIPE
config BR2_PACKAGE_NWIPE_SITE
string "nwipe Git repository URL"
depends on BR2_PACKAGE_NWIPE
default "https://github.com/martijnvanbrummelen/nwipe.git"
help
Git repository used to fetch the nwipe sources.
@@ -21,11 +20,10 @@ config BR2_PACKAGE_NWIPE_SITE
config BR2_PACKAGE_NWIPE_GIT_REVISION
string "Git revision (full commit SHA-1 or tag v0.25-v0.40 ..)"
depends on BR2_PACKAGE_NWIPE
default "v0.40"
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)
endif

View File

@@ -4,17 +4,29 @@
#
################################################################################
NWIPE_BUILD_ARCH = $(call qstrip,$(BR2_ARCH))
NWIPE_VERSION = $(call qstrip,$(BR2_PACKAGE_NWIPE_GIT_REVISION))
# Default Git repository URL (never empty).
NWIPE_SITE = https://github.com/martijnvanbrummelen/nwipe.git
ifneq ($(call qstrip,$(BR2_PACKAGE_NWIPE_SITE)),)
NWIPE_SITE = $(call qstrip,$(BR2_PACKAGE_NWIPE_SITE))
endif
NWIPE_DEPENDENCIES = ncurses parted dmidecode coreutils libconfig
NWIPE_SITE_METHOD = git
NWIPE_DEPENDENCIES = ncurses parted dmidecode coreutils libconfig
ifneq ($(call qstrip,$(BR2_PACKAGE_NWIPE_SITE)),)
NWIPE_SITE = $(call qstrip,$(BR2_PACKAGE_NWIPE_SITE))
else
NWIPE_SITE = https://github.com/martijnvanbrummelen/nwipe.git
endif
################################################################################
# Architecture safeguard
################################################################################
define NWIPE_CHECK_ARCH
case "$(NWIPE_BUILD_ARCH)" in \
i686|x86_64) ;; \
*) echo "Unsupported architecture: $(NWIPE_BUILD_ARCH)"; exit 1 ;; \
esac
endef
NWIPE_PRE_CONFIGURE_HOOKS += NWIPE_CHECK_ARCH
################################################################################
# SHREDOS version.txt and banner updater. Updates the nwipe version which
@@ -25,44 +37,32 @@ NWIPE_DEPENDENCIES = ncurses parted dmidecode coreutils libconfig
SHREDOS_VERSION_FILE = board/shredos/fsoverlay/etc/shredos/version.txt
ifeq ($(BR2_PACKAGE_NWIPE),y)
ifeq ($(BR2_PACKAGE_NWIPE_VERSION_GIT_REVISION),y)
# Take first 7 characters of the git revision and append suffix
NWIPE_VERSION_BANNER := $(shell printf "%.7s-commit-dev" "$(BR2_PACKAGE_NWIPE_GIT_REVISION)")
# If version contains a dot, treat it as a release tag
ifneq ($(findstring .,$(NWIPE_VERSION)),)
NWIPE_VERSION_BANNER = $(NWIPE_VERSION)
else
NWIPE_VERSION_BANNER := $(NWIPE_VERSION)
# Otherwise assume it is a development version by hash
NWIPE_VERSION_BANNER = $(shell printf "%.7s-commit-dev" "$(NWIPE_VERSION)")
endif
endif
# Normalize x86_64 to x86-64 for version
NWIPE_VERSION_ARCH = $(if $(filter x86_64,$(NWIPE_BUILD_ARCH)),x86-64,$(NWIPE_BUILD_ARCH))
define NWIPE_UPDATE_VERSION_TXT
@if [ -n "$(NWIPE_VERSION_BANNER)" ]; then \
echo "Updating version.txt and nwipe banner with Nwipe version: $(NWIPE_VERSION_BANNER)"; \
sed -i 's/\(.*_\)[^_]*$$/\1$(NWIPE_VERSION_BANNER)/' $(SHREDOS_VERSION_FILE); \
fi
echo "Updating version.txt: arch=$(NWIPE_VERSION_ARCH) banner=$(NWIPE_VERSION_BANNER)"
sed -i "s/\(.*_\)\(x86-64\|i686\)_.*$$/\1$(NWIPE_VERSION_ARCH)_$(NWIPE_VERSION_BANNER)/" \
$(SHREDOS_VERSION_FILE)
grep -q "$(NWIPE_VERSION_ARCH)_$(NWIPE_VERSION_BANNER)" $(SHREDOS_VERSION_FILE) || \
{ echo "ERROR: Failed to update version.txt - unexpected format in file?"; exit 1; }
endef
NWIPE_PRE_CONFIGURE_HOOKS += NWIPE_UPDATE_VERSION_TXT
######
################################################################################
# Version architecture nwipe banner updater (pre-build)
################################################################################
define NWIPE_INITSH
@echo "Updating version.txt and nwipe banner with architecture: $(BR2_ARCH)"
@if [ "$(BR2_ARCH)" = "i686" ]; then \
sed -i 's/\(^.*_\)\(x86-64\|i686\)\(_.*\)/\1i686\3/' $(SHREDOS_VERSION_FILE); \
elif [ "$(BR2_ARCH)" = "x86_64" ]; then \
sed -i 's/\(^.*_\)\(x86-64\|i686\)\(_.*\)/\1x86-64\3/' $(SHREDOS_VERSION_FILE); \
else \
echo "Unsupported architecture: $(BR2_ARCH)"; \
exit 1; \
fi
define NWIPE_INIT_BUILD
(cd $(@D) && \
cp ../../../package/nwipe/002-nwipe-banner-patch.sh . && \
./002-nwipe-banner-patch.sh && \
@@ -72,7 +72,7 @@ endef
# Pre-configure hook, as a post-patch hook would not get triggered on a package
# reconfigure, and possibly also taint the sources directory with the generated
# autogen files (which should not be there).
NWIPE_PRE_CONFIGURE_HOOKS += NWIPE_INITSH
NWIPE_PRE_CONFIGURE_HOOKS += NWIPE_INIT_BUILD
$(eval $(autotools-package))

View File

@@ -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.5"
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)

View File

@@ -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))