You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.post.d/60-blacklistdkms

25 lines
947 B

#!/bin/bash
ENABLED=no
[ "$ENABLED" != "yes" ] && exit 0
DEBUGMODE=no
. /usr/lib/ublinux/functions
. /usr/lib/ublinux/os-config
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 | 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