summaryrefslogtreecommitdiff
path: root/scripts/blacklist.sh
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2017-07-02 16:41:37 +0200
committerDominik Sliwa <dominik.sliwa@toradex.com>2017-07-02 16:41:37 +0200
commit52409fae3e4b8d16b68b61902fc09075cd97b75d (patch)
treee67110145c5843b3f199d872ae285e2546c9ebe2 /scripts/blacklist.sh
Backports generated from 4.11 kernel
Initial commit. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'scripts/blacklist.sh')
-rwxr-xr-xscripts/blacklist.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/blacklist.sh b/scripts/blacklist.sh
new file mode 100755
index 0000000..f941c4a
--- /dev/null
+++ b/scripts/blacklist.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+BLACKLIST_CONF="/etc/modprobe.d/backports.conf"
+BLACKLIST_MAP=".blacklist.map"
+
+MODULE_DIR=$1
+MODULE_UPDATES=$2
+
+if [[ ! -d $MODULE_DIR ]]; then
+ exit
+fi
+
+if [[ ! -d $MODULE_UPDATES ]]; then
+ exit
+fi
+
+mkdir -p $(dirname $BLACKLIST_CONF)
+rm -f $BLACKLIST_CONF
+
+echo "# To be used when using backported drivers" > $BLACKLIST_CONF
+
+for i in $(grep -v ^# $BLACKLIST_MAP | awk '{print $2}'); do
+ MODULE="${i}.ko"
+ MODULE_UPDATE="$(grep -v ^# $BLACKLIST_MAP | grep $i | awk '{print $1}' | head -1).ko"
+
+ COUNT=$(find $MODULE_DIR -type f -name ${MODULE} -or -name ${MODULE}.gz | wc -l)
+ COUNT_REPLACE=$(find $MODULE_UPDATES -type f -name ${MODULE_UPDATE} -or -name ${MODULE_UPDATE}.gz | wc -l)
+
+ if [ $COUNT -ne 0 ]; then
+ if [ $COUNT_REPLACE -ne 0 ]; then
+ echo "Blacklisting $MODULE ..."
+ echo blacklist $i >> $BLACKLIST_CONF
+ fi
+ fi
+done