summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-drm
diff options
context:
space:
mode:
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-xmodules.d/slx-drm/module-setup.sh12
-rw-r--r--modules.d/slx-drm/services/s3-activate-nvidia-drivers.service13
-rw-r--r--modules.d/slx-drm/services/s3-copy-nvidia-drivers.service12
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