summaryrefslogtreecommitdiffstats
path: root/kernel_prerm.d_dkms
diff options
context:
space:
mode:
Diffstat (limited to 'kernel_prerm.d_dkms')
-rwxr-xr-xkernel_prerm.d_dkms18
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel_prerm.d_dkms b/kernel_prerm.d_dkms
new file mode 100755
index 0000000..aeb8e3a
--- /dev/null
+++ b/kernel_prerm.d_dkms
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# We're passed the version of the kernel being removed
+inst_kern=$1
+
+if command -v dkms > /dev/null; then
+ dkms status -k "$inst_kern" 2>/dev/null | while IFS=",:/ " read -r name vers _ arch status; do
+ [ "$status" = "installed" ] || continue
+ echo "dkms: removing: $name $vers ($inst_kern) ($arch)" >&2
+ dkms remove -m "$name" -v "$vers" -k "$inst_kern" -a "$arch"
+ done
+fi
+
+rmdir --ignore-fail-on-non-empty \
+ "/lib/modules/$inst_kern/updates/dkms" \
+ "/lib/modules/$inst_kern/updates" 2>/dev/null
+
+exit 0