From 7c0f25c372de89896d80c2adb728d04c1d68b3f0 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 21 Jun 2023 15:38:29 +0200 Subject: [slx-drm] Load nVidia driver for all Class 03 sub-types --- modules.d/slx-drm/hooks/activate-nvidia-drivers.sh | 10 +++++----- modules.d/slx-drm/hooks/copy-nvidia-drivers.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh b/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh index 5c9310e8..00c2334a 100644 --- a/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh +++ b/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh @@ -4,15 +4,15 @@ type emergency_shell >/dev/null 2>&1 || . /lib/dracut-lib.sh detect_nvidia_cards() { # hard check on nvidia graphic cards - local cards="$(lspci | grep 'Class 0300: 10de:' | awk '{print $4}')" - if ! [ -d "/drm.cfg.d" ] && [ -n $cards ]; then - warn "Failed to find '/drm.cfg.d' or nvidia cards." + local cards="$( lspci -n | grep -o ' 03..: 10de:....' | awk '{print $2}' )" + if ! [ -d "/drm.cfg.d" ] && [ -n "$cards" ]; then + warn "Failed to find '/drm.cfg.d', but have nvidia cards - will try nouveau." return 1 fi for card in $cards; do - local driver="$(awk '$1 = /'"$card"'/ {print $2}' /drm.cfg.d/*)" + local driver="$(awk '$1 = /'"$card"'/ {print $2; exit}' /drm.cfg.d/*)" [ -z "$driver" ] && continue - driver="${driver//@/}" + driver="${driver#'@'}" driver="${driver//-/\/}" local driver_dir="/lib/modules/${driver}" [ -d "$driver_dir" ] || continue diff --git a/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh b/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh index 323af6d2..6e4a8529 100644 --- a/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh +++ b/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh @@ -22,7 +22,7 @@ copy_nvidia_modules() { return 0 } -if lsmod | grep -q nvidia; then +if lsmod | grep -q '^nvidia'; then copy_nvidia_modules fi : # fake success -- cgit v1.2.3-55-g7522