diff options
| author | Simon Rettberg | 2025-04-16 19:08:21 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2025-04-16 19:08:21 +0200 |
| commit | 7bd839aee34fa4d867410745882c5e9f730f099f (patch) | |
| tree | 79108b02b0882412428ab9f586a6f2957a9fdefb /modules.d | |
| parent | [slx-dmsetup] Try to get swap-service to actually run after we detected all HDDs (diff) | |
| download | systemd-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-x | modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh | 6 | ||||
| -rwxr-xr-x | modules.d/slx-drm/hooks/s3-blacklist-nouveau.sh | 8 | ||||
| -rwxr-xr-x | modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh | 27 | ||||
| -rwxr-xr-x | modules.d/slx-drm/module-setup.sh | 2 |
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" } |
