wok-undigest annotate linux/stuff/tools/check_modules.sh @ rev 1217

copied linux receipt and stuff from wok-next
author Hans-G?nter Theisgen
date Fri Nov 15 16:49:43 2019 +0100 (2019-11-15)
parents
children
rev   line source
Hans-G?nter@1217 1 #!/bin/sh
Hans-G?nter@1217 2 # Print Linux Kernel modules that do not belong to any of the packages.
Hans-G?nter@1217 3 # (c) 2009-2017 SliTaz - GNU General Public License.
Hans-G?nter@1217 4 #
Hans-G?nter@1217 5
Hans-G?nter@1217 6 . /lib/libtaz.sh
Hans-G?nter@1217 7
Hans-G?nter@1217 8 WOK=$(cd $(dirname $0) && pwd | sed 's/wok.*/wok/')
Hans-G?nter@1217 9 . $WOK/linux/receipt
Hans-G?nter@1217 10 BASEVER="${VERSION:0:3}"
Hans-G?nter@1217 11 src="$WOK/linux/source/linux-$VERSION"
Hans-G?nter@1217 12
Hans-G?nter@1217 13 cd $src
Hans-G?nter@1217 14 tmp=$WOK/${PACKAGE:-linux}/tmp
Hans-G?nter@1217 15 mkdir -p $tmp
Hans-G?nter@1217 16 rm -f $tmp/*
Hans-G?nter@1217 17
Hans-G?nter@1217 18 #===============================================================================
Hans-G?nter@1217 19
Hans-G?nter@1217 20 # Make temporal base modules list
Hans-G?nter@1217 21
Hans-G?nter@1217 22 kversion="$VERSION-slitaz"
Hans-G?nter@1217 23 modroot="$WOK/$PACKAGE/install/lib/modules/$kversion/kernel"
Hans-G?nter@1217 24 modlist="$tmp/modules.list"
Hans-G?nter@1217 25
Hans-G?nter@1217 26 list_modules() {
Hans-G?nter@1217 27 found="$(find $modroot/$1 -type f)"
Hans-G?nter@1217 28 if [ -z "$found" ]; then
Hans-G?nter@1217 29 echo -e "\n\nError: $modroot/$1 does not exist.\n\n" >&2
Hans-G?nter@1217 30 exit 1
Hans-G?nter@1217 31 fi
Hans-G?nter@1217 32
Hans-G?nter@1217 33 for module in $(echo "$found" | sed "s|.*$kversion/||"); do
Hans-G?nter@1217 34 grep $module: "$modroot/../modules.dep"
Hans-G?nter@1217 35 done | sed 's|^kernel/||; s| kernel/| |g; s|:||' | \
Hans-G?nter@1217 36 tr ' ' $'\n' | sort -u
Hans-G?nter@1217 37 }
Hans-G?nter@1217 38
Hans-G?nter@1217 39 while read rule_name rule_value; do
Hans-G?nter@1217 40 [ "$rule_name" != 'linux' ] && continue
Hans-G?nter@1217 41 list_modules $rule_value >> "$modlist"
Hans-G?nter@1217 42 done < "$WOK/linux/stuff/split.rules"
Hans-G?nter@1217 43
Hans-G?nter@1217 44 #===============================================================================
Hans-G?nter@1217 45
Hans-G?nter@1217 46 echo
Hans-G?nter@1217 47 title 'Checking for Linux Kernel modules that do not belong to any of the packages'
Hans-G?nter@1217 48
Hans-G?nter@1217 49 # create a packaged modules list
Hans-G?nter@1217 50 {
Hans-G?nter@1217 51 cat "$modlist"
Hans-G?nter@1217 52
Hans-G?nter@1217 53 for i in $SPLIT; do
Hans-G?nter@1217 54 cat $WOK/$i/taz/$i-*/files.list | sed 's|.*/kernel/||'
Hans-G?nter@1217 55 done
Hans-G?nter@1217 56 } | grep '.ko.xz$' > $tmp/modules-packaged
Hans-G?nter@1217 57
Hans-G?nter@1217 58 # create a compiled modules list
Hans-G?nter@1217 59 sed 's|^kernel/||; s|$|.xz|' \
Hans-G?nter@1217 60 $WOK/linux/install/lib/modules/$VERSION-slitaz/modules.order > $tmp/modules-compiled
Hans-G?nter@1217 61
Hans-G?nter@1217 62 # compare the lists
Hans-G?nter@1217 63 awk '{
Hans-G?nter@1217 64 if (FILENAME ~ "compiled")
Hans-G?nter@1217 65 m[$0] = 1;
Hans-G?nter@1217 66 else
Hans-G?nter@1217 67 delete m[$0];
Hans-G?nter@1217 68 }
Hans-G?nter@1217 69 END {
Hans-G?nter@1217 70 for (i in m) print i;
Hans-G?nter@1217 71 }' $tmp/modules-compiled $tmp/modules-packaged | tee $tmp/modules-unpackaged
Hans-G?nter@1217 72
Hans-G?nter@1217 73 if [ -s $tmp/modules-unpackaged ]; then
Hans-G?nter@1217 74 footer "List saved to wok/linux/tmp/modules-unpackaged"
Hans-G?nter@1217 75 else
Hans-G?nter@1217 76 _ 'All modules are packaged'
Hans-G?nter@1217 77 echo
Hans-G?nter@1217 78 rm $tmp/modules-unpackaged
Hans-G?nter@1217 79 fi
Hans-G?nter@1217 80
Hans-G?nter@1217 81 # Clean
Hans-G?nter@1217 82 rm "$modlist"