哪些加载的内核模块未使用,我应该禁用它们吗?

Anw*_*war 5 kernel

我想知道现在没有使用的内核模块。那么,我可以禁止它们在启动时加载吗?

有什么方法可以查看哪些内核模块(当然是加载的)没有被使用?

ish*_*ish 6

大多数模块仅因为检测到相应的硬件而自动加载

lsmod 向您显示当前加载的模块,如(摘录):

使用的模块大小
...
psmouse 87692 0 
蓝牙 180104 7 bnep
parport 46562 3 lp,parport_pc,ppdev
serio_raw 13211 0 
snd_ens1371 25747 4 
游戏端口 19693 1 snd_ens1371
snd_ac97_codec 134826 1 snd_ens1371
喜悦开发 17693 0 
...

然而,仅仅因为某个特定模块的Used为 0并不意味着它没有被使用!

请注意,内核会根据检测到的硬件自动加载模块,但 中列出的模块除外/etc/modules,它们是“强制”加载的。

删除/列入黑名单将禁用硬件;对内存超过 512MB 的现代系统没有实际需求

因此,如果您将这些模块中的任何一个删除或列入黑名单,请注意:该硬件可能不再工作。例如,如果我 remove/blacklist parport,我的并行端口将无法工作,如果我从不使用它也没关系。这同样适用于bluetooth,等等。

内核模块在现代 PC 上占用的内存相对较少,因此我唯一推荐这种手动“优化”的时间是在 RAM 很少的嵌入式系统等上。


用于禁用模块

从 OP 后来的评论来看,他似乎想知道加载的未使用模块名称,以禁用它们在启动时自动加载。可以通过将它们列入黑名单来实现。