如果判断linux内核是否加载某模块?


比如网卡驱动, 写在脚本里自动运行, 如果已经加载过了,那就不用加载了.
看了insmod命令,没看到判断的选项. 如果不判断会有下面的报错.

sudo insmod ../device/hybrid/wl.ko insmod: ERROR: could not insert
module ../device/hybrid/wl.ko: File exists

原问题提在zhihu了, 没人理我, 再在这里提问下, 有知道的赐教一下,多谢.

Linux linux内核模块 linux运维

博派捍天尊 10 years ago

 ["`sudo lsmod | grep wl`" == ""] && sudo insmod ../device/hybrid/wl.ko

这样比较ok啊.

喵森あおい answered 10 years ago

查看系统当前加载的内核模块:
lsmod 或者 cat /proc/modules

nvidia-prime切换到Nvidia性能模式后会加载Nvidia内核模块:


 lsmod|head -n1 && lsmod|grep nvidia
Module     Size  Used by
nvidia 10744900  27 
drm      308197  6 i915,drm_kms_helper,nvidia

cat /proc/modules |grep nvidia
nvidia 10744900 27 - Live 0x0000000000000000 (POF)
drm 308197 6 nvidia,i915,drm_kms_helper, Live 0x0000000000000000

另外,可以手动用modprobe加载模块,用rmmod移除已挂载模块:
modprobe ntfs
rmmod ntfs

diggo answered 10 years ago

Your Answer