diff options
author | Simon Rettberg | 2024-01-25 15:47:09 +0100 |
---|---|---|
committer | Simon Rettberg | 2024-01-29 09:53:08 +0100 |
commit | abb148916593de63554ef58c53cb1dd8fbbb0ab1 (patch) | |
tree | d8c640c33f699f3abc567d9bbf111190c779b7d2 /modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh | |
parent | [dnbd3-rootfs] Try optimized ext4 mount options if none are given (diff) | |
download | systemd-init-abb148916593de63554ef58c53cb1dd8fbbb0ab1.tar.gz systemd-init-abb148916593de63554ef58c53cb1dd8fbbb0ab1.tar.xz systemd-init-abb148916593de63554ef58c53cb1dd8fbbb0ab1.zip |
Try to use more systemd services
Diffstat (limited to 'modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh')
-rwxr-xr-x | modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh b/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh new file mode 100755 index 00000000..5afc71c7 --- /dev/null +++ b/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# This script checks whether the nvidia kernel module was loaded by udev +# and copies the kernel modules over to stage4 and disables nouveau + +type emergency_shell >/dev/null 2>&1 || . /lib/dracut-lib.sh + +copy_nvidia_modules() { + local nvidia_moddir="/lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nvidia" + if [ -d "${NEWROOT}/${nvidia_moddir}" ]; then + warn "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 + warn "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 + copy_nvidia_modules +fi +: # fake success |