summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/slx-drm/hooks/activate-nvidia-drivers.sh')
-rw-r--r--modules.d/slx-drm/hooks/activate-nvidia-drivers.sh10
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