wok-next diff linux/stuff/tools/check_modules.sh @ rev 19595
Up linux (4.9.4)
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sat Jan 21 17:27:31 2017 +0200 (2017-01-21) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/linux/stuff/tools/check_modules.sh Sat Jan 21 17:27:31 2017 +0200 1.3 @@ -0,0 +1,82 @@ 1.4 +#!/bin/sh 1.5 +# Print Linux Kernel modules that do not belong to any of the packages. 1.6 +# (c) 2009-2017 SliTaz - GNU General Public License. 1.7 +# 1.8 + 1.9 +. /lib/libtaz.sh 1.10 + 1.11 +WOK=$(cd $(dirname $0) && pwd | sed 's/wok.*/wok/') 1.12 +. $WOK/linux/receipt 1.13 +BASEVER="${VERSION:0:3}" 1.14 +src="$WOK/linux/source/linux-$VERSION" 1.15 + 1.16 +cd $src 1.17 +tmp=$WOK/${PACKAGE:-linux}/tmp 1.18 +mkdir -p $tmp 1.19 +rm -f $tmp/* 1.20 + 1.21 +#=============================================================================== 1.22 + 1.23 +# Make temporal base modules list 1.24 + 1.25 +kversion="$VERSION-slitaz" 1.26 +modroot="$WOK/$PACKAGE/install/lib/modules/$kversion/kernel" 1.27 +modlist="$tmp/modules.list" 1.28 + 1.29 +list_modules() { 1.30 + found="$(find $modroot/$1 -type f)" 1.31 + if [ -z "$found" ]; then 1.32 + echo -e "\n\nError: $modroot/$1 does not exist.\n\n" >&2 1.33 + exit 1 1.34 + fi 1.35 + 1.36 + for module in $(echo "$found" | sed "s|.*$kversion/||"); do 1.37 + grep $module: "$modroot/../modules.dep" 1.38 + done | sed 's|^kernel/||; s| kernel/| |g; s|:||' | \ 1.39 + tr ' ' $'\n' | sort -u 1.40 +} 1.41 + 1.42 +while read rule_name rule_value; do 1.43 + [ "$rule_name" != 'linux' ] && continue 1.44 + list_modules $rule_value >> "$modlist" 1.45 +done < "$WOK/linux/stuff/split.rules" 1.46 + 1.47 +#=============================================================================== 1.48 + 1.49 +echo 1.50 +title 'Checking for Linux Kernel modules that do not belong to any of the packages' 1.51 + 1.52 +# create a packaged modules list 1.53 +{ 1.54 + cat "$modlist" 1.55 + 1.56 + for i in $SPLIT; do 1.57 + cat $WOK/$i/taz/$i-*/files.list | sed 's|.*/kernel/||' 1.58 + done 1.59 +} | grep '.ko.xz$' > $tmp/modules-packaged 1.60 + 1.61 +# create a compiled modules list 1.62 +sed 's|^kernel/||; s|$|.xz|' \ 1.63 +$WOK/linux/install/lib/modules/$VERSION-slitaz/modules.order > $tmp/modules-compiled 1.64 + 1.65 +# compare the lists 1.66 +awk '{ 1.67 + if (FILENAME ~ "compiled") 1.68 + m[$0] = 1; 1.69 + else 1.70 + delete m[$0]; 1.71 +} 1.72 +END { 1.73 + for (i in m) print i; 1.74 +}' $tmp/modules-compiled $tmp/modules-packaged | tee $tmp/modules-unpackaged 1.75 + 1.76 +if [ -s $tmp/modules-unpackaged ]; then 1.77 + footer "List saved to wok/linux/tmp/modules-unpackaged" 1.78 +else 1.79 + _ 'All modules are packaged' 1.80 + echo 1.81 + rm $tmp/modules-unpackaged 1.82 +fi 1.83 + 1.84 +# Clean 1.85 +rm "$modlist"