diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index c2190049f6..d99fec07e1 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -36,6 +36,7 @@ CONFIG_BACKLIGHT_PWM=m CONFIG_BATTERY_SBS=m CONFIG_BCM54140_PHY=m CONFIG_BCM7XXX_PHY=m +CONFIG_BINFMT_MISC=m CONFIG_BLK_CGROUP=y CONFIG_BLK_DEV_DM=m CONFIG_BLK_DEV_LOOP=m @@ -65,7 +66,6 @@ CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_BCM is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_BCM=y CONFIG_BT_HCIUART_LL=y @@ -88,6 +88,7 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CGROUP_MISC=y +CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_PIDS=y CONFIG_CHARGER_RK817=y @@ -100,9 +101,7 @@ CONFIG_COMMON_CLK_RK808=y CONFIG_COMMON_CLK_SCMI=y CONFIG_COMMON_CLK_SCPI=y CONFIG_COMPAT_32BIT_TIME=y -# CONFIG_COMPAT_BRK is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_CPUFREQ_DT=y CONFIG_CPUSETS=y CONFIG_CPU_FREQ=y @@ -137,6 +136,7 @@ CONFIG_CRYPTO_ECDH=y CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_GHASH_ARM64_CE=y CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_SEQIV=m CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA3_ARM64=m @@ -190,7 +190,6 @@ CONFIG_DRM_SII902X=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_THINE_THC63LVD1024=m CONFIG_DRM_TI_SN65DSI86=m -# CONFIG_DVB_NET is not set CONFIG_DWMAC_DWC_QOS_ETH=y CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m @@ -220,7 +219,6 @@ CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_FB=y CONFIG_FB_SIMPLE=y CONFIG_FM10K=y -# CONFIG_FSL_ERRATUM_A008585 is not set CONFIG_FUNCTION_PROFILER=y CONFIG_FUNCTION_TRACER=y CONFIG_FUSE_FS=y @@ -238,26 +236,18 @@ CONFIG_GPIO_PL061=y CONFIG_GPIO_SYSCON=y CONFIG_GPIO_XGENE=y CONFIG_HIBERNATION=y -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_APPLE is not set +CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_KENSINGTON is not set CONFIG_HID_LOGITECH_HIDPP=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=y CONFIG_HID_REDRAGON=m -CONFIG_HIDRAW=y CONFIG_HIGH_RES_TIMERS=y -# CONFIG_HISILICON_ERRATUM_161010101 is not set CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HUGETLBFS=y CONFIG_HWSPINLOCK=y -# CONFIG_HW_RANDOM_CN10K is not set CONFIG_I2C_CHARDEV=y CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_GPIO=m @@ -282,6 +272,7 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_INDIRECT_PIO=y CONFIG_INET=y +CONFIG_INET_ESP=m CONFIG_INPUT_EVDEV=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_MATRIXKMAP=y @@ -306,12 +297,16 @@ CONFIG_IPMI_HANDLER=m CONFIG_IPMI_SI=m CONFIG_IPV6=y CONFIG_IPV6_SIT=n +CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_SYNPROXY=m CONFIG_IP_PNP=y @@ -336,6 +331,10 @@ CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET_MAX=256 CONFIG_IP_VS=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_ISCSI_TCP=m CONFIG_IXGB=y @@ -412,7 +411,6 @@ CONFIG_MEMORY_FAILURE=y CONFIG_MEMTEST=y CONFIG_MFD_RK8XX_I2C=y CONFIG_MFD_RK8XX_SPI=y -# CONFIG_MFD_VEXPRESS_SYSREG is not set CONFIG_MHI_WWAN_MBIM=m CONFIG_MICREL_PHY=y CONFIG_MICROSEMI_PHY=y @@ -546,8 +544,9 @@ CONFIG_NET_ACT_GACT=m CONFIG_NET_ACT_GATE=m CONFIG_NET_ACT_MIRRED=m CONFIG_NET_CLS_ACT=y -CONFIG_NET_CLS_BPF=m CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_CGROUP=m CONFIG_NET_CLS_FLOWER=m CONFIG_NET_DSA=m CONFIG_NET_SCHED=y @@ -556,76 +555,16 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_TAPRIO=m -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_NET_VENDOR_ADAPTEC is not set -# CONFIG_NET_VENDOR_AGERE is not set -# CONFIG_NET_VENDOR_ALACRITECH is not set -# CONFIG_NET_VENDOR_ALTEON is not set -# CONFIG_NET_VENDOR_AMAZON is not set -# CONFIG_NET_VENDOR_AMD is not set -# CONFIG_NET_VENDOR_AQUANTIA is not set -# CONFIG_NET_VENDOR_ARC is not set -# CONFIG_NET_VENDOR_ASIX is not set -# CONFIG_NET_VENDOR_ATHEROS is not set -# CONFIG_NET_VENDOR_BROADCOM is not set -# CONFIG_NET_VENDOR_BROCADE is not set -# CONFIG_NET_VENDOR_CADENCE is not set -# CONFIG_NET_VENDOR_CAVIUM is not set -# CONFIG_NET_VENDOR_CHELSIO is not set -# CONFIG_NET_VENDOR_CISCO is not set -# CONFIG_NET_VENDOR_CORTINA is not set -# CONFIG_NET_VENDOR_DEC is not set -# CONFIG_NET_VENDOR_DLINK is not set -# CONFIG_NET_VENDOR_EMULEX is not set -# CONFIG_NET_VENDOR_ENGLEDER is not set -# CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_GOOGLE is not set -# CONFIG_NET_VENDOR_HISILICON is not set -# CONFIG_NET_VENDOR_HUAWEI is not set -# CONFIG_NET_VENDOR_LITEX is not set -# CONFIG_NET_VENDOR_MARVELL is not set -# CONFIG_NET_VENDOR_MELLANOX is not set -# CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_MICROCHIP is not set -# CONFIG_NET_VENDOR_MICROSEMI is not set -# CONFIG_NET_VENDOR_MICROSOFT is not set -# CONFIG_NET_VENDOR_MYRI is not set -# CONFIG_NET_VENDOR_NATSEMI is not set -# CONFIG_NET_VENDOR_NETERION is not set -# CONFIG_NET_VENDOR_NETRONOME is not set -# CONFIG_NET_VENDOR_NI is not set -# CONFIG_NET_VENDOR_NVIDIA is not set -# CONFIG_NET_VENDOR_OKI is not set -# CONFIG_NET_VENDOR_PENSANDO is not set -# CONFIG_NET_VENDOR_QLOGIC is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -# CONFIG_NET_VENDOR_RDC is not set -# CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_ROCKER is not set -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_SILAN is not set -# CONFIG_NET_VENDOR_SIS is not set -# CONFIG_NET_VENDOR_SMSC is not set -# CONFIG_NET_VENDOR_SOCIONEXT is not set -# CONFIG_NET_VENDOR_SOLARFLARE is not set -# CONFIG_NET_VENDOR_SUN is not set -# CONFIG_NET_VENDOR_TEHUTI is not set -# CONFIG_NET_VENDOR_TI is not set -# CONFIG_NET_VENDOR_VERTEXCOM is not set -# CONFIG_NET_VENDOR_VIA is not set -# CONFIG_NET_VENDOR_WIZNET is not set -# CONFIG_NET_VENDOR_XILINX is not set CONFIG_NEW_LEDS=y CONFIG_NFC=m CONFIG_NFC_NCI=m CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_NFSD=m +CONFIG_NFSD_V4=y CONFIG_NFS_FS=y CONFIG_NFS_V4=y CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y -CONFIG_NFSD=m -CONFIG_NFSD_V4=y CONFIG_NFT_BRIDGE_META=m CONFIG_NFT_BRIDGE_REJECT=m CONFIG_NFT_COMPAT=m @@ -656,7 +595,6 @@ CONFIG_NFT_REJECT=m CONFIG_NFT_REJECT_INET=m CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_REJECT_IPV6=m -# CONFIG_NFT_REJECT_NETDEV is not set CONFIG_NFT_SOCKET=m CONFIG_NFT_SYNPROXY=m CONFIG_NFT_TPROXY=m @@ -733,6 +671,7 @@ CONFIG_NTFS3_LZX_XPRESS=y CONFIG_NUMA=y CONFIG_NUMA_BALANCING=y CONFIG_NVMEM_RMEM=m +CONFIG_NVMEM_ROCKCHIP_EFUSE=y CONFIG_NVME_HWMON=y CONFIG_OF_OVERLAY=y CONFIG_OPTEE=y @@ -803,7 +742,6 @@ CONFIG_REMOTEPROC_CDEV=y CONFIG_RFKILL=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_NVMEM_ROCKCHIP_EFUSE=y CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_IOMMU=y @@ -848,13 +786,11 @@ CONFIG_SATA_MV=y CONFIG_SATA_SIL24=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_AUTOGROUP=y -# CONFIG_SCHED_DEBUG is not set CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y CONFIG_SCSI_HISI_SAS=y CONFIG_SCSI_HISI_SAS_PCI=y CONFIG_SCSI_MPT3SAS=m -# CONFIG_SCSI_PROC_FS is not set CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_UFSHCD=y CONFIG_SCSI_UFSHCD_PLATFORM=y @@ -870,7 +806,6 @@ CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_8250_EXTENDED=y -# CONFIG_SERIAL_8250_PERICOM is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y @@ -883,8 +818,6 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_XILINX_PS_UART=y CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y CONFIG_SERIO_AMBAKMI=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SLIMBUS is not set CONFIG_SMB_SERVER=m CONFIG_SMB_SERVER_KERBEROS5=y CONFIG_SND=y @@ -958,7 +891,6 @@ CONFIG_SRAM=y CONFIG_STAGING=y CONFIG_STAGING_MEDIA=y CONFIG_STMMAC_ETH=y -# CONFIG_SURFACE_PLATFORMS is not set CONFIG_SYSFB_SIMPLEFB=y CONFIG_SYSVIPC=y CONFIG_TASKSTATS=y @@ -1088,33 +1020,13 @@ CONFIG_WATCHDOG=y CONFIG_WATCHDOG_NOWAYOUT=y CONFIG_WATCHDOG_SYSFS=y CONFIG_WIREGUARD=m -# CONFIG_WIREGUARD_DEBUG is not set -# CONFIG_WLAN_VENDOR_ADMTEK is not set -# CONFIG_WLAN_VENDOR_ATH is not set -# CONFIG_WLAN_VENDOR_ATMEL is not set -# CONFIG_WLAN_VENDOR_CISCO is not set -# CONFIG_WLAN_VENDOR_INTEL is not set -# CONFIG_WLAN_VENDOR_INTERSIL is not set -# CONFIG_WLAN_VENDOR_MARVELL is not set -# CONFIG_WLAN_VENDOR_MEDIATEK is not set -# CONFIG_WLAN_VENDOR_MICROCHIP is not set -# CONFIG_WLAN_VENDOR_QUANTENNA is not set -# CONFIG_WLAN_VENDOR_RALINK is not set -# CONFIG_WLAN_VENDOR_RSI is not set -# CONFIG_WLAN_VENDOR_ST is not set -# CONFIG_WLAN_VENDOR_TI is not set -# CONFIG_WLAN_VENDOR_ZYDAS is not set CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y CONFIG_WQ_WATCHDOG=y CONFIG_XEN=y -# CONFIG_XENFS is not set -# CONFIG_XEN_BACKEND is not set -# CONFIG_XEN_BALLOON is not set -# CONFIG_XEN_DEV_EVTCHN is not set -# CONFIG_XEN_FBDEV_FRONTEND is not set -# CONFIG_XEN_GNTDEV is not set -# CONFIG_XEN_GRANT_DEV_ALLOC is not set -# CONFIG_XEN_SYS_HYPERVISOR is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m +CONFIG_XFRM_ESP=m +CONFIG_XFRM_USER=m CONFIG_ZRAM=m CONFIG_ZRAM_DEF_COMP_ZSTD=y CONFIG_ZRAM_MEMORY_TRACKING=y diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 3b07e2c463..1c850759cd 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -163,6 +163,7 @@ case $HW_MODEL in 90) iname='RadxaZERO3' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; 91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; 92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; + 93) iname='OrangePi5Pro' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac @@ -722,6 +723,15 @@ fi # Since qemu-img does not support VMDK and VHDX resizing, we need to resize the raw .img. It is usually done as sparse file, hence the actual disk usage does not change. G_EXEC qemu-img resize "$OUTPUT_IMG_NAME.img" 8G +####### ISO ############################## +if [[ $VMTYPE == all ]] +then + CLONING_TOOL='Clonezilla' OUTPUT_IMG_NAME="${OUTPUT_IMG_NAME}_Installer" + G_DIETPI-NOTIFY 2 "Running DietPi-Imager for $G_GITOWNER/$G_GITBRANCH" + bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 + CLONING_TOOL='dd' OUTPUT_IMG_NAME=${OUTPUT_IMG_NAME%_Installer} +fi + ####### VMX/VMware/Parallels ############# if [[ $VMTYPE =~ ^(vmx|all)$ ]] then diff --git a/.build/images/dietpi-imager b/.build/images/dietpi-imager index 8557a0fc97..af0885f60c 100755 --- a/.build/images/dietpi-imager +++ b/.build/images/dietpi-imager @@ -322,7 +322,7 @@ G_DIETPI-NOTIFY 0 "Mounted the image ($FP_SOURCE_IMG) as loopback device: $FP_SOURCE" FP_ROOT_DEV="${FP_SOURCE}p${FP_ROOT_DEV: -1}" fi - [[ $CLONING_TOOL == 'dd' ]] && OUTPUT_IMG_EXT='img' || OUTPUT_IMG_EXT='iso' + [[ $CLONING_TOOL == 'dd' ]] && OUTPUT_IMG_EXT='img' || OUTPUT_IMG_EXT='iso' SKIP_ARCHIVE=1 # Flashing tools do not support xz-compressed ISOs G_DIETPI-NOTIFY 0 "\e[0mCreating minified image from: - $SOURCE_TYPE: ${FP_SOURCE_IMG:-$FP_SOURCE} - Root device: $FP_ROOT_DEV diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 5216874c02..b5b714ce80 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -428,7 +428,8 @@ _EOF_ '85' ': ROCK 5A' '87' ': Orange Pi 3B' '89' ': Orange Pi 3 LTS' - '80' ': Orange Pi 5' + '80' ': Orange Pi 5/5B' + '93' ': Orange Pi 5 Pro' '82' ': Orange Pi 5 Plus' '91' ': Orange Pi 5 Max' '83' ': Orange Pi Zero 3' @@ -630,7 +631,7 @@ _EOF_ G_EXEC mv "$dir/.build/images/U-Boot/99-dietpi-uboot" /etc/initramfs/post-update.d/99-dietpi-uboot G_EXEC sed --follow-symlinks -i 's/arm64/arm/' /etc/initramfs/post-update.d/99-dietpi-uboot - elif [[ $G_HW_MODEL =~ ^(12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|62|63|64|65|66|67|68|72|73|74|76|77|78|79|80|82|83|85|86|87|88|89|90|91|92)$ ]] + elif [[ $G_HW_MODEL =~ ^(12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|62|63|64|65|66|67|68|72|73|74|76|77|78|79|80|82|83|85|86|87|88|89|90|91|92|93)$ ]] then armbian_packages=1 G_EXEC mv "$dir/.build/images/U-Boot/boot.cmd" /boot/boot.cmd @@ -671,7 +672,7 @@ setenv rootuuid "true"' /boot/boot.cmd (( $G_HW_MODEL == 15 )) && G_EXEC eval 'echo '\''meson_rng'\'' > /etc/modules-load.d/dietpi-hwrng.conf' # Rockchip 64-bit (configs work with Amlogic OOTB) - elif [[ $G_HW_MODEL =~ ^(42|43|46|47|55|56|58|68|72|73|76|77|78|79|80|82|85|86|87|90|91|92)$ ]] + elif [[ $G_HW_MODEL =~ ^(42|43|46|47|55|56|58|68|72|73|76|77|78|79|80|82|85|86|87|90|91|92|93)$ ]] then G_EXEC sed --follow-symlinks -Ei '/^setenv (kernel|fdt)_addr_r/d' /boot/boot.cmd G_CONFIG_INJECT 'setenv scriptaddr ' 'setenv scriptaddr "0x9000000"' /boot/boot.cmd @@ -704,14 +705,14 @@ setenv rootuuid "true"' /boot/boot.cmd # Overlay prefix case $G_HW_MODEL in 73) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3308' /boot/dietpiEnv.txt;; - 78|79|80|82|85|91|92) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3588' /boot/dietpiEnv.txt;; # ToDo: There are multiple other prefixes used in the kernel package, "rock-5b", "rock-5ab", "rockchip" (for fixup), so the boot.cmd need heavy adjustments (eliminate the prefix entirely) to work with all overlays. + 78|79|80|82|85|91|92|93) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3588' /boot/dietpiEnv.txt;; # ToDo: There are multiple other prefixes used in the kernel package, "rock-5b", "rock-5ab", "rockchip" (for fixup), so the boot.cmd need heavy adjustments (eliminate the prefix entirely) to work with all overlays. *) G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rockchip' /boot/dietpiEnv.txt;; esac # Console args case $G_HW_MODEL in 73) G_CONFIG_INJECT 'consoleargs=' 'consoleargs=console=ttyS0,1500000' /boot/dietpiEnv.txt;; # headless 47|55|56) G_CONFIG_INJECT 'consoleargs=' 'consoleargs=console=ttyS2,1500000' /boot/dietpiEnv.txt;; # headless - 78|79|80|82|85|91|92) G_EXEC sed --follow-symlinks -i 's/ttyAML0,115200/ttyFIQ0,1500000/' /boot/dietpiEnv.txt;; # RK3588 + 78|79|80|82|85|91|92|93) G_EXEC sed --follow-symlinks -i 's/ttyAML0,115200/ttyFIQ0,1500000/' /boot/dietpiEnv.txt;; # RK3588 *) G_EXEC sed --follow-symlinks -i 's/ttyAML0,115200/ttyS2,1500000/' /boot/dietpiEnv.txt;; esac @@ -1144,6 +1145,7 @@ _EOF_ 90) model='radxa-zero3' kernel='rk35xx' branch='legacy';; 91) model='orangepi5-max' kernel='rk35xx' branch='vendor';; 92) model='nanopi-m6' kernel='rk35xx' branch='vendor';; + 93) model='orangepi5pro' kernel='rk35xx' branch='vendor';; *) :;; esac @@ -1171,7 +1173,7 @@ _EOF_ G_AGI initramfs-tools u-boot-tools armbian-firmware "${zstd[@]}" [[ ${zstd[0]} ]] && G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf - # Download and pre-install kernel hosted on dietpi.com where the Armbian APT repo provides a too old version or is not available + # Install testing kernel build if requested if (( $TEST_KERNEL )) then G_EXEC_OUTPUT=1 G_EXEC curl -fo package1.deb "https://dietpi.com/downloads/binaries/testing/linux-image-$branch-$kernel.deb" @@ -1180,7 +1182,7 @@ _EOF_ G_EXEC rm package[12].deb fi - # Download and pre-install U-Boot hosted on dietpi.com where the Armbian APT repo provides a too old version or is not available + # Install testing U-Boot build if requested if (( $TEST_UBOOT )) then G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb "https://dietpi.com/downloads/binaries/testing/linux-u-boot-$model-$branch.deb" @@ -1304,7 +1306,15 @@ _EOF_ 3) variant='soquartz';; *) variant='quartz64a';; esac - G_AGI "firmware-$variant" + # Install testing kernel build if requested + if (( $TEST_KERNEL )) + then + G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb "https://dietpi.com/downloads/binaries/testing/firmware-$variant.deb" + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb + else + G_AGI "firmware-$variant" + fi # NanoPi M2/T2/Fire2 Linux 4.4: Requires dedicated boot partition, starting at 4 MiB for U-Boot, with ext4 filesystem elif [[ $G_HW_MODEL == 61 && $(findmnt -Ufnro FSTYPE -M /boot) == 'ext4' ]] && (( $(sfdisk -qlo Start "$BOOT_DEVICE" | mawk 'NR==2') >= 8192 )) @@ -1966,7 +1976,7 @@ _EOF_' /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyS1 # Rockchip vendor/legacy: ROCK 5B, NanoPi 6, Orange Pi 5, Orange Pi 5 Plus, ROCK 5A, Radxa ZERO 3 - elif [[ $G_HW_MODEL =~ ^(78|79|80|82|85|90|91|92)$ ]] + elif [[ $G_HW_MODEL =~ ^(78|79|80|82|85|90|91|92|93)$ ]] then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyFIQ0 diff --git a/.conf/dps_96/conf b/.conf/dps_96/conf index 88da88576f..4f287722f6 100644 --- a/.conf/dps_96/conf +++ b/.conf/dps_96/conf @@ -5,13 +5,11 @@ dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 - syslog only = no - syslog = 0 + logging = syslog@1 panic action = /usr/share/samba/panic-action %d security = user - encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index f982745cfb..af3f1ee8ac 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -95,7 +95,8 @@ jobs: '"-m 89 -d 6", "-m 89 -d 7", "-m 89 -d 8", '\ '"-m 90 -d 6", "-m 90 -d 7", "-m 90 -d 8", '\ '"-m 91 -d 6", "-m 91 -d 7", "-m 91 -d 8", '\ - '"-m 92 -d 6", "-m 92 -d 7", "-m 92 -d 8"]' >> "$GITHUB_OUTPUT" + '"-m 92 -d 6", "-m 92 -d 7", "-m 92 -d 8", '\ + '"-m 93 -d 6", "-m 93 -d 7", "-m 93 -d 8"]' >> "$GITHUB_OUTPUT" elif [ "${{ github.event.inputs.buildargs }}" = 'quartz64' ] then echo buildargs=[\ diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 1005e15c2a..8dd83980c0 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -171,7 +171,7 @@ Process_Software() 128) aSERVICES[i]='mpd' aTCP[i]='6600';; 131) (( $arch == 2 || $arch == 11 )) || aSERVICES[i]='blynkserver' aTCP[i]='9443'; (( $arch == 10 || $arch == 2 || $arch == 11 )) || aDELAY[i]=60;; 132) aSERVICES[i]='aria2' aTCP[i]='6800';; # aTCP[i]+=' 6881-6999';; # Listens on random port - 133) (( $arch == 2 || $arch == 11 )) || aSERVICES[i]='yacy' aTCP[i]='8090'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch == 10 || $arch == 2 || $arch == 11)) || aDELAY[i]=60;; + 133) (( $arch == 2 || $arch == 11 )) || aSERVICES[i]='yacy' aTCP[i]='8090'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch == 10 || $arch == 2 || $arch == 11)) || aDELAY[i]=90;; 134) aCOMMANDS[i]='docker compose version';; 135) aSERVICES[i]='icecast2' aTCP[i]='8000' aCOMMANDS[i]='darkice -h | grep '\''^DarkIce'\';; # darkice service cannot start in container as is requires audio recording device access 136) aSERVICES[i]='motioneye' aTCP[i]='8765';; diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index f9687c86dc..5c2c481011 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -17,11 +17,12 @@ jobs: python-version: '3.x' check-latest: true - name: Build init + # uuid-dev needed only until U-Boot v2025.01: https://github.com/u-boot/u-boot/commit/322c813 run: | # Workaround for runner provider restart: https://github.com/actions/runner-images/pull/9956 sudo apt-get -qq autopurge needrestart { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & - { sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-aarch64-linux-gnu bc libssl-dev swig; } & + { sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-aarch64-linux-gnu bc libssl-dev swig uuid-dev libgnutls28-dev; } & { curl -fO 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-rolling-stable.tar.gz'; tar xf linux-rolling-stable.tar.gz; rm linux-rolling-stable.tar.gz; } & uboot_version=$(curl -sSf 'https://api.github.com/repos/u-boot/u-boot/tags' | mawk -F\" '/^ *"name": "v[0-9.]*",$/{print $4;exit}') [ "$uboot_version" ] || { echo 'ERROR: Failed to obtain latest U-Boot version'; exit 1; } diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 8d0d36a6d2..a12747d60f 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -97,6 +97,7 @@ shopt -s extglob [90]='Radxa ZERO 3' [91]='Orange Pi 5 Max' [92]='NanoPi M6' + [93]='Orange Pi 5 Pro' ) ## Benchmark data arrays: aBENCH_XX[$HW_MODEL,${aBENCH_XX_INDEX[$HW_MODEL]}] diff --git a/.update/patches b/.update/patches index f7afb974f8..e7c3e05533 100755 --- a/.update/patches +++ b/.update/patches @@ -2035,10 +2035,23 @@ Patch_9_9() # Software updates, migrations and patches if [[ -f '/boot/dietpi/.installed' ]] then - # InfluxDB: Recreate symlink deleted with package update: https://dietpi.com/forum/t/influxdb-not-working-after-update/21868 - if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[74\]=2' /boot/dietpi/.installed && [[ ! -e '/var/lib/influxdb' ]] + # InfluxDB + if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[74\]=2' /boot/dietpi/.installed then - G_EXEC ln -sf /mnt/dietpi_userdata/influxdb /var/lib/influxdb + # Recreate symlink deleted with package update: https://dietpi.com/forum/t/influxdb-not-working-after-update/21868 + [[ -e '/var/lib/influxdb' ]] || G_EXEC ln -sf /mnt/dietpi_userdata/influxdb /var/lib/influxdb + # Migrate to now existing Bookworm suite + if [[ -f '/etc/apt/sources.list.d/influxdb.list' ]] + then + (( $G_DISTRO < 7 )) || G_EXEC sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/influxdb.list + G_EXEC mv /etc/apt/sources.list.d/{,dietpi-}influxdb.list + fi + fi + # Mopidy: Migrate to now existing Bookworm suite + if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[118\]=2' /boot/dietpi/.installed && [[ -f '/etc/apt/sources.list.d/mopidy.list' ]] + then + (( $G_DISTRO < 7 )) || G_EXEC sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/mopidy.list + G_EXEC mv /etc/apt/sources.list.d/{,dietpi-}mopidy.list fi fi } diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fb89e619fb..a0b004dc67 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,14 +1,26 @@ v9.9 (2024-11-16) -New software: +New images: +- Orange Pi 5 Max | Support for this new variant of the Orange Pi 5 family has been added to DietPi. +- Orange Pi 5 Pro | Support for this new variant of the Orange Pi 5 family has been added to DietPi. +- NanoPi M6 | Support for this FriendlyELEC SBC with RK3588 SoC has been added to DietPi. Enhancements: +- DietPi-Software | NFS Server: The "fsid=0" option has been removed from the /mnt/dietpi_userdata default export. As it is uncommon and not respected in "showmount -e" export lists, it caused confusion and issues. +- DietPi-Software | YaCy: The latest YaCy version will now be installed, and the global software password will be set as default admin password on fresh installs. +- DietPi-Software | MineOS: As a security enhancement and workaround for a web UI login issue, a dedicated "mineos" user is created again. For new MineOS installs or after reinstall, one can login with this user, and the global software password. It has permissions to install and manage Minecraft instances. Bug fixes: - NanoPi M1 Plus | Resolved an issue where Ethernet did not work because of a faulty kernel patch. Many thanks to @InnovoMagicCube and @InnovoDeveloper for reporting this issue: https://github.com/MichaIng/DietPi/issues/6974 - DietPi-DDNS | Resolved an issue where the YDNS update test failed due to a changed response from the server API. Many thanks to @NatureHog for reporting and solving the issue: https://github.com/MichaIng/DietPi/pull/7262 +- DietPi-Drive_Manager | Resolved an issue where a mounted drive could be mistakenly detected as dietpi_userdata location. - DietPi-Software | InfluxDB: Resolved an issue where the service did not start up after the recent package upgrade. The package upgrade removes the symlink /var/lib/influxdb => /mnt/dietpi_userdata/influxdb, which is recreated with this DietPi update. Many thanks to @uwjhn for reporting this issue: https://dietpi.com/forum/t/influxdb-not-working-after-update/21868 +- DietPi-Software | Node-RED: Resolved an issue where the service failed on ARMv6 systems, since a dependency module of Node-RED v4 does not support this architecture. Node-RED v3 will now be installed on those old RPi models. Many thanks to @mvanbrab for reporting this issue: https://github.com/MichaIng/DietPi/issues/7252 +- DietPi-Software | Chromium: Resolved an issue where optional Chromium flags via "CHROMIUM_OPTS+=" line in /var/lib/dietpi/dietpi-software/installed/chromium-autostart.sh did not have any effect, as "+=" is bash-only syntax, while the script is executed with dash (bourne shell). Many thanks to @Nurgak for reporting this issue: https://github.com/MichaIng/DietPi/issues/7263#issuecomment-2463626660 +- DietPi-Software | MineOS: Worked around an issue where the install failed on Bookworm systems, as one of the Node.js modules failed to compile for unknown reasons. Many thanks to @mikedebian for reporting this issue: https://github.com/MichaIng/DietPi/issues/7265 +- DietPi-Software | MineOS: Worked around an issue where login into the web interface failed since Bullseye, as MineOS does not support the new default yescrypt password hash algorithm for UNIX users. A new dedicated "mineos" user is now created, and its password set explicitly with SHA512 hash algorithm. Many thanks to @maybaxstv for reporting this issue: https://github.com/MichaIng/DietPi/issues/5759 +- DietPi-Software | Node.js: Resolved an issue where node failed on ARMv7 Bullseye systems, since the latest version for this architecture requires a newer C++ standard library than provided on Bullseye. As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 020460a39d..a482c2efcc 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -932,8 +932,8 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the G_WHIP_MENU_ARRAY+=('Update RPi EEPROM firmware' ': Install rpi-eeprom APT package') fi - # Odroid N2, ROCK 4, ROCK 5B, Orange Pi 5 (Plus) and Orange Pi 3B: https://dietpi.com/forum/t/orange-pi-5-boot-from-nvme/16457 - elif [[ $G_HW_MODEL =~ ^(15|72|78|80|82|87)$ && -f '/usr/lib/u-boot/platform_install.sh' ]] + # Odroid N2, ROCK 4, ROCK 5B, Orange Pi 5 (Plus/Pro) and Orange Pi 3B: https://dietpi.com/forum/t/orange-pi-5-boot-from-nvme/16457 + elif [[ $G_HW_MODEL =~ ^(15|72|78|80|82|87|93)$ && -f '/usr/lib/u-boot/platform_install.sh' ]] then # Odroid N2/ROCK 4: Device tree overlay required local spidev='/dev/mtdblock0' diff --git a/dietpi/dietpi-drive_manager b/dietpi/dietpi-drive_manager index aea801fba4..251c1ef496 100755 --- a/dietpi/dietpi-drive_manager +++ b/dietpi/dietpi-drive_manager @@ -1039,7 +1039,7 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return G_WHIP_MENU_ARRAY+=('' '●─ Userdata & Swap options ') # User data - if [[ ( $FP_USERDATA_CURRENT == ${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]}* && ${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]} != '/' ) || ( $FP_USERDATA_CURRENT == '/mnt/dietpi_userdata' && ${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]} == '/' ) ]] + if [[ ( ( $FP_USERDATA_CURRENT == "${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]}" || $FP_USERDATA_CURRENT == "${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]}/"* ) && ${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]} != '/' ) || ( $FP_USERDATA_CURRENT == '/mnt/dietpi_userdata' && ${aDRIVE_MOUNT_TARGET[$MENU_DRIVE_INDEX]} == '/' ) ]] then partition_contains_userdata=1 G_WHIP_MENU_ARRAY+=('User data' ": [X] | DietPi user data is currently located on this drive") diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 0bdd691d30..5eb0746613 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3017,9 +3017,11 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" G_EXEC chmod +x node-install.sh # ARMv6/RISC-V: Use unofficial builds to get the latest version: https://github.com/MichaIng/nodejs-linux-installer/pull/2, https://github.com/MichaIng/nodejs-linux-installer/commit/cd952fe - local unofficial=() - (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) && unofficial=('-u') - G_EXEC_OUTPUT=1 G_EXEC ./node-install.sh "${unofficial[@]}" + local options=() + (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) && options=('-u') + # ARMv7 Bullseye: node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.30'/'0/GLIBCXX_3.4.39' not found (required by node) + (( $G_HW_ARCH == 2 && $G_DISTRO < 7 )) && options=('-v' 'v22.11.0') + G_EXEC_OUTPUT=1 G_EXEC ./node-install.sh "${options[@]}" G_EXEC rm node-install.sh fi @@ -3472,7 +3474,7 @@ _EOF_ G_EXEC systemctl stop nfs-server G_EXEC mkdir -p /etc/exports.d - [[ -f '/etc/exports.d/dietpi.exports' ]] || G_EXEC eval 'echo '\''/mnt/dietpi_userdata *(rw,async,no_root_squash,fsid=0,crossmnt,no_subtree_check)'\'' > /etc/exports.d/dietpi.exports' + [[ -f '/etc/exports.d/dietpi.exports' ]] || G_EXEC eval 'echo '\''/mnt/dietpi_userdata *(rw,async,no_root_squash,crossmnt,no_subtree_check)'\'' > /etc/exports.d/dietpi.exports' fi if To_Install 83 apache2 # Apache @@ -4121,8 +4123,13 @@ _EOF_ if To_Install 133 yacy # YaCy then # Get latest download - local file=$(curl -sSfL 'https://download.yacy.net/?C=N;O=D' | grep -wo 'yacy_v[0-9._]*\.tar\.gz' | head -1) - [[ $file ]] || { file='yacy_v1.924_20210209_10069.tar.gz'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. \"$file\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + if (( $G_HW_ARCH == 1 )) + then + local file='yacy_v1.926_202308282208_376bcfd54_last_java_8.tar.gz' + else + local file=$(curl -sSfL 'https://download.yacy.net/?C=N;O=D' | grep -wo 'yacy_v[0-9._a-f]*\.tar\.gz' | head -1) + [[ $file ]] || { file='yacy_v1.940_202405270005_70454654f.tar.gz'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. \"$file\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + fi Download_Install "https://download.yacy.net/$file" /etc @@ -4142,6 +4149,12 @@ ExecStop=/etc/yacy/stopYACY.sh [Install] WantedBy=multi-user.target _EOF_ + # Set admin interface passwd: + if [[ ! -f '/etc/yacy/DATA/SETTINGS/yacy.conf' ]] + then + Create_Config /etc/yacy/DATA/SETTINGS/yacy.conf yacy + /etc/yacy/bin/passwd.sh "$GLOBAL_PW" + fi fi if To_Install 186 ipfs # IPFS Node @@ -5053,7 +5066,7 @@ _EOF_ G_EXEC eval "curl -sSfL '$url' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-mopidy.gpg --yes" # APT list - G_EXEC eval "echo 'deb https://apt.mopidy.com ${G_DISTRO_NAME/bookworm/bullseye} main contrib non-free' > /etc/apt/sources.list.d/mopidy.list" + G_EXEC eval "echo 'deb https://apt.mopidy.com ${G_DISTRO_NAME/trixie/bookworm} main contrib non-free' > /etc/apt/sources.list.d/dietpi-mopidy.list" G_AGUP fi @@ -6311,7 +6324,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Kareadita/Kavita/releases/download/v0.8.3.2/kavita-linux-$arch.tar.gz" + local fallback_url="https://github.com/Kareadita/Kavita/releases/download/v0.8.4/kavita-linux-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Kareadita/Kavita/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/kavita-linux-$arch\.tar\.gz\"$/{print \$4}")" G_EXEC chmod +x Kavita/Kavita @@ -6676,7 +6689,10 @@ _EOF_ local cache=$(runuser -u nodered -- mktemp -d) # - Reinstall: Remove all locally installed modules, to work around update issues, but preserve installed plugins from package.json: https://github.com/MichaIng/DietPi/issues/7128 [[ -f 'package.json' ]] && G_EXEC rm -Rf node_modules .npm/_cacache - G_EXEC_OUTPUT=1 G_EXEC runuser -u nodered -- npm i --cache "$cache" --no-audit node-red@latest + # - Install v3 on ARMv6, since the @node-rs/bcrypt dependency does not support it: https://github.com/MichaIng/DietPi/issues/7252 + local version='latest' + (( $G_HW_ARCH == 1 )) && version=3 + G_EXEC_OUTPUT=1 G_EXEC runuser -u nodered -- npm i --cache "$cache" --no-audit "node-red@$version" G_EXEC rm -R "$cache" G_EXEC cd "$G_WORKING_DIR" @@ -7329,7 +7345,7 @@ _EOF_ G_EXEC eval "curl -sSfL '$url' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-influxdb.gpg --yes" # APT list - G_EXEC eval "echo 'deb https://repos.influxdata.com/debian ${G_DISTRO_NAME/bookworm/bullseye} stable' > /etc/apt/sources.list.d/influxdb.list" + G_EXEC eval "echo 'deb https://repos.influxdata.com/debian ${G_DISTRO_NAME/trixie/bookworm} stable' > /etc/apt/sources.list.d/dietpi-influxdb.list" G_AGUP # APT package @@ -8227,7 +8243,7 @@ _EOF_ # APT deps: https://github.com/sabre-io/Baikal/wiki/Baïkal-dependencies aDEPS=("php$PHP_VERSION-xml" "php$PHP_VERSION-mbstring" "php$PHP_VERSION-mysql") - local fallback_url='https://github.com/sabre-io/Baikal/releases/download/0.10.0/baikal-0.10.0.zip' + local fallback_url='https://github.com/sabre-io/Baikal/releases/download/0.10.1/baikal-0.10.1.zip' Download_Install "$(curl -sSfL 'https://api.github.com/repos/sabre-io/Baikal/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/baikal-[^"\/]*\.zip"$/{print $4}')" # Reinstall: https://sabre.io/baikal/upgrade/ @@ -8419,6 +8435,9 @@ _EOF_ G_EXEC git config core.filemode false G_EXEC chmod +x mineos_console.js webui.js update_webui.sh reset_webui.sh generate-sslcert.sh + # Bookworm: Workaround for failing userid 1.0.0-beta.9 build on weirdly Bookworm only. Latest stable 1.2.5 seems to work well: https://github.com/MichaIng/DietPi/issues/7265 + G_CONFIG_INJECT '"userid"' ' "userid": "1.2.5",' package.json + # Workaround: Node.js posix needs to be installed alone first: https://github.com/MichaIng/DietPi/issues/5181 G_EXEC_OUTPUT=1 G_EXEC npm i --no-audit --no-package-lock posix@latest @@ -8439,7 +8458,7 @@ _EOF_ G_EXEC cd "$G_WORKING_DIR" # Service - cat << _EOF_ > /etc/systemd/system/mineos.service + cat << '_EOF_' > /etc/systemd/system/mineos.service [Unit] Description=MineOS (DietPi) Wants=network-online.target @@ -8449,12 +8468,19 @@ After=network-online.target SyslogIdentifier=MineOS WorkingDirectory=/mnt/dietpi_userdata/mineos/minecraft Environment="SHELL=/bin/bash" "HOME=/root" -ExecStart=$(command -v node) webui.js +ExecStart=/usr/local/bin/node webui.js KillMode=process [Install] WantedBy=multi-user.target _EOF_ + # User and permissions + local new_user=0 + getent passwd mineos &> /dev/null || new_user=1 + Create_User -d /mnt/dietpi_userdata/mineos/serverdata -p "$GLOBAL_PW" mineos + G_EXEC chown -R mineos /mnt/dietpi_userdata/mineos/serverdata + # - Assure SHA512 password hash algorithm, as MineOS does not support yescrypt, default since Bullseye: https://github.com/hexparrot/mineos-node/issues/441 + (( $new_user )) && G_EXEC eval "chpasswd --crypt-method SHA512 <<< 'mineos:$GLOBAL_PW'" fi if To_Install 46 qbittorrent # qBittorrent @@ -8565,8 +8591,8 @@ _EOF_ # Install ruTorrent: Web UI for rTorrent # - Grab current version local version=$(curl -sSfL 'https://api.github.com/repos/Novik/ruTorrent/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='v5.0.0'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } - [[ $version == 'v5.'* ]] || version='v5.0.0' + [[ $version ]] || { version='v5.1.0'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version == 'v5.'* ]] || version='v5.1.0' Download_Install "https://github.com/Novik/ruTorrent/archive/$version.tar.gz" # - Reinstall freshly with preserved configs and 3rd party plugins @@ -9056,7 +9082,7 @@ RES_Y=$(sed -n '/^[[:blank:]]*SOFTWARE_CHROMIUM_RES_Y=/{s/^[^=]*=//p;q}' /boot/d CHROMIUM_OPTS="--kiosk --window-size=${RES_X:-1280},${RES_Y:-720} --window-position=0,0" # If you want tablet mode, uncomment the next line. -#CHROMIUM_OPTS+=' --force-tablet-mode --tablet-ui' +#CHROMIUM_OPTS="$CHROMIUM_OPTS --force-tablet-mode --tablet-ui" # Home page URL=$(sed -n '/^[[:blank:]]*SOFTWARE_CHROMIUM_AUTOSTART_URL=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) @@ -9555,7 +9581,7 @@ _EOF_ esac url=$(curl -sSfL 'https://api.github.com/repos/Radarr/Radarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}") - local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.14.0.9383/Radarr.master.5.14.0.9383.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.15.1.9463/Radarr.master.5.15.1.9463.linux-core-$arch.tar.gz" fi Download_Install "$url" @@ -9922,7 +9948,7 @@ _EOF_ local reinstall=0 [[ -f '/mnt/dietpi_userdata/nzbget/nzbget.conf' ]] && reinstall=1 - local fallback_url='https://github.com/nzbgetcom/nzbget/releases/download/v24.3/nzbget-24.3-bin-linux.run' + local fallback_url='https://github.com/nzbgetcom/nzbget/releases/download/v24.4/nzbget-24.4-bin-linux.run' Download_Install "$(curl -sSfL 'https://api.github.com/repos/nzbgetcom/nzbget/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/nzbget-[^"/]*-bin-linux.run"$/{print $4}')" nzbget.run G_EXEC mkdir -p /mnt/dietpi_userdata/nzbget G_EXEC_OUTPUT=1 G_EXEC dash nzbget.run --destdir /mnt/dietpi_userdata/nzbget @@ -10001,7 +10027,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.25.4.4818/Prowlarr.master.1.25.4.4818.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.26.1.4844/Prowlarr.master.1.26.1.4844.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}")" G_EXEC mv Prowlarr /opt/prowlarr fi @@ -10077,7 +10103,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.3.2665/Readarr.develop.0.4.3.2665.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.4.2686/Readarr.develop.0.4.4.2686.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Readarr/Readarr/releases' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}" | head -1)" G_EXEC mv Readarr /opt/readarr fi @@ -10342,7 +10368,7 @@ _EOF_ # x86_64: Install Debian i386 package if [[ $G_HW_ARCH == 10 ]] then - # Add i386 arch: https://packages.debian.org/bullseye/steam + # Add i386 arch: https://packages.debian.org/steam [[ $(dpkg --print-foreign-architectures) == *'i386'* ]] || { G_EXEC dpkg --add-architecture i386; G_AGUP; } G_AGI steam @@ -11231,7 +11257,7 @@ _EOF_ # v3 drops PHP 7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v3.0.0 if (( $G_DISTRO > 6 )) then - local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v4.1.3/tasmoadmin_v4.1.3.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v4.2.0/tasmoadmin_v4.2.0.tar.gz' Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/tasmoadmin_v[^"\/]*\.tar\.gz"$/{print $4}')" else Download_Install 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' @@ -11688,7 +11714,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-linux-$arch.deb" + local fallback_url="https://github.com/rclone/rclone/releases/download/v1.68.2/rclone-v1.68.2-linux-$arch.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/rclone/rclone/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/rclone-v[^\"\/]*-linux-$arch.deb\"$/{print \$4}")" fi fi @@ -11702,7 +11728,7 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/restic/restic/releases/download/v0.17.2/restic_0.17.2_linux_$arch.bz2" + local fallback_url="https://github.com/restic/restic/releases/download/v0.17.3/restic_0.17.3_linux_$arch.bz2" Download_Install "$(curl -sSfL 'https://api.github.com/repos/restic/restic/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/restic_[^\"\/]*_linux_$arch\.bz2\"$/{print \$4}")" /usr/local/bin/restic G_EXEC chmod +x /usr/local/bin/restic fi @@ -13078,7 +13104,7 @@ _EOF_ then Remove_Service mopidy G_AGP 'mopidy*' - [[ -f '/etc/apt/sources.list.d/mopidy.list' ]] && G_EXEC rm /etc/apt/sources.list.d/mopidy.list + [[ -f '/etc/apt/sources.list.d/dietpi-mopidy.list' ]] && G_EXEC rm /etc/apt/sources.list.d/dietpi-mopidy.list [[ -f '/etc/apt/trusted.gpg.d/dietpi-mopidy.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-mopidy.gpg command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y Mopidy-MusicBox-Webclient @@ -13584,10 +13610,10 @@ _EOF_ if To_Uninstall 53 # MineOS then - Remove_Service mineos 1 1 # User and group for pre-v6.34 + Remove_Service mineos 1 1 [[ -d '/mnt/dietpi_userdata/mineos' ]] && G_EXEC rm -R /mnt/dietpi_userdata/mineos [[ -f '/etc/mineos.conf' ]] && G_EXEC rm /etc/mineos.conf - G_EXEC rm -Rf /var/games/minecraft /usr/local/bin/mineos # Symlinks + G_EXEC rm -Rf /var/games/minecraft /usr/local/bin/mineos /etc/ssl/certs/mineos.* # Symlinks and SSL cert [[ -d '/home/mineos' ]] && G_EXEC rm -R /home/mineos # pre-v6.34 fi @@ -13932,7 +13958,7 @@ _EOF_ then Remove_Service influxdb 1 1 G_AGP influxdb - [[ -f '/etc/apt/sources.list.d/influxdb.list' ]] && G_EXEC rm /etc/apt/sources.list.d/influxdb.list + [[ -f '/etc/apt/sources.list.d/dietpi-influxdb.list' ]] && G_EXEC rm /etc/apt/sources.list.d/dietpi-influxdb.list [[ -f '/etc/apt/trusted.gpg.d/dietpi-influxdb.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-influxdb.gpg G_EXEC rm -Rf /{mnt/dietpi_userdata,var/{lib,log},etc}/influxdb fi diff --git a/dietpi/func/dietpi-obtain_hw_model b/dietpi/func/dietpi-obtain_hw_model index b7876fd05e..1074f57cd3 100755 --- a/dietpi/func/dietpi-obtain_hw_model +++ b/dietpi/func/dietpi-obtain_hw_model @@ -12,6 +12,7 @@ # - Generates /boot/dietpi/.hw_model # - Called from /boot/dietpi/preboot, called by /etc/systemd/system/dietpi-preboot.service # + # G_HW_MODEL 93 Orange Pi 5 Pro # G_HW_MODEL 92 NanoPi M6 # G_HW_MODEL 91 Orange Pi 5 Max # G_HW_MODEL 90 Radxa ZERO 3 @@ -368,7 +369,12 @@ G_HW_MODEL=$(mawk 'NR==1' "$FP_G_HW_MODEL_IDENTIFIER") - if (( $G_HW_MODEL == 92 )); then + if (( $G_HW_MODEL == 93 )); then + + G_HW_MODEL_NAME='Orange Pi 5 Pro' + G_HW_CPUID=11 + + elif (( $G_HW_MODEL == 92 )); then G_HW_MODEL_NAME='NanoPi M6' G_HW_CPUID=11 diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 5f48bc73c5..fabf208a12 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1524,7 +1524,7 @@ Do you want to continue and disable the serial login console?' || return 1 elif (( $DIETPIENV || $G_HW_MODEL == 49 || $G_HW_MODEL == 76 || $G_HW_MODEL == 79 )) then local baudrate='115200' - if [[ $G_HW_MODEL =~ ^(42|43|46|47|49|55|56|58|68|72|76|77|78|79|80|82|85|87|90|91|92)$ && $INPUT_ADDITIONAL =~ ^('ttyS2'|'ttyFIQ0')$ ]] || [[ $G_HW_MODEL == 73 && $INPUT_ADDITIONAL == 'ttyS'[012] ]] + if [[ $G_HW_MODEL =~ ^(42|43|46|47|49|55|56|58|68|72|76|77|78|79|80|82|85|87|90|91|92|93)$ && $INPUT_ADDITIONAL =~ ^('ttyS2'|'ttyFIQ0')$ ]] || [[ $G_HW_MODEL == 73 && $INPUT_ADDITIONAL == 'ttyS'[012] ]] then baudrate='1500000' [[ -d /etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d ]] || G_EXEC mkdir "/etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d" diff --git a/dietpi/func/dietpi-set_software b/dietpi/func/dietpi-set_software index 0a812b7b8e..ac6c45dbc0 100755 --- a/dietpi/func/dietpi-set_software +++ b/dietpi/func/dietpi-set_software @@ -296,6 +296,7 @@ $FP_SCRIPT rpi_kernel_choice Supported on Debian Bookworm or newer on R 90) all_components='radxazero3';; 91) all_components='orangepi5max';; 92) all_components='nanopim6';; + 93) all_components='orangepi5pro';; *) :;; esac G_EXEC eval "echo 'deb https://dietpi.com/apt $G_DISTRO_NAME $components' > /etc/apt/sources.list.d/dietpi.list" diff --git a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh index f806c7f808..9b7586df92 100755 --- a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh +++ b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh @@ -7,7 +7,7 @@ Reboot_to_load_Partition_table() { > /dietpi_skip_partition_resize - systemctl enable dietpi-fs_partition_resize + systemctl --no-reload enable dietpi-fs_partition_resize echo '[ INFO ] Rebooting to load the new partition table' sync reboot @@ -15,7 +15,7 @@ } # Disable this service - ! systemctl is-enabled dietpi-fs_partition_resize > /dev/null || systemctl disable dietpi-fs_partition_resize + ! systemctl is-enabled dietpi-fs_partition_resize > /dev/null || systemctl --no-reload disable dietpi-fs_partition_resize # Detect root device ROOT_DEV=$(findmnt -Ufnro SOURCE -M /)