How to determine if a specific module is loaded in linux kernel

前端 未结 9 1591
谎友^
谎友^ 2021-02-01 14:28

I am just curious is there any way to determine if a particular module is loaded/installed.

$lsmod lists all modules (device driver loaded).

Is there any way to

9条回答
  •  离开以前
    2021-02-01 15:06

    The --first-time flag causes modprobe to fail if the module is already loaded. That in conjunction with the --dry-run (or the shorthand -n) flag makes a nice test:

    modprobe -n --first-time $MODULE && echo "Not loaded" || echo "Loaded"
    

    Edit 1: As @Nobody pointed out this also prints Loaded if the module does not exist. We can fix this by combining it with modinfo:

    modinfo $MODULE >/dev/null 2>/dev/null &&
    ! modprobe -n --first-time $MODULE 2>/dev/null &&
    echo "Loaded" || echo "Not loaded"
    

    Edit 2: On some systems modprobe lives in /usr/sbin, which is not in the $PATH unless you are root. In that case you have to substitute modprobe for /usr/sbin/modprobe in the above.

提交回复
热议问题