diff options
Diffstat (limited to 'modules.d/slx-drm')
-rwxr-xr-x[-rw-r--r--] | modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh (renamed from modules.d/slx-drm/hooks/activate-nvidia-drivers.sh) | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh (renamed from modules.d/slx-drm/hooks/copy-nvidia-drivers.sh) | 2 | ||||
-rwxr-xr-x | modules.d/slx-drm/module-setup.sh | 12 | ||||
-rw-r--r-- | modules.d/slx-drm/services/s3-activate-nvidia-drivers.service | 13 | ||||
-rw-r--r-- | modules.d/slx-drm/services/s3-copy-nvidia-drivers.service | 12 |
5 files changed, 36 insertions, 3 deletions
diff --git a/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh b/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh index 00c2334a..00c2334a 100644..100755 --- a/modules.d/slx-drm/hooks/activate-nvidia-drivers.sh +++ b/modules.d/slx-drm/hooks/s3-activate-nvidia-drivers.sh diff --git a/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh b/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh index 6e4a8529..5afc71c7 100644..100755 --- a/modules.d/slx-drm/hooks/copy-nvidia-drivers.sh +++ b/modules.d/slx-drm/hooks/s3-copy-nvidia-drivers.sh @@ -1,4 +1,4 @@ -#!/bin/ash +#!/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 diff --git a/modules.d/slx-drm/module-setup.sh b/modules.d/slx-drm/module-setup.sh index 4baa5b2a..00ff80a7 100755 --- a/modules.d/slx-drm/module-setup.sh +++ b/modules.d/slx-drm/module-setup.sh @@ -17,6 +17,14 @@ install() { mkdir -p "${initdir}/${dir%/*}" cp -ar "$dir" "${initdir}/${dir%/*}" done - inst_hook pre-udev 10 "${moddir}/hooks/activate-nvidia-drivers.sh" - inst_hook pre-pivot 50 "${moddir}/hooks/copy-nvidia-drivers.sh" + for _name in "s3-activate-nvidia-drivers" "s3-copy-nvidia-drivers"; do + inst "$moddir/hooks/${_name}.sh" \ + "/usr/local/bin/${_name}.sh" + inst_simple "${moddir}/services/${_name}.service" \ + "${systemdsystemunitdir}/${_name}.service" + mkdir --parents \ + "${initdir}/${systemdsystemunitdir}/dracut-pre-pivot.service.requires" + ln_r "${systemdsystemunitdir}/${_name}.service" \ + "${systemdsystemunitdir}/dracut-pre-pivot.service.requires/${_name}.service" + done } diff --git a/modules.d/slx-drm/services/s3-activate-nvidia-drivers.service b/modules.d/slx-drm/services/s3-activate-nvidia-drivers.service new file mode 100644 index 00000000..4ea86525 --- /dev/null +++ b/modules.d/slx-drm/services/s3-activate-nvidia-drivers.service @@ -0,0 +1,13 @@ +[Unit] +Description=Enable loading of nVidia drivers if a suitable GPU is found +Requires=dracut-cmdline.service +After=dracut-cmdline.service +Before=dracut-pre-udev.service +Wants=dracut-pre-udev.service +DefaultDependencies=no +IgnoreOnIsolate=true + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/usr/local/bin/s3-activate-nvidia-drivers.sh diff --git a/modules.d/slx-drm/services/s3-copy-nvidia-drivers.service b/modules.d/slx-drm/services/s3-copy-nvidia-drivers.service new file mode 100644 index 00000000..587a1175 --- /dev/null +++ b/modules.d/slx-drm/services/s3-copy-nvidia-drivers.service @@ -0,0 +1,12 @@ +[Unit] +Description=Copy nVidia drivers to stage 4 if in use +After=dracut-mount.service +After=s3-activate-nvidia-drivers.service +Before=initrd-switch-root.target +DefaultDependencies=no +IgnoreOnIsolate=true + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/usr/local/bin/s3-copy-nvidia-drivers.sh |