From 6ccef1180044ef3940abab83810685511a2f2fbd Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 17:36:30 +0200 Subject: [PATCH 01/12] v8.22 - 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 --- .update/patches | 9 +++++++++ .update/pre-patches | 14 ++++++++++++++ CHANGELOG.txt | 1 + 3 files changed, 24 insertions(+) diff --git a/.update/patches b/.update/patches index 78ed8da6c8..4e090c92ec 100755 --- a/.update/patches +++ b/.update/patches @@ -1493,6 +1493,15 @@ _EOF_ G_DIETPI-NOTIFY 2 'Fixing fdtfile entry in dietpiEnv.txt ...' G_EXEC sed -i '/^fdtfile=$/d' /boot/dietpiEnv.txt fi + + # 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 + if (( $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 + 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/CHANGELOG.txt b/CHANGELOG.txt index 926884a83e..168d7ee2d0 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -17,6 +17,7 @@ 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 From 96ee0a76394b60eae49c0459b83db9870b3281dc Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 18:28:17 +0200 Subject: [PATCH 02/12] v8.22 - DietPi-Software | Transmission: Do not enable UPnP usage for port forwarding. Such must always be an explicit and interactive action by the admin. Remove seeding idle and ratio limits, which can be easily configured via web UI and we do not know whether users want to download only or intentionally keep seeding. Also do not set the log level, as this is enforced via "--log-error" CLI in the systemd service, overriding and even overwriting any changes done to the config file on service start. --- dietpi/dietpi-software | 6 ------ 1 file changed, 6 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 0d27df7be0..13e939ca35 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}') From 7182443486a8fe1a626c1ca1798eaf791b508e0c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 18:53:00 +0200 Subject: [PATCH 03/12] v8.22 - 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. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 168d7ee2d0..c7b1b47b5a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -22,6 +22,7 @@ Bug fixes: - 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 13e939ca35..a042ffb8cc 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9921,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=('libatlas-base-dev' 'g++') # libatlas-base-dev and g++ for numpy until wheels have been built on piwheels. Afterwards install libatlas3-base 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 From 1649757f38a6dc71948b51d72fb28e0c5fc1638c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 19:14:34 +0200 Subject: [PATCH 04/12] v8.22 - DietPi-Software | Bazarr: New numpy versions require openblas instead of libatlas --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a042ffb8cc..c1c7dca84c 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9921,7 +9921,7 @@ _EOF_ # APT deps if (( $G_HW_ARCH < 3 )) then - aDEPS=('libatlas-base-dev' 'g++') # libatlas-base-dev and g++ for numpy until wheels have been built on piwheels. Afterwards install libatlas3-base runtime library instead: https://piwheels.org/project/numpy/ + aDEPS=('libopenblas-dev' 'g++') # libatlas-base-dev and g++ 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 From ddff326fb6346e8b280aacec2d46fb064e5463c8 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 21:00:28 +0200 Subject: [PATCH 05/12] v8.22 - DietPi-Software | Bazarr: numpy build requires pkg-config to find openblas llibrary. This would have worked with libatlas as well, but revent openblas seems to provide better performance anyway, so lets stick with it. - DietPi-Software | Home Assistant: Switch from ATLAS to OpenBLAS, which seems to mostly provide better performance --- dietpi/dietpi-software | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index c1c7dca84c..2a95985c0a 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9921,7 +9921,7 @@ _EOF_ # APT deps if (( $G_HW_ARCH < 3 )) then - aDEPS=('libopenblas-dev' 'g++') # libatlas-base-dev and g++ for numpy until wheels have been built on piwheels. Afterwards install libopenblas0 runtime library instead: https://piwheels.org/project/numpy/ + 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 @@ -11414,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" @@ -11438,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 From 63fa8e2668b0606964899de7e317df4ae21b8a4d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 22 Sep 2023 22:33:36 +0200 Subject: [PATCH 06/12] v8.22 - CI | DietPi-Software: Give Bazarr more time to start up in emulated containers --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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;; From c5e02510f994b855eaa774c1737daa330e8d5d42 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 16:56:19 +0200 Subject: [PATCH 07/12] v8.22 - RC up - DietPi-Globals | Minor G_INTERACTIVE description and code update --- .update/version | 2 +- dietpi/func/dietpi-globals | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) 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/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 From a148d8b98b160194fe0e668cc1ac6e1cc7db008c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 17:11:51 +0200 Subject: [PATCH 08/12] v8.22 - DietPi-Patches | Remove obsolete kernel upgrades from our server, now that Armbian updated their APT servers --- .update/patches | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/.update/patches b/.update/patches index 4e090c92ec..732695afc3 100755 --- a/.update/patches +++ b/.update/patches @@ -1386,35 +1386,15 @@ 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 - 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 - fi - - # 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 - 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 - 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; } + # 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 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 + 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 - 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_EXEC apt-mark auto "${apackages[@]/rk35xx/rockchip-rk3588}" # Quartz64 elif (( $G_HW_MODEL == 49 )) @@ -1440,16 +1420,6 @@ Patch_8_21() G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb 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 } From e24affbfd7c4d0687b4fb1d04315a2fb65587333 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 18:55:53 +0200 Subject: [PATCH 09/12] v8.22 - DietPi-Patches | Move some kernel upgrades forward and merge hardware ID specific blocks - Quartz64 | Attempt to fix Linux 6.5.5 build by updating the kernel config according to some recent upstream changes, particularly CONFIG_ROCKCHIP_EFUSE => CONFIG_NVMEM_ROCKCHIP_EFUSE renaming --- .build/images/Quartz64/quartz64_defconfig | 8 +-- .update/patches | 80 +++++++++++------------ 2 files changed, 41 insertions(+), 47 deletions(-) diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index 71f8e52a30..d5257ec5e0 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 @@ -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 @@ -333,6 +330,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 @@ -798,7 +796,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/.update/patches b/.update/patches index 732695afc3..10345d9053 100755 --- a/.update/patches +++ b/.update/patches @@ -1395,7 +1395,40 @@ Patch_8_21() 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 + + # 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_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 + + # 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 + if (( $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 @@ -1420,58 +1453,21 @@ Patch_8_21() G_EXEC_OUTPUT=1 G_EXEC dpkg -i --force-confdef,confold package.deb G_EXEC rm package.deb fi - 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 - - # 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 - if (( $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 - fi } # v6.35 => v7 migration From 4ce59b0f900a33d727c09113a3152ff92ec9204b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 19:11:03 +0200 Subject: [PATCH 10/12] v8.22 - Quartz64 | Move defconf updates: Rename autofs module, add BFQ I/O scheduler and update RK808 config which got split --- .build/images/Quartz64/quartz64_defconfig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index d5257ec5e0..3a496f93d6 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -28,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 @@ -289,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 @@ -405,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 From 884e9e2ec676e69c9bd9085d2ba1e72cf739e457 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 21:02:13 +0200 Subject: [PATCH 11/12] v8.22 - DietPi-Patches | Update Quartz64 kernel to Linux 6.5.5 now, as we managed to fix it - DietPi-Installer | Skip entropy daemon as well for RK35xx boards with Rockchip Linux 5.10.160 build --- .build/images/dietpi-installer | 2 +- .update/patches | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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/.update/patches b/.update/patches index 10345d9053..3e71ec1c29 100755 --- a/.update/patches +++ b/.update/patches @@ -1432,21 +1432,21 @@ _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' From c41c5a1ae579d8bfcb5673b87ac0f1e8d2d53659 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 23 Sep 2023 23:19:09 +0200 Subject: [PATCH 12/12] v8.22 - DietPi-Patches | RPi: Update raspberrypi-sys-mods --- .update/patches | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.update/patches b/.update/patches index 3e71ec1c29..7a7eabfae8 100755 --- a/.update/patches +++ b/.update/patches @@ -1412,10 +1412,18 @@ Patch_8_22() [[ $(apt-key --keyring /etc/apt/trusted.gpg list 2> /dev/null) ]] || G_EXEC rm /etc/apt/trusted.gpg fi + # 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 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 - if (( $G_HW_MODEL == 10 )) + 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