diff options
Diffstat (limited to 'modules.d/slx-drm/hooks/activate-nvidia-drivers.sh')
-rw-r--r-- | modules.d/slx-drm/hooks/activate-nvidia-drivers.sh | 10 |
1 files changed, 5 insertions, 5 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 |