PKGBUILDs/core/mkinitcpio/0003-check-for-ALARM-kernels-in-run_post_hooks.patch

74 lines
2.8 KiB
Diff
Raw Normal View History

2023-03-22 22:03:20 +00:00
From 5800829444f1b6d3cb4949c8a7a82f9b8fd22e3c Mon Sep 17 00:00:00 2001
2023-03-22 01:05:52 +00:00
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Tue, 21 Mar 2023 17:56:32 -0600
Subject: [PATCH 3/3] check for ALARM kernels in run_post_hooks
---
2023-03-22 22:03:20 +00:00
functions | 25 ++++++++++++++++++++-----
2023-03-22 01:05:52 +00:00
mkinitcpio | 11 +++++++++++
2023-03-22 22:03:20 +00:00
2 files changed, 31 insertions(+), 5 deletions(-)
2023-03-22 01:05:52 +00:00
diff --git a/functions b/functions
2023-03-22 22:03:20 +00:00
index c4cc536..e6b21e6 100644
2023-03-22 01:05:52 +00:00
--- a/functions
+++ b/functions
2023-03-22 22:03:20 +00:00
@@ -219,13 +219,28 @@ kver_generic() {
2023-03-22 01:05:52 +00:00
# https://elixir.bootlin.com/linux/v5.7.2/source/init/version.c#L46
local kver='' reader='cat'
- [[ "$(detect_compression "$1")" == 'gzip' ]] && reader='zcat'
2023-03-22 22:03:20 +00:00
+ if [[ $1 =~ "/zImage" || $1 =~ /kernel.*\.img ]]; then
+ # Check for xz zImage
+ skip=$(LC_ALL=C grep -a -b -o $'\xFD\x37\x7A\x58\x5A\x00' $1 | tail -n 1 | cut -d ':' -f 1)
+ if [[ ! -z $skip ]]; then
+ read -r _ _ kver _ < <(dd if=$1 iflag=skip_bytes skip=$skip | xzcat | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
+ fi
+ if [[ -z "$kver" ]]; then
+ # Check for gzip zImage
+ skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' $1 | head -n 1 | cut -d ':' -f 1)
+ if [[ ! -z $skip ]]; then
+ read -r _ _ kver _ < <(dd if=$1 iflag=skip_bytes skip=$skip | zcat | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
+ fi
+ fi
2023-03-22 01:05:52 +00:00
+ else
+ [[ "$(detect_compression "$1")" == 'gzip' ]] && reader='zcat'
- read -r _ _ kver _ < <($reader "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
+ read -r _ _ kver _ < <($reader "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
- # try if the image is gzip compressed
- if [[ -z "$kver" ]]; then
- read _ _ kver _ < <(gzip -c -d "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+')
+ # try if the image is gzip compressed
+ if [[ -z "$kver" ]]; then
+ read _ _ kver _ < <(gzip -c -d "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+')
+ fi
fi
printf '%s' "$kver"
diff --git a/mkinitcpio b/mkinitcpio
2023-03-22 22:03:20 +00:00
index f68d70c..2ca3636 100755
2023-03-22 01:05:52 +00:00
--- a/mkinitcpio
+++ b/mkinitcpio
@@ -801,6 +801,17 @@ if [[ "$KERNELVERSION" != 'none' ]]; then
done
fi
+ if [[ -z "$KERNELIMAGE" ]]; then
+ # check version of ALARM kernels in /boot
2023-03-22 22:03:20 +00:00
+ for img in /boot/*Image* /boot/kernel*.img; do
+ if [[ -f $img && "$(kver "$img")" == "$KERNELVERSION" ]]; then
2023-03-22 01:05:52 +00:00
+ KERNELIMAGE="$img"
+ quiet "located kernel image: '%s'" "$KERNELIMAGE"
+ break
+ fi
+ done
+ fi
+
if [[ -z "$KERNELIMAGE" ]]; then
# check version of all kernels in /boot
for img in /boot/vmlinuz-*; do
--
2.36.1