summaryrefslogtreecommitdiffstats
path: root/modules.d
diff options
context:
space:
mode:
authorSimon Rettberg2025-04-16 19:08:21 +0200
committerSimon Rettberg2025-04-16 19:08:21 +0200
commit7bd839aee34fa4d867410745882c5e9f730f099f (patch)
tree79108b02b0882412428ab9f586a6f2957a9fdefb /modules.d
parent[slx-dmsetup] Try to get swap-service to actually run after we detected all HDDs (diff)
downloadsystemd-init-7bd839aee34fa4d867410745882c5e9f730f099f.tar.gz
systemd-init-7bd839aee34fa4d867410745882c5e9f730f099f.tar.xz
systemd-init-7bd839aee34fa4d867410745882c5e9f730f099f.zip
[slx-drm] Don't copy nvidia drivers to stage4, pointless
Diffstat (limited to 'modules.d')
-rwxr-xr-xmodules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh6
-rwxr-xr-xmodules.d/slx-drm/hooks/s3-blacklist-nouveau.sh8
-rwxr-xr-xmodules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh27
-rwxr-xr-xmodules.d/slx-drm/module-setup.sh2
4 files changed, 12 insertions, 31 deletions
diff --git a/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh b/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh
index 28b0c639..c33a4913 100755
--- a/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh
+++ b/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh
@@ -19,18 +19,18 @@ for card in $cards; do
exit 1
fi
# all good, move it over
- if ! mv "$driver_dir" "$driver_target" 2>&1; then
+ if ! mv "$driver_dir" "$driver_target"; then
echo "Failed to move '$driver_dir' to '$driver_target'."
exit 1
fi
# finally run depmod to make it visible to udev
- if ! depmod -a 2>&1 ; then
+ if ! depmod -a; then
echo "Failed to run depmod, udev won't see the nvidia modules."
exit 1
fi
# blacklist nouveau
echo 'blacklist nouveau' > "/lib/modprobe.d/disable-nouveau.conf"
- echo "Initialized nvidia drivers."
+ echo "Prepared nvidia drivers for loading by udev."
break
done
diff --git a/modules.d/slx-drm/hooks/s3-blacklist-nouveau.sh b/modules.d/slx-drm/hooks/s3-blacklist-nouveau.sh
new file mode 100755
index 00000000..3dcc1f81
--- /dev/null
+++ b/modules.d/slx-drm/hooks/s3-blacklist-nouveau.sh
@@ -0,0 +1,8 @@
+#!/bin/ash
+
+lsmod | grep -q '^nvidia' || exit 0
+
+mkdir -p "${NEWROOT}/etc/modprobe.d"
+echo "blacklist nouveau" > "${NEWROOT}/etc/modprobe.d/disable-nouveau.conf"
+
+exit 0
diff --git a/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh b/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh
deleted file mode 100755
index f0b9f763..00000000
--- a/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/ash
-#
-# This script checks whether the nvidia kernel module was loaded by udev
-# and copies the kernel modules over to stage4 and disables nouveau
-
-copy_nvidia_modules() {
- local nvidia_moddir="/lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nvidia"
- if [ -d "${NEWROOT}/${nvidia_moddir}" ]; then
- echo "Stage4 contains nvidia driver which would be overwritten - skipping."
- return 1
- fi
- if ! ( cp -r "$nvidia_moddir" "${NEWROOT}/${nvidia_moddir}" \
- && depmod -a -b "$NEWROOT" ); then
- echo "Failed to copy/depmod nvidia modules to stage4."
- return 1
- fi
- # nouveau driver would needlessly load, prevent that
- mkdir -p "${NEWROOT}/etc/modprobe.d" # cause why not
- echo "blacklist nouveau" > "${NEWROOT}/etc/modprobe.d/disable-nouveau.conf"
- return 0
-}
-
-if ! lsmod | grep -q '^nvidia'; then
- exit 0
-fi
-
-copy_nvidia_modules
diff --git a/modules.d/slx-drm/module-setup.sh b/modules.d/slx-drm/module-setup.sh
index 6f4b9ac7..336062d3 100755
--- a/modules.d/slx-drm/module-setup.sh
+++ b/modules.d/slx-drm/module-setup.sh
@@ -22,7 +22,7 @@ install() {
--wafter "dracut-cmdline.service" \
--wbefore "dracut-pre-udev.service"
# Copy nVidia drivers to stage 4 if they're loaded
- slx_service "s3-copy-nvidia-drivers" "Copy nVidia drivers to stage 4 if in use" \
+ slx_service "s3-blacklist-nouveau" "Blacklist nouveau driver if nvidia driver is loaded" \
--wafter "initrd-root-fs.target" \
--wafter "s3-activate-nvidia-drivers.service"
}