如何识别给定 CONFIG_* 名称的 *.ko 文件?

How to identify *.ko file given CONFIG_* name?

我启用了几个新的内核模块作为可加载的(m 而不是内置 y)但不明白 CONFIG 如何映射到 .ko 文件。

modprobe CONFIG_MY_CONFIG
insmod CONFIG_MY_CONFIG
modprobe MY_CONFIG
insmod MY_CONFIG

首先,您需要找到 CONFIG_<MYCONFIG> 变量在其中一个 Makefile 中的用法(顶部的除外)。您可以为此使用 grep 实用程序(来自内核源目录的 运行):

grep -r . --include Makefile -e "CONFIG_<MYCONFIG>"

符合该用法的行通常看起来像

obj-${CONFIG_<MYCONFIG>} += <driver>.o

这里<driver>modprobe使用的驱动名称:

modprobe <driver>

要找到驱动程序的确切路径,您可以使用 modprobe 的 --show-depends 选项:

modprobe --show-depends <driver>

Linux 内核中使用的 Makefile 在 Documentation/kbuild/makefiles.txt 中有描述。