[arch-commits] Commit in hwdetect/repos/extra-any (hwdetect)

Tobias Powalowski tpowa at gemini.archlinux.org
Tue Apr 26 07:22:10 UTC 2022


    Date: Tuesday, April 26, 2022 @ 07:22:09
  Author: tpowa
Revision: 443984

archrelease: copy trunk to extra-any

Modified:
  hwdetect/repos/extra-any/hwdetect

----------+
 hwdetect |   23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

Modified: hwdetect
===================================================================
--- hwdetect	2022-04-26 07:22:00 UTC (rev 443983)
+++ hwdetect	2022-04-26 07:22:09 UTC (rev 443984)
@@ -5,6 +5,8 @@
 _SHOW_MODULES=""
 _SHOW_HOOKS=""
 _HWKVER=""
+[[ "$(uname -m)" == "x86_64" ]] && VMLINUZ=/boot/vmlinuz-linux
+[[ "$(uname -m)" == "aarch64" ]] && VMLINUZ=/boot/Image
 
 usage () {
 	echo "$0 [options]"
@@ -96,10 +98,8 @@
 	done
 }
 
-kver() {
+_kver_x86() {
     # get kernel version from installed kernel
-    [[ "$(uname -m)" == "x86_64" ]] && VMLINUZ=/boot/vmlinuz-linux
-    [[ "$(uname -m)" == "aarch64" ]] && VMLINUZ=/boot/Image
     if [[ -f "${VMLINUZ}" ]]; then
         offset=$(hexdump -s 526 -n 2 -e '"%0d"' "${VMLINUZ}")
         read -r _HWKVER _ < <(dd if="${VMLINUZ}" bs=1 count=127 skip=$(( offset + 0x200 )) 2>/dev/null)
@@ -108,12 +108,25 @@
     [[ "${_HWKVER}" == "" ]] && _HWKVER="$(uname -r)"
 }
 
+_kver_generic() {
+    # get kernel version from installed kernel
+    read _ _ _HWKVER _ < <(grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+' "${VMLINUZ}")
+
+    # try if the image is gzip compressed
+    if [[ -z "${_HWKVER}" ]]; then
+        read _ _ _HWKVER _ < <(gzip -c -d "${VMLINUZ}" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+')
+    fi
+
+    # fallback if no detectable kernel is installed
+    [[ -z "${_HWKVER}" ]] && _HWKVER="$(uname -r)"
+}
+
 parameter $PARAMETER
 
 if [ "$KERNEL_VERSION" = "" ]; then
-        kver
+	[[ "$(uname -m)" == "x86_64" ]] && _kver_x86
+	[[ "$(uname -m)" == "aarch64" ]] && _kver_generic
 	KERNEL_VERSION="${_HWKVER}"
-	
 fi
 
 # dmraid switch



More information about the arch-commits mailing list