diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index 71f8e52a30..3a496f93d6 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -13,8 +13,6 @@ CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_AQUANTIA_PHY=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_ARM64_CRYPTO=y -CONFIG_ARM_CPUIDLE=y CONFIG_ARM_MHU=y CONFIG_ARM_PSCI_CPUIDLE=y CONFIG_ARM_RK3399_DMC_DEVFREQ=m @@ -30,7 +28,7 @@ CONFIG_ASHMEM=y CONFIG_AT803X_PHY=y CONFIG_ATA=y CONFIG_AUDIT=y -CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_LM3630A=y CONFIG_BACKLIGHT_LP855X=m @@ -147,7 +145,7 @@ CONFIG_CRYPTO_SM3_ARM64_CE=m CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CUSE=m CONFIG_DEBUG_FS=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_REDUCED=y CONFIG_DEBUG_KERNEL=y CONFIG_DEFAULT_HOSTNAME="DietPi" @@ -224,7 +222,6 @@ CONFIG_FUNCTION_PROFILER=y CONFIG_FUNCTION_TRACER=y CONFIG_FUSE_FS=y CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_GENERIC_ADC_BATTERY=m CONFIG_GENERIC_ADC_THERMAL=m CONFIG_GENERIC_IRQ_DEBUGFS=y @@ -292,6 +289,7 @@ CONFIG_INPUT_WS8100_PEN=y CONFIG_INTERCONNECT=y CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y +CONFIG_IOSCHED_BFQ=y CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MANGLE=m @@ -333,6 +331,7 @@ CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_SET_MAX=256 +CONFIG_IP_VS=m CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_ISCSI_TCP=m CONFIG_IXGB=y @@ -407,7 +406,8 @@ CONFIG_MEMCG=y CONFIG_MEMORY=y CONFIG_MEMORY_FAILURE=y CONFIG_MEMTEST=y -CONFIG_MFD_RK808=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 @@ -798,7 +798,7 @@ CONFIG_REMOTEPROC_CDEV=y CONFIG_RFKILL=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_EFUSE=y +CONFIG_NVMEM_ROCKCHIP_EFUSE=y CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_IOMMU=y diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 5eb842eacf..ad6abc7059 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -896,7 +896,7 @@ _EOF_ ) # Skip entropy daemon on all devices but those with old kernel - if [[ ! $G_HW_MODEL =~ ^(11|61|62|70|76|78|79|80|82)$ ]] # Odroid XU4, NanoPi M2/T2/Fire2, NanoPi M3/T3/Fire3, Sparky SBC, NanoPi R5S/R5C, ROCK 5B, NanoPi 6, Orange Pi 5, Orange Pi 5 Plus + if [[ ! $G_HW_MODEL =~ ^(11|61|62|70)$ ]] # Odroid XU4, NanoPi M2/T2/Fire2, NanoPi M3/T3/Fire3, Sparky SBC then : diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index f60a7b8b2b..81bbd2cc1c 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -195,7 +195,7 @@ Process_Software() 176) aSERVICES[i]='mycroft';; 178) aSERVICES[i]='jellyfin' aTCP[i]='8097'; [[ $arch == [23] ]] && aDELAY[i]=300;; # jellyfin[9983]: arm-binfmt-P: ../../target/arm/translate.c:9659: thumb_tr_translate_insn: Assertion `(dc->base.pc_next & 1) == 0' failed. ### jellyfin[9983]: qemu: uncaught target signal 6 (Aborted) - core dumped ### about 5 times 179) aSERVICES[i]='komga' aTCP[i]='2037'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch < 10 )) && aDELAY[i]=300;; - 180) aSERVICES[i]='bazarr' aTCP[i]='6767'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch < 10 )) && aDELAY[i]=60;; + 180) aSERVICES[i]='bazarr' aTCP[i]='6767'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch < 10 )) && aDELAY[i]=90;; 181) aSERVICES[i]='papermc' aTCP[i]='25565';; 182) aSERVICES[i]='unbound' aUDP[i]='53'; [[ ${aSERVICES[126]} ]] && aUDP[i]+=' 5335';; # Uses port 5335 if Pi-hole or AdGuard Home is installed, but those do listen on port 53 instead 183) aSERVICES[i]='vaultwarden' aTCP[i]='8001'; (( $arch < 10 )) && aDELAY[i]=20;; diff --git a/.update/patches b/.update/patches index 78ed8da6c8..7a7eabfae8 100755 --- a/.update/patches +++ b/.update/patches @@ -1386,54 +1386,75 @@ Patch_8_21() # Remove obsolete sysctl config [[ -f '/etc/sysctl.d/dietpi.conf' ]] && G_EXEC rm /etc/sysctl.d/dietpi.conf - # Armbian firmware - if dpkg --compare-versions "$(dpkg-query -Wf '${Version}' armbian-firmware 2> /dev/null)" lt-nl 23.08.0 + # Orange Pi 5/ROCK 5B: The "legacy-rockchip-rk3588" and "legacy-rk35xx" kernel families have been merged below the second name, hence migrate in case: https://github.com/armbian/build/pull/5362 + if [[ $G_HW_MODEL =~ ^(78|80)$ ]] && dpkg-query -s 'linux-image-legacy-rockchip-rk3588' &> /dev/null then - G_DIETPI-NOTIFY 2 'Updating Armbian firmware package ...' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/armbian-firmware.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb - G_EXEC rm package.deb + G_DIETPI-NOTIFY 2 'Updating RK3588 kernel package ...' + local apackages=('linux-image-legacy-rk35xx' 'linux-dtb-legacy-rk35xx') + dpkg-query -s 'linux-headers-legacy-rockchip-rk3588' &> /dev/null && apackages+=('linux-headers-legacy-rk35xx') + G_AGI "${apackages[@]}" + (( $G_HW_MODEL == 80 )) && G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3588' /boot/dietpiEnv.txt && G_EXEC sed -i '/^[[:blank:]]*fdtfile=/d' /boot/dietpiEnv.txt + G_EXEC apt-mark auto "${apackages[@]/rk35xx/rockchip-rk3588}" fi +} + +Patch_8_22() +{ + # Remove obsolete configs from pre-patches + [[ -f '/etc/apt/preferences.d/dietpi-armbian-tmp' ]] && G_EXEC rm /etc/apt/preferences.d/dietpi-armbian-tmp + [[ -f '/etc/apt/apt.conf.d/dietpi-armbian' ]] && G_EXEC rm /etc/apt/apt.conf.d/dietpi-armbian - # Orange Pi 5: Update U-Boot to enable NVMe boot - if (( $G_HW_MODEL == 80 )) && dpkg --compare-versions "$(dpkg-query -Wf '${Version}' linux-u-boot-orangepi5-legacy 2> /dev/null)" lt-nl 23.08.0 + # Migrate Armbian keyring from /etc/apt/trusted.gpg to /etc/apt/trusted.gpg.d for old images + if [[ -f '/etc/apt/trusted.gpg' && $(apt-key --keyring /etc/apt/trusted.gpg list 'DF00FAF1C577104B50BF1D0093D6889F9F0E78D5' 2> /dev/null) ]] then - G_DIETPI-NOTIFY 2 'Updating Orange Pi 5 U-Boot package ...' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/linux-u-boot-orangepi5-legacy.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb - G_EXEC rm package.deb + G_EXEC eval 'curl -sSfL '\''https://apt.armbian.com/armbian.key'\'' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-armbian.gpg --yes' + G_EXEC apt-key --keyring /etc/apt/trusted.gpg del 'DF00FAF1C577104B50BF1D0093D6889F9F0E78D5' + [[ $(apt-key --keyring /etc/apt/trusted.gpg list 2> /dev/null) ]] || G_EXEC rm /etc/apt/trusted.gpg fi - # Orange Pi 5/ROCK 5B: Update kernel to Linux 5.10.160 as Armbian didn't update their repos for half a year. The "legacy-rockchip-rk3588" and "legacy-rk35xx" kernel families have been merged below the second name: https://github.com/armbian/build/pull/5362 - if [[ $G_HW_MODEL =~ ^(78|80)$ ]] && { dpkg-query -s 'linux-image-legacy-rockchip-rk3588' &> /dev/null || dpkg --compare-versions "$(dpkg-query -Wf '${Version}' linux-image-legacy-rk35xx 2> /dev/null)" lt-nl 23.08.0; } + # RPi: Update raspberrypi-sys-mods + if (( $G_HW_MODEL < 10 )) && dpkg --compare-versions "$(dpkg-query -Wf '${Version}' raspberrypi-sys-mods 2> /dev/null)" lt-nl 2:20230510-dietpi1 then - G_DIETPI-NOTIFY 2 'Updating RK3588 kernel package ...' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package1.deb 'https://dietpi.com/downloads/binaries/linux-image-legacy-rk35xx.deb' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package2.deb 'https://dietpi.com/downloads/binaries/linux-dtb-legacy-rk35xx.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i package1.deb package2.deb - G_EXEC rm package1.deb package2.deb - (( $G_HW_MODEL == 80 )) && G_CONFIG_INJECT 'overlay_prefix=' 'overlay_prefix=rk3588' /boot/dietpiEnv.txt && G_EXEC sed -i '/^[[:blank:]]*fdtfile=/d' /boot/dietpiEnv.txt - dpkg-query -s 'linux-image-legacy-rockchip-rk3588' &> /dev/null && G_EXEC apt-mark auto linux-image-legacy-rockchip-rk3588 - dpkg-query -s 'linux-dtb-legacy-rockchip-rk3588' &> /dev/null && G_EXEC apt-mark auto linux-dtb-legacy-rockchip-rk3588 + G_DIETPI-NOTIFY 2 'Updating raspberrypi-sys-mods package ...' + G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/raspberrypi-sys-mods.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb + G_EXEC rm package.deb + # Odroid C1: Set kernel packages on hold. We pin them in pre-patches and enforce an automated downgrade, in case, but since v23.02.2 might not be available forever, we should also set them on hold, until we know there is a compatble newer version available: + # - https://dietpi.com/forum/t/odroid-c1-not-booting-after-kernel-upgrade/17818 + # - https://github.com/MichaIng/DietPi/issues/6616#issuecomment-1730900296 + elif (( $G_HW_MODEL == 10 )) + then + G_DIETPI-NOTIFY 2 'Setting Odroid C1 "current" and "edge" kernel packages on hold' + G_EXEC apt-mark hold linux-image-current-meson linux-dtb-current-meson linux-headers-current-meson linux-image-edge-meson linux-dtb-edge-meson linux-headers-edge-meson + + # NanoPi R4S: Fix Ethernet LEDs: https://github.com/MichaIng/DietPi/issues/6342#issuecomment-1697669420 + elif (( $G_HW_MODEL == 47 )) + then + G_DIETPI-NOTIFY 2 'Updating udev rule for NanoPi R4S Ethernet LEDs' + G_EXEC eval 'echo '\''ledtrig-netdev'\'' > /etc/modules-load.d/dietpi-eth-leds.conf' + cat << '_EOF_' > /etc/udev/rules.d/dietpi-eth-leds.rules +SUBSYSTEM=="leds", KERNEL=="green:lan", ACTION=="add", ATTR{trigger}="netdev", ATTR{device_name}="eth0", ATTR{link}="1", ATTR{rx}="1", ATTR{tx}="1", RUN+="/bin/ip l s up dev eth0", RUN+="/bin/ip l s down dev eth0" +SUBSYSTEM=="leds", KERNEL=="green:wan", ACTION=="add", ATTR{trigger}="netdev", ATTR{device_name}="eth1", ATTR{link}="1", ATTR{rx}="1", ATTR{tx}="1", RUN+="/bin/ip l s up dev eth1", RUN+="/bin/ip l s down dev eth1" +_EOF_ # Quartz64 elif (( $G_HW_MODEL == 49 )) then - if dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-quartz64a 2> /dev/null)" lt-nl 6.4.12-dietpi1 + if dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-quartz64a 2> /dev/null)" lt-nl 6.5.5-dietpi1 then G_DIETPI-NOTIFY 2 'Updating Quartz64 Model A kernel and bootloader ...' G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/firmware-quartz64a.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb G_EXEC rm package.deb - elif dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-quartz64b 2> /dev/null)" lt-nl 6.4.12-dietpi1 + elif dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-quartz64b 2> /dev/null)" lt-nl 6.5.5-dietpi1 then G_DIETPI-NOTIFY 2 'Updating Quartz64 Model B kernel and bootloader ...' G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/firmware-quartz64b.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb G_EXEC rm package.deb - elif dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-soquartz 2> /dev/null)" lt-nl 6.4.12-dietpi1 + elif dpkg --compare-versions "$(dpkg-query -Wf '${Version}' firmware-soquartz 2> /dev/null)" lt-nl 6.5.5-dietpi1 then G_DIETPI-NOTIFY 2 'Updating SOQuartz kernel and bootloader ...' G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/firmware-soquartz.deb' @@ -1441,58 +1462,20 @@ Patch_8_21() G_EXEC rm package.deb fi - # Rockchip64 kernel - elif dpkg --compare-versions "$(dpkg-query -Wf '${Version}' linux-image-current-rockchip64 2> /dev/null)" lt-nl 23.08.0 - then - G_DIETPI-NOTIFY 2 'Updating Rockchip64 kernel ...' - dpkg-query -s linux-headers-current-rockchip64 &> /dev/null && G_EXEC_OUTPUT=1 G_EXEC curl -fo package3.deb 'https://dietpi.com/downloads/binaries/linux-headers-current-rockchip64.deb' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package1.deb 'https://dietpi.com/downloads/binaries/linux-image-current-rockchip64.deb' - G_EXEC_OUTPUT=1 G_EXEC curl -fo package2.deb 'https://dietpi.com/downloads/binaries/linux-dtb-current-rockchip64.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i package[123].deb - G_EXEC rm package[123].deb - fi -} - -Patch_8_22() -{ - # Remove obsolete configs from pre-patches - [[ -f '/etc/apt/preferences.d/dietpi-armbian-tmp' ]] && G_EXEC rm /etc/apt/preferences.d/dietpi-armbian-tmp - [[ -f '/etc/apt/apt.conf.d/dietpi-armbian' ]] && G_EXEC rm /etc/apt/apt.conf.d/dietpi-armbian - - # NanoPi R4S: Fix Ethernet LEDs: https://github.com/MichaIng/DietPi/issues/6342#issuecomment-1697669420 - if (( $G_HW_MODEL == 47 )) - then - G_DIETPI-NOTIFY 2 'Updating udev rule for NanoPi R4S Ethernet LEDs' - G_EXEC eval 'echo '\''ledtrig-netdev'\'' > /etc/modules-load.d/dietpi-eth-leds.conf' - cat << '_EOF_' > /etc/udev/rules.d/dietpi-eth-leds.rules -SUBSYSTEM=="leds", KERNEL=="green:lan", ACTION=="add", ATTR{trigger}="netdev", ATTR{device_name}="eth0", ATTR{link}="1", ATTR{rx}="1", ATTR{tx}="1", RUN+="/bin/ip l s up dev eth0", RUN+="/bin/ip l s down dev eth0" -SUBSYSTEM=="leds", KERNEL=="green:wan", ACTION=="add", ATTR{trigger}="netdev", ATTR{device_name}="eth1", ATTR{link}="1", ATTR{rx}="1", ATTR{tx}="1", RUN+="/bin/ip l s up dev eth1", RUN+="/bin/ip l s down dev eth1" -_EOF_ - fi - - # Migrate Armbian keyring from /etc/apt/trusted.gpg to /etc/apt/trusted.gpg.d for old images - if [[ -f '/etc/apt/trusted.gpg' && $(apt-key --keyring /etc/apt/trusted.gpg list 'DF00FAF1C577104B50BF1D0093D6889F9F0E78D5' 2> /dev/null) ]] + # Orange Pi 5: Fix fdtfile entry + elif (( $G_HW_MODEL == 80 )) && grep -q '^fdtfile=$' /boot/dietpiEnv.txt then - G_EXEC eval 'curl -sSfL '\''https://apt.armbian.com/armbian.key'\'' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-armbian.gpg --yes' - G_EXEC apt-key --keyring /etc/apt/trusted.gpg del 'DF00FAF1C577104B50BF1D0093D6889F9F0E78D5' - [[ $(apt-key --keyring /etc/apt/trusted.gpg list 2> /dev/null) ]] || G_EXEC rm /etc/apt/trusted.gpg - fi + G_DIETPI-NOTIFY 2 'Fixing fdtfile entry in dietpiEnv.txt ...' + G_EXEC sed -i '/^fdtfile=$/d' /boot/dietpiEnv.txt # VisionFive 2 - if (( $G_HW_MODEL == 81 )) && dpkg --compare-versions "$(dpkg-query -Wf '${Version}' linux-image-visionfive2 2> /dev/null)" lt-nl 5.15.131-dietpi1 + elif (( $G_HW_MODEL == 81 )) && dpkg --compare-versions "$(dpkg-query -Wf '${Version}' linux-image-visionfive2 2> /dev/null)" lt-nl 5.15.133-dietpi1 then G_DIETPI-NOTIFY 2 'Updating RISC-V StarFive VisionFive 2 kernel ...' G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/linux-image-visionfive2.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb G_EXEC rm package.deb fi - - # Orange Pi 5: Fix fdtfile entry - if (( $G_HW_MODEL == 80 )) && grep -q '^fdtfile=$' /boot/dietpiEnv.txt - then - G_DIETPI-NOTIFY 2 'Fixing fdtfile entry in dietpiEnv.txt ...' - G_EXEC sed -i '/^fdtfile=$/d' /boot/dietpiEnv.txt - fi } # v6.35 => v7 migration diff --git a/.update/pre-patches b/.update/pre-patches index 98f23da6ab..f961470db7 100755 --- a/.update/pre-patches +++ b/.update/pre-patches @@ -289,6 +289,20 @@ _EOF_ Package: base-files Pin: release o=Debian Pin-Priority: 1000 +_EOF_ + G_EXEC eval 'echo '\''APT::Get::Allow-Downgrades "1";'\'' > /etc/apt/apt.conf.d/dietpi-armbian' + fi + + # Odroid C1: Pin "current" and "edge" kernel versions to Armbian 23.02.2, which are the latest currently known functional versions for C1: + # - https://dietpi.com/forum/t/odroid-c1-not-booting-after-kernel-upgrade/17818 + # - https://github.com/MichaIng/DietPi/issues/6616#issuecomment-1730900296 + if (( $G_HW_MODEL == 10 )) + then + G_DIETPI-NOTIFY 2 'Pinning Odroid C1 "current" and "edge" kernel packages to latest known functional version and in case enforcing automated downgrade' + cat << '_EOF_' > /etc/apt/preferences.d/00-dietpi-odroidc1 +Package: linux-image-current-meson linux-dtb-current-meson linux-headers-current-meson linux-image-edge-meson linux-dtb-edge-meson linux-headers-edge-meson +Pin: version 23.02.2 +Pin-Priority: 1000 _EOF_ G_EXEC eval 'echo '\''APT::Get::Allow-Downgrades "1";'\'' > /etc/apt/apt.conf.d/dietpi-armbian' fi diff --git a/.update/version b/.update/version index fd2aacfc48..0e2d288fb4 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=8 G_REMOTE_VERSION_SUB=22 -G_REMOTE_VERSION_RC=2 +G_REMOTE_VERSION_RC=3 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=6 G_MIN_VERSION_SUB=14 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 926884a83e..c7b1b47b5a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -17,10 +17,12 @@ Enhancements: Bug fixes: - NanoPi R4S | Resolved a v8.21 regression where the Ethernet LEDs did not react correctly after the kernel upgrade. Many thanks to @idaanx for reporting this issue: https://github.com/MichaIng/DietPi/issues/6342#issuecomment-1697669420 - Orange Pi 5 | Resolved a v8.21 regression where the update may have lead to an unbootable system or caused other issues like missing HDMI output, because of a falsely set device tree file name. +- Odroid C1 | Resolved an issue where the latest kernel upgrade broke boot of the Odroid C1. We do now pin, in case downgrade, and set on hold "current" and "edge" kernel packages of Armbian to v23.02.2 (Linux 5.15.93 respectively 6.1.11) with this DietPi update, which are the latest known functional packages for this SBC. Many thanks to @oskar242000 for reporting this issue: https://dietpi.com/forum/t/odroid-c1-not-booting-after-kernel-upgrade/17818 - Bookworm | Resolved an issue where poweroff/reboot/halt commands did throw errors about missing dbus or logind. DietPi ships without dbus and with logind masked by default, as we do not see their features being used on a typical DietPi system. Instead, dbus is installed and logind unmasked on demand on certain software installs or when chosen via dietpi.txt. However, the newer systemd version since Bookworm attempts dbus > logind communication in any case when calling poweroff/reboot/halt, despite no wall message being sent, e.g. to handle shutdown inhibitors (like open SSH session being able to prevent shutdown), and throws errors if either dbus is not reachable or logind not running. Until in case dbus or logind are further tied into common system commands or features, we solved the issue by creating shell functions for poweroff/reboot/halt which call the respective systemd target directly to bypass logind (and hence dbus), but fall back to the original commands, depending on given command-line parameters. - dietpi-bookworm-upgrade | Resolved an issue on systems with Armbian repository, where the system was still identified as Bullseye after the distribution upgrade to Bookworm. Reason was Armbian's base-files package, which was not upgraded as intended. On all DietPi systems, the original base-files package from Debian will now be enforced to prevent this and similar issues. Many thanks to @rogerthn2019 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6227#issuecomment-1713688577 - DietPi-Config | The menu option to update the SPI bootloader is now shown on Orange Pi 5 Plus as well, as intended. Many thanks for @zappydood for reporting its absence: https://github.com/MichaIng/DietPi/issues/6501#issuecomment-1697175109 - DietPi-Software | Ampache: Resolved an issue where the latest version was not successfully detected on install, so that an older fallback version was installed instead. Many thanks to @bartolus39 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6598 +- DietPi-Software | Bazarr: Resolved an issue where the installation failed on ARMv6 and ARMv7 Bullseye and Bookworm systems, since some pre-compiled Python modules are currently not available on piwheels, due to the currently running prioritised builds of all modules for Bookworm. 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/6626 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 0d27df7be0..2a95985c0a 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3407,17 +3407,11 @@ _EOF_ G_CONFIG_INJECT '"download-queue-size"' " \"download-queue-size\": $(Optimise_BitTorrent 1)," /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"peer-limit-global"' " \"peer-limit-global\": $(Optimise_BitTorrent 2)," /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"upload-slots-per-torrent"' " \"upload-slots-per-torrent\": $(Optimise_BitTorrent 3)," /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"port-forwarding-enabled"' ' "port-forwarding-enabled": true,' /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"encryption"' ' "encryption": 2,' /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"idle-seeding-limit"' ' "idle-seeding-limit": 1,' /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"idle-seeding-limit-enabled"' ' "idle-seeding-limit-enabled": true,' /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"ratio-limit"' ' "ratio-limit": 1.1,' /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"ratio-limit-enabled"' ' "ratio-limit-enabled": true,' /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"trash-original-torrent-files"' ' "trash-original-torrent-files": true,' /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"download-dir"' ' "download-dir": "/mnt/dietpi_userdata/downloads",' /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"rpc-username"' ' "rpc-username": "root",' /etc/transmission-daemon/settings.json '^\{$' G_CONFIG_INJECT '"rpc-whitelist-enabled"' ' "rpc-whitelist-enabled": false,' /etc/transmission-daemon/settings.json '^\{$' - G_CONFIG_INJECT '"message-level"' ' "message-level": 0,' /etc/transmission-daemon/settings.json '^\{$' # - Generate hash from global software password: https://github.com/transmission/transmission/blob/7367d46/libtransmission/crypto-utils.cc#L58 local salt=$(tr -dc '[:alnum:]./' < /dev/random | head -c8) local hash=$(echo -n "$GLOBAL_PW$salt" | sha1sum | mawk '{print $1}') @@ -9927,12 +9921,8 @@ _EOF_ # APT deps if (( $G_HW_ARCH < 3 )) then - if (( $G_DISTRO < 7 )) - then - aDEPS=('libatlas3-base') # numpy from piwheels: https://piwheels.org/project/numpy/ - else - aDEPS=('libxslt1-dev' 'libatlas-base-dev' 'g++' 'libjpeg62-turbo-dev') # libxslt1-dev and gcc for lxml, libatlas-base-dev and g++ for numpy, libjpeg62-turbo-dev for Pillow - fi + aDEPS=('g++' 'libopenblas-dev' 'pkg-config') # g++, libopenblas-dev and pkg-config for numpy until wheels have been built on piwheels. Afterwards install libopenblas0 runtime library instead: https://piwheels.org/project/numpy/ + (( $G_DISTRO < 7 )) || aDEPS+=('libxslt1-dev') # Bookworm: libxslt1-dev and gcc for lxml until wheels have been built on piwheels: https://piwheels.org/project/lxml/ (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') # ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 fi @@ -11424,7 +11414,7 @@ _EOF_ local ha_user='homeassistant' local ha_home="/home/$ha_user" local ha_pyenv_activation=". $ha_home/pyenv-activate.sh" - local ha_python_version='3.11.4' # https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build + local ha_python_version='3.11.5' # https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build G_DIETPI-NOTIFY 2 "Home Assistant user: $ha_user" G_DIETPI-NOTIFY 2 "Home Assistant home: $ha_home" @@ -11448,8 +11438,8 @@ _EOF_ G_EXEC chown "$ha_user:$ha_user" "$ha_home" if [[ $G_HW_ARCH =~ ^(1|2|11)$ ]] then - # libjpeg62-turbo-dev for Pillow, libatlas-base-dev for numpy, pkg-config for cryptography, g++ for numpy < PyTurboJPEG and greenlet < SQLAlchemy, libavdevice-dev for ha-av - aDEPS+=('libjpeg62-turbo-dev' 'libatlas-base-dev' 'pkg-config' 'g++' 'libavdevice-dev') + # libjpeg62-turbo-dev for Pillow, libopenblas-dev and pkg-config for numpy, pkg-config for cryptography, g++ for numpy < PyTurboJPEG and greenlet < SQLAlchemy, libavdevice-dev for ha-av + aDEPS+=('libjpeg62-turbo-dev' 'libopenblas-dev' 'pkg-config' 'g++' 'libavdevice-dev') # Rust for cryptography G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh G_EXEC chmod +x rustup-init.sh diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index 1495b26f42..f3b5d4d082 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -30,17 +30,13 @@ #[[ $G_DEBUG == [01] ] || G_DEBUG=0 # Non-interactive mode - # - Set G_INTERACTIVE=0 to disable interactive G_EXEC and G_WHIP dialogues + # - Set G_INTERACTIVE=0 to skip interactive G_EXEC and G_WHIP dialogues # - Set G_INTERACTIVE=1 to force interactive G_EXEC and G_WHIP dialogues - # - Default is based on whether STDIN is attached to an open terminal or not: [[ -t 0 ]] - # OK | systemd = [[ -t 0 ]] is false - # OK | Cron = [[ -t 0 ]] is false - # NB | /etc/profile, ~/.profile, /etc/profile.d/, /etc/bash.bashrc, ~/.bashrc and /etc/bashrc.d/ are usually interactive since those are sourced from originating shell/bash session. - if [[ $G_INTERACTIVE != [01] ]]; then - - [[ -t 0 ]] && G_INTERACTIVE=1 || G_INTERACTIVE=0 - - fi + # - Default is based on whether STDIN is attached to a terminal: [[ -t 0 ]] + # cron jobs run non-interactively. + # systemd services run non-interactively unless StardardInput is explicitly set to a terminal. + # /etc/profile, /etc/profile.d/*, ~/.profile, /etc/bash.bashrc, /etc/bashrc.d/* and ~/.bashrc usually run interactively as those are sourced from the originating shell session. "profile" is sourced from login shells only, bashrc from all interactive bash shells. + [[ $G_INTERACTIVE == [01] ]] || { [[ -t 0 ]] && G_INTERACTIVE=1 || G_INTERACTIVE=0; } # Disable DietPi-Services # - Set G_DIETPI_SERVICES_DISABLE=1 to disable DietPi-Services @@ -59,7 +55,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=8 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=22 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=2 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=3 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch