Skip to content

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) }'