From: James Bunton Date: Sun, 16 Jul 2017 12:55:47 +0000 (+1000) Subject: Restore clean-dkms X-Git-Url: https://code.delx.au/monosys/commitdiff_plain/a5f7da8f7e638b4074e860b020bfdfb503d65c89 Restore clean-dkms --- diff --git a/clean-dkms b/clean-dkms new file mode 100755 index 0000000..146efa3 --- /dev/null +++ b/clean-dkms @@ -0,0 +1,39 @@ +#!/bin/bash + +architecture="x86_64" +linux_packages="linux linux-lts" + +declare -A module2package +module2package[vboxhost]=virtualbox-host-dkms +module2package[broadcom-wl]=broadcom-wl-dkms + +echo "# Running: $(uname -r)" +for linux in $linux_packages; do + echo "# Installed: $(pacman -Q "$linux")" +done + +echo +find /var/lib/dkms/ -maxdepth 2 -type l -name 'kernel-*' | while read line; do + module_name="$(echo "$line" | cut -d/ -f5)" + package_name="${module2package[$module_name]}" + if [ -z "$package_name" ]; then + echo "Unknown module: $module_name" + exit 1 + fi + module_version="$(pacman -Q "${package_name}" | cut -d' ' -f2 | cut -d'-' -f1)" + long_kernel_version="$(echo "$line" | cut -d/ -f6)" + kernel_version="$(echo "$long_kernel_version" | sed -e 's/^kernel-//' -e "s/-${architecture}\$//")" + if [ "$kernel_version" = "$(uname -r)" ]; then + continue + fi + echo dkms remove -m "$module_name" -v "$module_version" -k "$kernel_version" +done + +echo +find /lib/modules/ -maxdepth 1 -type d -name '[0-9]*' | while read line; do + if pacman -Qo "$line" &> /dev/null; then + continue + fi + echo rm -rf "$line" +done +