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

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

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

有没有什么方法可以查看哪些内核模块(当然,已经加载)未使用?

答案1

大多数模块仅在检测到相应硬件时才会自动加载

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

使用的模块大小
...
psmouse 87692 0
蓝牙 180104 7 bnep
parport 46562 3 lp,parport_pc,ppdev
严重_原始 13211 0
snd_ens1371 25747 4
游戏端口 19693 1 snd_ens1371
snd_ac97_codec 134826 1 snd_ens1371
joydev 17693 0
...

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

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

删除/列入黑名单将禁用硬件;对于具有超过 512MB RAM 的现代系统而言,没有必要

因此,如果您删除或将任何这些模块列入黑名单注意:该硬件可能不再起作用。例如,如果我删除/将 列入黑名单parport,我的并行端口将无法工作,如果我从不使用它,那就没问题。bluetooth等也是如此。

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


禁用模块

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

相关内容