From 4fd5642d16e0982736c2944858b5acd150f7ea68 Mon Sep 17 00:00:00 2001 From: desertwitch <24509509+desertwitch@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:24:14 +0100 Subject: [PATCH] feat(iso9660): appendable partition image for hybrid modes Allow to append a FAT16 partition image when building an ISO in hybrid mode. This allows to add an extra writeable partition for when the ISO is burned to USB. This feature is experimental and disabled by default. Signed-off-by: desertwitch <24509509+desertwitch@users.noreply.github.com> --- README.md | 5 + board/shredos/make_extra_partition.sh | 18 +++ build_all_shredos.sh | 2 + configs/shredos_iso_extra_defconfig | 188 +++++++++++++++++++++++ configs/shredos_iso_extra_i586_defconfig | 185 ++++++++++++++++++++++ fs/iso9660/Config.in | 15 ++ fs/iso9660/iso9660.mk | 7 + 7 files changed, 420 insertions(+) create mode 100755 board/shredos/make_extra_partition.sh create mode 100644 configs/shredos_iso_extra_defconfig create mode 100644 configs/shredos_iso_extra_i586_defconfig diff --git a/README.md b/README.md index d44942aefd..18d71f489c 100644 --- a/README.md +++ b/README.md @@ -829,6 +829,11 @@ $ dd if=shredos-20200412.img of=/dev/sdx (20200412 will be the day you compiled, - `make shredos_iso_legacy_defconfig` - build legacy ISO only (64-bit) - `make shredos_iso_legacy_i586_defconfig` - build legacy ISO only (32-bit) +#### The following experimental configurations are available for testing: + +- `make shredos_iso_extra_defconfig` - build hybrid ISO with extra writeable partition (when burned to USB flash drive) (64-bit) +- `make shredos_iso_extra_i586_defconfig` - build hybrid ISO with extra writeable partition (when burned to USB flash drive) (32-bit) + Do note that loading a configuration should typically be the last step before `make`. > **The hybrid ISOs offer the most flexibility over the other formats:** diff --git a/board/shredos/make_extra_partition.sh b/board/shredos/make_extra_partition.sh new file mode 100755 index 0000000000..22a622b1a3 --- /dev/null +++ b/board/shredos/make_extra_partition.sh @@ -0,0 +1,18 @@ +#!/bin/bash -e + +# This file produces the extra FAT16 partition for the shredos_iso_extra_*_defconfig configurations. +# The partition is appended to the ISO, so that when written to USB a writeable partition is available. + +rm "${BINARIES_DIR}"/extra.vfat || true + +dd if=/dev/zero of="${BINARIES_DIR}/extra.vfat" bs=50M count=1 || exit 1 +"$HOST_DIR"/sbin/mkfs.vfat -F16 "${BINARIES_DIR}/extra.vfat" || exit 1 + +"$HOST_DIR"/bin/mmd -i "${BINARIES_DIR}/extra.vfat" ::/boot || exit 1 + +"$HOST_DIR"/bin/mcopy -p -m -i "${BINARIES_DIR}/extra.vfat" board/shredos/fsoverlay/etc/shredos/version.txt ::/boot/version.txt || exit 1 +"$HOST_DIR"/bin/mcopy -p -m -i "${BINARIES_DIR}/extra.vfat" board/shredos/README.txt ::/README.txt || exit 1 +"$HOST_DIR"/bin/mcopy -p -m -i "${BINARIES_DIR}/extra.vfat" board/shredos/autorun.inf ::/autorun.inf || exit 1 +"$HOST_DIR"/bin/mcopy -p -m -i "${BINARIES_DIR}/extra.vfat" board/shredos/shredos.ico ::/shredos.ico || exit 1 + +exit 0 diff --git a/build_all_shredos.sh b/build_all_shredos.sh index 41f40a6d44..950d27493a 100755 --- a/build_all_shredos.sh +++ b/build_all_shredos.sh @@ -32,6 +32,7 @@ X64_CONFIGS=( "shredos_img_defconfig" "shredos_iso_defconfig" "shredos_iso_legacy_defconfig" + "shredos_iso_extra_defconfig" # experimental ) # 32-bit configurations to build: @@ -40,6 +41,7 @@ X32_CONFIGS=( "shredos_img_i586_defconfig" "shredos_iso_i586_defconfig" "shredos_iso_legacy_i586_defconfig" + "shredos_iso_extra_i586_defconfig" # experimental ) # Packages always needing rebuild between runs, even for the same architecture. diff --git a/configs/shredos_iso_extra_defconfig b/configs/shredos_iso_extra_defconfig new file mode 100644 index 0000000000..aec7bbb618 --- /dev/null +++ b/configs/shredos_iso_extra_defconfig @@ -0,0 +1,188 @@ +BR2_x86_64=y +BR2_x86_nocona=y +BR2_PACKAGE_GLIBC_UTILS=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y +BR2_CPAN_MIRROR="http://cpan.metacpan.org" +BR2_TARGET_GENERIC_HOSTNAME="shredos" +BR2_TARGET_GENERIC_ISSUE="Welcome to ShredOS https://github.com/PartialVolume/shredos.x86_64" +BR2_INIT_SYSV=y +BR2_ROOTFS_MERGED_USR=y +BR2_SYSTEM_BIN_SH_BASH=y +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" +# BR2_ENABLE_LOCALE_PURGE is not set +BR2_GENERATE_LOCALE="en_US.UTF-8" +BR2_SYSTEM_ENABLE_NLS=y +BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="board/shredos/fsoverlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/shredos/make_extra_partition.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/shredos/make_iso_file.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/shredos/kernel-6.6.22-defconfig.config" +BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y +BR2_PACKAGE_LINUX_TOOLS_PERF=y +BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y +# BR2_PACKAGE_BUSYBOX_SELINUX is not set +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_NONFREE=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_HEXEDIT=y +BR2_PACKAGE_BINUTILS=y +BR2_PACKAGE_GETTEXT=y +BR2_PACKAGE_GREP=y +BR2_PACKAGE_LIBTOOL=y +BR2_PACKAGE_SED=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_EXFATPROGS=y +BR2_PACKAGE_ASCII_INVADERS=y +BR2_PACKAGE_DIRECTFB=y +BR2_PACKAGE_DIRECTFB_ATI128=y +BR2_PACKAGE_DIRECTFB_MATROX=y +BR2_PACKAGE_DIRECTFB_I830=y +BR2_PACKAGE_FBDUMP=y +BR2_PACKAGE_FBGRAB=y +BR2_PACKAGE_FBSET=y +BR2_PACKAGE_FBTERM=y +BR2_PACKAGE_FBV=y +BR2_PACKAGE_MESA3D=y +BR2_PACKAGE_MESA3D_LLVM=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_CROCUS=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL=y +BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y +BR2_PACKAGE_MESA3D_OSMESA_GALLIUM=y +BR2_PACKAGE_MESA3D_OPENGL_ES=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU=y +BR2_PACKAGE_LINUX_FIRMWARE_I915=y +BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y +BR2_PACKAGE_LINUX_FIRMWARE_QCOM_VENUS=y +BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO=y +BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y +BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174=y +BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3=y +BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y +BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y +BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5=y +BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y +BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE=y +BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY=y +BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX=y +BR2_PACKAGE_EDID_DECODE=y +BR2_PACKAGE_HDPARM=y +BR2_PACKAGE_KBD=y +BR2_PACKAGE_LM_SENSORS=y +BR2_PACKAGE_LSHW=y +BR2_PACKAGE_LSSCSI=y +BR2_PACKAGE_MINICOM=y +BR2_PACKAGE_NVME=y +BR2_PACKAGE_READ_EDID=y +BR2_PACKAGE_SG3_UTILS=y +BR2_PACKAGE_SG3_UTILS_PROGS=y +BR2_PACKAGE_SMARTMONTOOLS=y +BR2_PACKAGE_SYSSTAT=y +BR2_PACKAGE_TRIGGERHAPPY=y +BR2_PACKAGE_PERL=y +BR2_PACKAGE_PYTHON_PYASN1_MODULES=y +BR2_PACKAGE_PYTHON_PYBIND=y +BR2_PACKAGE_PYTHON_PYNDIFF=y +BR2_PACKAGE_PYTHON_SCAPY=y +BR2_PACKAGE_LZ4=y +BR2_PACKAGE_LIBGCRYPT=y +BR2_PACKAGE_LIBJPEG=y +BR2_PACKAGE_STB=y +BR2_PACKAGE_LIBHID=y +BR2_PACKAGE_JSON_GLIB=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBUPNP=y +BR2_PACKAGE_KERNEL_CMDLINE_EXTRACTOR=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_LIBSECCOMP=y +BR2_PACKAGE_NWIPE=y +BR2_PACKAGE_LIBFRIBIDI=y +BR2_PACKAGE_NCURSES_WCHAR=y +BR2_PACKAGE_UTF8PROC=y +BR2_PACKAGE_HEIRLOOM_MAILX=y +BR2_PACKAGE_COLLECTD=y +BR2_PACKAGE_COLLECTD_NTPD=y +BR2_PACKAGE_XUTIL_UTIL_MACROS=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_LFTP=y +BR2_PACKAGE_LFTP_PROTO_SFTP=y +BR2_PACKAGE_NMAP=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_NTPTIME=y +BR2_PACKAGE_OPENSSH=y +# BR2_PACKAGE_OPENSSH_SERVER is not set +BR2_PACKAGE_RPCBIND=y +BR2_PACKAGE_SNMPCLITOOLS=y +BR2_PACKAGE_TFTPD=y +BR2_PACKAGE_TRACEROUTE=y +BR2_PACKAGE_WIREGUARD_TOOLS=y +BR2_PACKAGE_RESTORECOND=y +BR2_PACKAGE_SELINUX_PYTHON=y +BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW=y +BR2_PACKAGE_PARALLEL=y +BR2_PACKAGE_TMUX=y +BR2_PACKAGE_OPENSEACHEST=y +BR2_PACKAGE_PROCPS_NG=y +BR2_PACKAGE_RUNC=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_UTIL_LINUX_FSCK=y +BR2_PACKAGE_UTIL_LINUX_LAST=y +BR2_PACKAGE_UTIL_LINUX_LOGIN=y +BR2_PACKAGE_UTIL_LINUX_MOUNT=y +BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y +BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y +BR2_PACKAGE_UTIL_LINUX_RFKILL=y +BR2_PACKAGE_UTIL_LINUX_RUNUSER=y +BR2_PACKAGE_UTIL_LINUX_SETTERM=y +BR2_PACKAGE_UTIL_LINUX_SU=y +BR2_PACKAGE_UTIL_LINUX_SULOGIN=y +BR2_TARGET_ROOTFS_CPIO_LZMA=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_BOTH=y +BR2_TARGET_ROOTFS_ISO9660_ISOLINUX_BOOT_MENU="board/shredos/iso/isolinux.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_BOOT_MENU="board/shredos/iso/grub.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_BOOT_MENU="board/shredos/iso/efigrub.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE="/boot/shredos.id" +BR2_TARGET_ROOTFS_ISO9660_HYBRID=y +BR2_TARGET_ROOTFS_ISO9660_HYBRID_APPEND_PARTITION="extra.vfat" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y +BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal progress efi_gop efi_uga all_video video_cirrus video_bochs net efinet tftp gzio test eval read true gfxterm gfxterm_menu gfxmenu gfxterm_background png usb usb_keyboard search configfile iso9660" +BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="board/shredos/embed/grub.cfg" +BR2_TARGET_GRUB2_INSTALL_TOOLS=y +BR2_TARGET_SYSLINUX=y +BR2_PACKAGE_HOST_E2FSPROGS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_PYTHON3=y +BR2_PACKAGE_HOST_PYTHON3_BZIP2=y +BR2_PACKAGE_HOST_PYTHON3_SSL=y diff --git a/configs/shredos_iso_extra_i586_defconfig b/configs/shredos_iso_extra_i586_defconfig new file mode 100644 index 0000000000..cabeef7d25 --- /dev/null +++ b/configs/shredos_iso_extra_i586_defconfig @@ -0,0 +1,185 @@ +BR2_PACKAGE_GLIBC_UTILS=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y +BR2_CPAN_MIRROR="http://cpan.metacpan.org" +BR2_TARGET_GENERIC_HOSTNAME="shredos" +BR2_TARGET_GENERIC_ISSUE="Welcome to ShredOS https://github.com/PartialVolume/shredos.x86_64" +BR2_INIT_SYSV=y +BR2_ROOTFS_MERGED_USR=y +BR2_SYSTEM_BIN_SH_BASH=y +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" +# BR2_ENABLE_LOCALE_PURGE is not set +BR2_GENERATE_LOCALE="en_US.UTF-8" +BR2_SYSTEM_ENABLE_NLS=y +BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="board/shredos/fsoverlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/shredos/make_extra_partition.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/shredos/make_iso_file.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/shredos/kernel-6.6.22-defconfig.config" +BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y +BR2_PACKAGE_LINUX_TOOLS_PERF=y +BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y +# BR2_PACKAGE_BUSYBOX_SELINUX is not set +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_NONFREE=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_HEXEDIT=y +BR2_PACKAGE_BINUTILS=y +BR2_PACKAGE_GETTEXT=y +BR2_PACKAGE_GREP=y +BR2_PACKAGE_LIBTOOL=y +BR2_PACKAGE_SED=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_EXFATPROGS=y +BR2_PACKAGE_ASCII_INVADERS=y +BR2_PACKAGE_DIRECTFB=y +BR2_PACKAGE_DIRECTFB_ATI128=y +BR2_PACKAGE_DIRECTFB_MATROX=y +BR2_PACKAGE_DIRECTFB_I830=y +BR2_PACKAGE_FBDUMP=y +BR2_PACKAGE_FBGRAB=y +BR2_PACKAGE_FBSET=y +BR2_PACKAGE_FBTERM=y +BR2_PACKAGE_FBV=y +BR2_PACKAGE_MESA3D=y +BR2_PACKAGE_MESA3D_LLVM=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_CROCUS=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL=y +BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y +BR2_PACKAGE_MESA3D_OSMESA_GALLIUM=y +BR2_PACKAGE_MESA3D_OPENGL_ES=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU=y +BR2_PACKAGE_LINUX_FIRMWARE_I915=y +BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y +BR2_PACKAGE_LINUX_FIRMWARE_QCOM_VENUS=y +BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO=y +BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y +BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174=y +BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3=y +BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y +BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y +BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5=y +BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y +BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE=y +BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY=y +BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX=y +BR2_PACKAGE_EDID_DECODE=y +BR2_PACKAGE_HDPARM=y +BR2_PACKAGE_KBD=y +BR2_PACKAGE_LM_SENSORS=y +BR2_PACKAGE_LSHW=y +BR2_PACKAGE_LSSCSI=y +BR2_PACKAGE_MINICOM=y +BR2_PACKAGE_NVME=y +BR2_PACKAGE_READ_EDID=y +BR2_PACKAGE_SG3_UTILS=y +BR2_PACKAGE_SG3_UTILS_PROGS=y +BR2_PACKAGE_SMARTMONTOOLS=y +BR2_PACKAGE_SYSSTAT=y +BR2_PACKAGE_TRIGGERHAPPY=y +BR2_PACKAGE_PERL=y +BR2_PACKAGE_PYTHON_PYASN1_MODULES=y +BR2_PACKAGE_PYTHON_PYBIND=y +BR2_PACKAGE_PYTHON_PYNDIFF=y +BR2_PACKAGE_PYTHON_SCAPY=y +BR2_PACKAGE_LZ4=y +BR2_PACKAGE_LIBGCRYPT=y +BR2_PACKAGE_STB=y +BR2_PACKAGE_LIBHID=y +BR2_PACKAGE_JSON_GLIB=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBUPNP=y +BR2_PACKAGE_KERNEL_CMDLINE_EXTRACTOR=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_LIBSECCOMP=y +BR2_PACKAGE_NWIPE=y +BR2_PACKAGE_LIBFRIBIDI=y +BR2_PACKAGE_NCURSES_WCHAR=y +BR2_PACKAGE_UTF8PROC=y +BR2_PACKAGE_HEIRLOOM_MAILX=y +BR2_PACKAGE_COLLECTD=y +BR2_PACKAGE_COLLECTD_NTPD=y +BR2_PACKAGE_XUTIL_UTIL_MACROS=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_LFTP=y +BR2_PACKAGE_LFTP_PROTO_SFTP=y +BR2_PACKAGE_NMAP=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_NTPDATE=y +BR2_PACKAGE_NTP_NTPTIME=y +BR2_PACKAGE_OPENSSH=y +# BR2_PACKAGE_OPENSSH_SERVER is not set +BR2_PACKAGE_RPCBIND=y +BR2_PACKAGE_SNMPCLITOOLS=y +BR2_PACKAGE_TFTPD=y +BR2_PACKAGE_TRACEROUTE=y +BR2_PACKAGE_WIREGUARD_TOOLS=y +BR2_PACKAGE_RESTORECOND=y +BR2_PACKAGE_SELINUX_PYTHON=y +BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW=y +BR2_PACKAGE_PARALLEL=y +BR2_PACKAGE_TMUX=y +BR2_PACKAGE_OPENSEACHEST=y +BR2_PACKAGE_PROCPS_NG=y +BR2_PACKAGE_RUNC=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_UTIL_LINUX_FSCK=y +BR2_PACKAGE_UTIL_LINUX_LAST=y +BR2_PACKAGE_UTIL_LINUX_LOGIN=y +BR2_PACKAGE_UTIL_LINUX_MOUNT=y +BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y +BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y +BR2_PACKAGE_UTIL_LINUX_RFKILL=y +BR2_PACKAGE_UTIL_LINUX_RUNUSER=y +BR2_PACKAGE_UTIL_LINUX_SETTERM=y +BR2_PACKAGE_UTIL_LINUX_SU=y +BR2_PACKAGE_UTIL_LINUX_SULOGIN=y +BR2_TARGET_ROOTFS_CPIO_LZMA=y +BR2_TARGET_ROOTFS_INITRAMFS=y +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_BOTH=y +BR2_TARGET_ROOTFS_ISO9660_ISOLINUX_BOOT_MENU="board/shredos/iso/isolinux.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_BOOT_MENU="board/shredos/iso/grub.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_BOOT_MENU="board/shredos/iso/efigrub.cfg" +BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE="/boot/shredos.id" +BR2_TARGET_ROOTFS_ISO9660_HYBRID=y +BR2_TARGET_ROOTFS_ISO9660_HYBRID_APPEND_PARTITION="extra.vfat" +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_I386_EFI=y +BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal progress efi_gop efi_uga all_video video_cirrus video_bochs net efinet tftp gzio test eval read true gfxterm gfxterm_menu gfxmenu gfxterm_background png usb usb_keyboard search configfile iso9660" +BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="board/shredos/embed/grub.cfg" +BR2_TARGET_GRUB2_INSTALL_TOOLS=y +BR2_TARGET_SYSLINUX=y +BR2_PACKAGE_HOST_E2FSPROGS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_PYTHON3=y +BR2_PACKAGE_HOST_PYTHON3_BZIP2=y +BR2_PACKAGE_HOST_PYTHON3_SSL=y diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in index 5f30f5c9a2..c66367ce35 100644 --- a/fs/iso9660/Config.in +++ b/fs/iso9660/Config.in @@ -176,6 +176,21 @@ config BR2_TARGET_ROOTFS_ISO9660_HYBRID that can either be burned to CD/DVD-ROM or flashed onto a device which the BIOS considers as HDD/removable device (e.g. USB stick) +config BR2_TARGET_ROOTFS_ISO9660_HYBRID_APPEND_PARTITION + string "Append hybrid partition image" + depends on BR2_TARGET_ROOTFS_ISO9660_BOTH \ + && BR2_TARGET_ROOTFS_ISO9660_HYBRID + default "" + help + Enable this option to append a prepared FAT16 filesystem + image to the hybrid image, useful when needing a writeable + data partition for USBs - should be considered EXPERIMENTAL. + + The path is expected to be relative to folder "output/images/". + + You can use e.g. a BR2_ROOTFS_POST_BUILD_SCRIPT for preparing + the respective filesystem image for your target configuration. + endif comment "iso image needs a Linux kernel and either grub2 or isolinux to be built" diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk index 14f13af88c..5feea015a4 100644 --- a/fs/iso9660/iso9660.mk +++ b/fs/iso9660/iso9660.mk @@ -34,6 +34,7 @@ ROOTFS_ISO9660_GRUB2_EFI_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_G ROOTFS_ISO9660_GRUB2_EFI_PARTITION_SIZE = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_PARTITION_SIZE)) ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_GRUB2_EFI_IDENT_FILE)) ROOTFS_ISO9660_ISOLINUX_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX_BOOT_MENU)) +ROOTFS_ISO9660_HYBRID_APPEND_PARTITION = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_HYBRID_APPEND_PARTITION)) ################################################################################ # Architecture-specific variables @@ -428,6 +429,12 @@ ROOTFS_ISO9660_OPTS += \ $(ROOTFS_ISO9660_OPTS_BIOS) \ -eltorito-alt-boot \ $(ROOTFS_ISO9660_OPTS_EFI) +# Append an extra FAT16 partition image (if one was provided, for hybrid mode) +ifneq ($(ROOTFS_ISO9660_HYBRID_APPEND_PARTITION),) +ROOTFS_ISO9660_OPTS += \ + -append_partition 3 0x0e $(BINARIES_DIR)/$(ROOTFS_ISO9660_HYBRID_APPEND_PARTITION) \ + -partition_cyl_align all +endif else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER),y) # BIOS