summaryrefslogtreecommitdiff
path: root/lsumod
diff options
context:
space:
mode:
authoryuzu-eva <cafebabe@disroot.org>2025-05-08 14:01:37 +0200
committeryuzu-eva <cafebabe@disroot.org>2025-05-08 14:01:37 +0200
commitef7c1605a027b52bbff1b01ea693b60f53fa3a71 (patch)
tree1089334258aefbd459d18cf6968e78f1194739b0 /lsumod
initial commit
Diffstat (limited to 'lsumod')
-rwxr-xr-xlsumod31
1 files changed, 31 insertions, 0 deletions
diff --git a/lsumod b/lsumod
new file mode 100755
index 0000000..a02a9eb
--- /dev/null
+++ b/lsumod
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+declare -A all_modules # 0 module is used 1 module is not used
+
+for i in $(find /lib/modules/$(uname -r) -type f -name '*.ko*'); do
+ module_name=$(basename $i);
+ module_without_extension=$(echo $module_name | cut -f 1 -d '.')
+ module_name_normalized=$(echo $module_without_extension | sed 's/-/_/g')
+ all_modules[$module_name_normalized]=1
+done
+
+IFS=$'\n'
+for i in $(lsmod | sed '1d;$d'); do
+ module_name=$(echo $i | awk '{print $1}')
+ echo "$module_name"
+ if [[ -v all_modules[$module_name] ]]; then
+ all_modules[$module_name]=0
+ else
+ echo "Warning! There is no $module_name module in all_modules array - adding it to all modules but you should check"
+ all_modules[$module_name]=0
+ fi
+done
+
+for i in "${!all_modules[@]}"
+do
+ if [ ${all_modules[$i]} -eq 0 ]; then
+ echo "$i is loaded"
+ else
+ echo "$i is not used"
+ fi
+done