make modules_install
是一个在 Linux 内核源码树中使用的命令,用于编译并安装内核模块到指定的目录中。这个命令通常在你已经成功编译了内核模块(通常是通过 make modules
命令)之后执行。
当你执行 make modules_install
时,它会执行以下操作:
-
编译模块(如果之前没有编译过):虽然
make modules_install
主要用于安装模块,但如果某些模块尚未编译,它可能会先编译这些模块。 -
安装模块:将编译好的内核模块(通常是
.ko
文件)复制到系统的模块目录中。这个目录通常是/lib/modules/$(uname -r)
,其中$(uname -r)
是你当前运行的内核版本。但是,实际的安装路径可能由内核的Makefile
或你的编译环境变量指定。 -
更新模块依赖:在安装模块后,可能会运行
depmod
命令来更新模块依赖关系,确保modprobe
命令能够正确加载所需的模块。 -
设置模块权限:确保模块文件具有正确的权限,以便系统能够加载它们。
要执行 make modules_install
,你通常需要在内核源码树的顶级目录中,并且已经配置了内核(例如通过 make menuconfig
、make xconfig
或直接编辑 .config
文件)。你还需要有适当的权限来写入模块目录(通常需要 root 权限)。
在执行这个命令之前,请确保:
- 你已经成功编译了内核(或至少是你想要安装的模块)。
- 你的系统环境变量(如
KERNELRELEASE
)和内核源码树的配置是正确的。 - 你有足够的权限来安装模块。
如果你只是想编译并安装特定的模块,而不是所有模块,你可以使用 M=
参数来指定模块目录,例如 make M=path/to/module modules_install
。这将只编译并安装指定目录中的模块。