#!/bin/bash

ENABLED=no
[ "$ENABLED" != "yes" ] && exit 0

DEBUGMODE=no
. /usr/lib/ublinux/functions
debug_mode "$0" "$@"

WHITELISTMODULES="$(cmdline_value whitelist | tr ',;' ' ')"
. /etc/ublinux/config

echo -n > /etc/modprobe.d/blacklist-ublinux-dkms.conf

LC_ALL=C lspci -k | grep "Kernel modules: " | grep ", " | sed s/.*"Kernel modules: "// | sed s/", "/"\n"/g > /tmp/kernel_mods_lspci
find /var/lib/dkms-binary -type f | egrep -v "nvidia|virtualbox|vbox" | egrep .ko$"|".ko.xz | gawk -F/ '{print $NF}' | sed s/[.]ko.*// | sort -u | grep -f /tmp/kernel_mods_lspci | while read a ;do
    lspci -nn | grep -q -f /usr/share/ublinux/hwdata/dkms/$a 2>/dev/null && continue
    echo "$WHITELISTMODULES" | grep -q "$a" && continue
    modprobe -r "$a" 2>/dev/null
    echo "blacklist $a" >> /etc/modprobe.d/blacklist-ublinux-dkms.conf
done

rm -f /tmp/kernel_mods_lspci
