mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
74 lines
2.9 KiB
Diff
74 lines
2.9 KiB
Diff
From bebb2efd81575fd681f4efcf9b6949b8262b17b4 Mon Sep 17 00:00:00 2001
|
|
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
|
|
|
|
---
|
|
functions | 27 +++++++++++++++++++++------
|
|
mkinitcpio | 11 +++++++++++
|
|
2 files changed, 32 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/functions b/functions
|
|
index 6816ab8..0392197 100755
|
|
--- a/functions
|
|
+++ b/functions
|
|
@@ -440,13 +440,28 @@ kver_generic() {
|
|
|
|
local kver=''
|
|
|
|
- # Loosely grep for `linux_banner`:
|
|
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/version-timestamp.c?h=v6.7#n28
|
|
- read -r _ _ kver _ < <(decompress_cat "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
|
|
+ if [[ $1 =~ "/zImage" || $1 =~ /kernel7.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
|
|
+ else
|
|
+ # Loosely grep for `linux_banner`:
|
|
+ # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/version-timestamp.c?h=v6.7#n28
|
|
+ read -r _ _ kver _ < <(decompress_cat "$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
|
|
index 17eae23..0d0dd40 100755
|
|
--- a/mkinitcpio
|
|
+++ b/mkinitcpio
|
|
@@ -1085,6 +1085,17 @@ if [[ "$KERNELVERSION" != 'none' ]]; then
|
|
done
|
|
fi
|
|
|
|
+ if [[ -z "$KERNELIMAGE" ]]; then
|
|
+ # check version of ALARM kernels in /boot
|
|
+ for img in /boot/*Image* /boot/kernel*.img; do
|
|
+ if [[ -f $img && "$(kver "$img")" == "$KERNELVERSION" ]]; then
|
|
+ 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
|
|
|