#!/bin/bash

ENABLED=no
[[ ${ENABLED} == "yes" ]] || exit 0

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

WHITELISTMODULES="$(cmdline_value whitelist | tr ',;' ' ')"
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null

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 | grep -Ev "nvidia|virtualbox|vbox" | grep -E .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
