2020-04-23 22:58:39 +00:00
|
|
|
#!/bin/sh +x
|
2020-07-14 01:51:10 +00:00
|
|
|
# Kernel build can have many thousands of modules.
|
|
|
|
# kmod.prov is run for every one of them.
|
|
|
|
# Try to make this script run as fast as we can.
|
|
|
|
# For example, use shell string ops instead of external programs
|
|
|
|
# where possible.
|
2020-04-23 22:58:39 +00:00
|
|
|
|
|
|
|
IFS=$'\n'
|
|
|
|
|
2020-07-14 01:51:10 +00:00
|
|
|
read -r fname || exit
|
2020-04-23 22:58:39 +00:00
|
|
|
|
2020-07-14 01:51:10 +00:00
|
|
|
# Only process files from .../lib/modules/... subtree
|
|
|
|
[ "${fname#*/lib/modules/*}" != "$fname" ] || exit 0
|
|
|
|
|
|
|
|
kmod=${fname##*/} # like basename, but faster
|
|
|
|
|
|
|
|
if [ "$kmod" = "modules.builtin" ]; then
|
|
|
|
for j in $(cat -- "$fname"); do
|
|
|
|
echo "kmod(${j##*/})"
|
|
|
|
done
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
kmod=${kmod%.gz}
|
|
|
|
kmod=${kmod%.xz}
|
|
|
|
if [ "${kmod%.ko}" != "$kmod" ]; then
|
|
|
|
echo "kmod($kmod)"
|
|
|
|
fi
|