[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