为什么modinfo会说一个模块未找到,而它在lsmod中却出现了?

我注意到了几个情况,如果我使用lsmod找到一个模块,然后使用modinfo查看该模块,会出现ERROR: Module not found的错误信息。例如,在使用专有驱动程序时,如Nvidia模块。

那么,在哪些情况下,一个模块会出现在lsmod中,但给出类似于我上面提到的modinfo错误?

2个回答

它正在被别名化。在我的例子中(可能与你的相似):

lsmod | grep nvidia
nvidia               9171294  51

modinfo nvidia
ERROR: modinfo: could not find module nvidia

modprobe --resolve-alias nvidia
nvidia_current

grep -r nvidia /etc/modprobe.d/
/etc/modprobe.d/nvidia-graphics-drivers.conf:alias nvidia nvidia_current

modinfo nvidia_current
filename:       /lib/modules/3.7.5-030705-generic/updates/dkms/nvidia_current.ko
alias:          char-major-195-*
version:        313.09
[...]

以上应该不言而喻,是吧?

以上的话已经说得很清楚了^^。还有其他情况可能会发生类似的情况吗? - Luis Alvarado
@LuisAlvarado 或许是这样,但这是我所知道的唯一一个。 - gertvdijk
如果我使用 alias myModuleAlias someModule,那么 modinfo myModuleAlias 是不能工作的吗?我本以为这就是别名的一个用途呢? - fpghost

你只需要运行:

depmod -a