modinfo
Show information about a Linux Kernel module
Verify a module location
modinfo i915 | egrep 'filename|version|firmware'
Display what hardware a module/kernel driver is used for
modinfo -d e1000e
Display license for a module
modinfo -l e1000e
Display author for a module
modinfo -r e1000e
Print filename only
modinfo -n e1000e
Handle argument as module name instead of alias or filename
modinfo -m e1000e
Modules with short description for each module
modinfo $(cut -d' ' -f1 /proc/modules) | sed '/^dep/s/$/\n/; /^file\|^desc\|^dep/!d'
Modules with short description or each module without using modinfo
awk '{print $1}' "/proc/modules" | xargs modinfo | awk '/^(filename|desc|depends)/'
Detect whether a driver is built-in or module
modinfo rtl8xxxu || echo built-in
Detect whether a driver is built-in or module
modinfo -n e1000e
List all built-in drivers in different ways of checking modules in use
List all built-in drivers that are currently active
for d in /sys/module/*; do
m=$(basename "$d")
modinfo -n "$m" 2>/dev/null | grep -q '(builtin)' && echo "$m"
done
List all built-in drivers that are currently active (single core)
for m in /sys/module/*; do
modinfo -n "${m##*/}" 2>/dev/null | grep -q '(builtin)' && echo "${m##*/}"
done
List all built-in drivers that are currently active (fastest)
find /sys/module -mindepth 1 -maxdepth 1 -type d -printf '%f\n' |
xargs -r -P"$(nproc)" -n1 sh -c '
modinfo -n "$1" 2>/dev/null | grep -q "(builtin)" && echo "$1"
' sh | sort -u
List all built-in drivers that are currently active (slightly slower, but exact)
find /sys/module -mindepth 1 -maxdepth 1 -type d -printf '%f\n' |
xargs -r -P16 -n1 sh -c '
modinfo -n "$1" 2>/dev/null | grep -q builtin && echo "$1"
' sh | sort -u
List built-in network drivers in use
for i in /sys/class/net/*; do
drv=$(basename "$(readlink "$i/device/driver" 2>/dev/null)")
modinfo -n "$drv" 2>/dev/null | grep -q '(builtin)' && echo "$drv (builtin)"
done | column -t
List built-in pci drivers in use
for d in /sys/bus/pci/devices/*/driver; do
m=$(basename "$(readlink "$d")")
modinfo -n "$m" 2>/dev/null | grep -q builtin && echo "$m"
done | sort -u
!!! Example “List built-in usb driver modules in use”
```bash
for d in /sys/bus/usb/devices/*/driver; do
[ -e "$d/module" ] && echo "$(basename "$(readlink "$d/module")")"
done | sort -u
```
List built-in usb drivers in use
for d in /sys/bus/usb/devices/*/driver; do
[ -e "$d/module" ] || continue
m=$(basename "$(readlink "$d/module")")
modinfo -n "$m" 2>/dev/null | grep -q '(builtin)' && echo "$m"
done | sort -u
List built-in usb drivers in use (nice output)
for d in /sys/bus/usb/devices/*/driver; do
[ -e "$d/module" ] || continue
m=$(basename "$(readlink "$d/module")")
n=$(modinfo -n "$m" 2>/dev/null)
printf '%-24s %s\n' "$m" "${n:-unknown}"
done | sort -u
List built-in usb drivers in use (normal output)
for d in /sys/bus/usb/devices/*/driver; do
[ -e "$d/module" ] || continue
m=$(basename "$(readlink "$d/module")")
modinfo -n "$m" 2>/dev/null | grep -q '(builtin)' && echo "$m"
done | sort -u
List all built-in drivers that are currently active (fastest)
for m in /sys/module/*; do modinfo -n "${m##*/}" 2>/dev/null | grep -q builtin && echo "${m##*/}"; done
List all built-in drivers that are currently active
for m in /sys/module/*; do modinfo -n "${m##*/}" 2>/dev/null | grep -q '(builtin)' && echo "${m##*/}"; done
List all built-in drivers that are currently active
ls /sys/module | awk '{system("modinfo -n "$0" 2>/dev/null | grep -q builtin && echo "$0)}'
List all built-in drivers that are currently active
ls /sys/module | awk '{ cmd="modinfo -n \""$0"\" 2>/dev/null | grep -q \"(builtin)\" && echo \""$0"\""; system(cmd) }'