summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2023-06-21 15:38:29 +0200
committerSimon Rettberg2023-06-21 15:38:29 +0200
commit7c0f25c372de89896d80c2adb728d04c1d68b3f0 (patch)
treef36985336c255e8766cd0d13fcda485dae30a673
parent[slx-dmsetup] Fix dm-crypt usage by making sure we get an encryption key (diff)
downloadsystemd-init-7c0f25c372de89896d80c2adb728d04c1d68b3f0.tar.gz
systemd-init-7c0f25c372de89896d80c2adb728d04c1d68b3f0.tar.xz
systemd-init-7c0f25c372de89896d80c2adb728d04c1d68b3f0.zip
[slx-drm] Load nVidia driver for all Class 03 sub-types
-rw-r--r--modules.d/slx-drm/hooks/activate-nvidia-drivers.sh10
-rw-r--r--modules.d/slx-drm/hooks/copy-nvidia-drivers.sh2
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