From 7d7f6104cdba2f52e71a83ed1372c5742304f3f4 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 8 Feb 2020 11:51:43 +0100 Subject: [PATCH] core142: add kernel to updater Signed-off-by: Arne Fitzenreiter --- .../core/142/filelists/aarch64/linux | 1 + .../core/142/filelists/aarch64/linux-initrd | 1 + .../142/filelists/armv5tel/linux-initrd-multi | 1 + .../core/142/filelists/armv5tel/linux-multi | 1 + .../rootfiles/core/142/filelists/i586/linux | 1 + .../core/142/filelists/i586/linux-initrd | 1 + .../rootfiles/core/142/filelists/x86_64/linux | 1 + .../core/142/filelists/x86_64/linux-initrd | 1 + config/rootfiles/core/142/update.sh | 77 ++++++++++++++++++- 9 files changed, 82 insertions(+), 3 deletions(-) create mode 120000 config/rootfiles/core/142/filelists/aarch64/linux create mode 120000 config/rootfiles/core/142/filelists/aarch64/linux-initrd create mode 120000 config/rootfiles/core/142/filelists/armv5tel/linux-initrd-multi create mode 120000 config/rootfiles/core/142/filelists/armv5tel/linux-multi create mode 120000 config/rootfiles/core/142/filelists/i586/linux create mode 120000 config/rootfiles/core/142/filelists/i586/linux-initrd create mode 120000 config/rootfiles/core/142/filelists/x86_64/linux create mode 120000 config/rootfiles/core/142/filelists/x86_64/linux-initrd diff --git a/config/rootfiles/core/142/filelists/aarch64/linux b/config/rootfiles/core/142/filelists/aarch64/linux new file mode 120000 index 0000000000..3a2532bc7d --- /dev/null +++ b/config/rootfiles/core/142/filelists/aarch64/linux @@ -0,0 +1 @@ +../../../../common/aarch64/linux \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/aarch64/linux-initrd b/config/rootfiles/core/142/filelists/aarch64/linux-initrd new file mode 120000 index 0000000000..8acdb0f318 --- /dev/null +++ b/config/rootfiles/core/142/filelists/aarch64/linux-initrd @@ -0,0 +1 @@ +../../../../common/aarch64/linux-initrd \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/armv5tel/linux-initrd-multi b/config/rootfiles/core/142/filelists/armv5tel/linux-initrd-multi new file mode 120000 index 0000000000..0b1b4530a8 --- /dev/null +++ b/config/rootfiles/core/142/filelists/armv5tel/linux-initrd-multi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-initrd-multi \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/armv5tel/linux-multi b/config/rootfiles/core/142/filelists/armv5tel/linux-multi new file mode 120000 index 0000000000..204eb4c437 --- /dev/null +++ b/config/rootfiles/core/142/filelists/armv5tel/linux-multi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-multi \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/i586/linux b/config/rootfiles/core/142/filelists/i586/linux new file mode 120000 index 0000000000..693ec4bbf9 --- /dev/null +++ b/config/rootfiles/core/142/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/i586/linux-initrd b/config/rootfiles/core/142/filelists/i586/linux-initrd new file mode 120000 index 0000000000..32a03e6a90 --- /dev/null +++ b/config/rootfiles/core/142/filelists/i586/linux-initrd @@ -0,0 +1 @@ +../../../../common/i586/linux-initrd \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/x86_64/linux b/config/rootfiles/core/142/filelists/x86_64/linux new file mode 120000 index 0000000000..0615b5b9ad --- /dev/null +++ b/config/rootfiles/core/142/filelists/x86_64/linux @@ -0,0 +1 @@ +../../../../common/x86_64/linux \ No newline at end of file diff --git a/config/rootfiles/core/142/filelists/x86_64/linux-initrd b/config/rootfiles/core/142/filelists/x86_64/linux-initrd new file mode 120000 index 0000000000..1b9fff70ff --- /dev/null +++ b/config/rootfiles/core/142/filelists/x86_64/linux-initrd @@ -0,0 +1 @@ +../../../../common/x86_64/linux-initrd \ No newline at end of file diff --git a/config/rootfiles/core/142/update.sh b/config/rootfiles/core/142/update.sh index f71a01250c..daf0082c63 100644 --- a/config/rootfiles/core/142/update.sh +++ b/config/rootfiles/core/142/update.sh @@ -43,13 +43,46 @@ for (( i=1; i<=$core; i++ )); do rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire done +KVER="xxxKVERxxx" + +# Backup uEnv.txt if exist +if [ -e /boot/uEnv.txt ]; then + cp -vf /boot/uEnv.txt /boot/uEnv.txt.org +fi + +# Do some sanity checks. +case $(uname -r) in + *-ipfire-kirkwood) + exit_with_error "ERROR cannot update. kirkwood kernel was not supported." 1 + ;; + *-ipfire*) + # Ok. + ;; + *) + exit_with_error "ERROR cannot update. No IPFire Kernel." 1 + ;; +esac + # Check diskspace on root ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` -if [ $ROOTSPACE -lt 50000 ]; then +if [ $ROOTSPACE -lt 100000 ]; then exit_with_error "ERROR cannot update because not enough free space on root." 2 + exit 2 fi +# Remove the old kernel +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/initramfs-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-*-ipfire-* +rm -rf /boot/zImage-*-ipfire-* +rm -rf /boot/uInit-*-ipfire-* +rm -rf /boot/dtb-*-ipfire-* +rm -rf /lib/modules + # Remove files # Stop services @@ -68,8 +101,46 @@ ldconfig # Start services -# This update needs a reboot... -# touch /var/run/need_reboot +# remove lm_sensor config after collectd was started +# to reserch sensors at next boot with updated kernel +rm -f /etc/sysconfig/lm_sensors + +# Upadate Kernel version uEnv.txt +if [ -e /boot/uEnv.txt ]; then + sed -i -e "s/KVER=.*/KVER=${KVER}/g" /boot/uEnv.txt +fi + +# call user update script (needed for some arm boards) +if [ -e /boot/pakfire-kernel-update ]; then + /boot/pakfire-kernel-update ${KVER} +fi + +case "$(uname -m)" in + i?86) + # Force (re)install pae kernel if pae is supported + rm -rf /opt/pakfire/db/installed/meta-linux-pae + rm -rf /opt/pakfire/db/rootfiles/linux-pae + if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 25000 -o $ROOTSPACE -lt 120000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-${core}: WARNING not enough space for pae kernel." + touch /var/run/need_reboot + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae + fi + else + touch /var/run/need_reboot + fi + ;; + *) + # This update needs a reboot... + touch /var/run/need_reboot + ;; +esac # Finish /etc/init.d/fireinfo start -- 2.39.2