我正在尝试在编译内核映像时构建内核模块,方法是将配置符号值更改为“' m'”。但是我没有看到生成任何模块文件。如果我需要采取一些额外步骤来生成模块,请告诉我。如果我将标志更改为' y'代码工作正常。
此外,在线教程中,我见过以下两个
>insmod temp.ko
也
>insmod temp.o
哪个是动态可加载模块的正确类型?
答案 0 :(得分:1)
要在Linux树中编译可加载的内核模块,请应用以下命令
make modules
.ko
是正确的内核模块扩展。如果.o
尝试使用insmod
,则会显示Invalid module format
错误。
答案 1 :(得分:1)
如果您的模块与其他模块有依赖关系,那么:
make modules
构建模块
make modules_install
安装它们
modprobe temp.ko
加载临时模块及其依赖项
如果您的模块很简单且没有依赖关系,那么:
make modules
构建模块
cd /path/to/module
insmod temp.ko
答案 2 :(得分:0)
未在make中使用模块目标。
答案 3 :(得分:0)
首先,运行make menuconfig
,使用/
搜索要构建的模块。接下来选择'm'
或'y'
,具体取决于您希望将其编译为内核的一部分或将其构建为模块。
(如果你不想构建整个内核而只是构建一个模块):
接下来,在linux
目录中(假设您使用的是vanilla内核)运行以下命令,这些命令将根据您的.config
make prepare
make scripts
现在只需使用:
构建模块 make M=<path/to/module/dir>
如果您选择m
希望这会有所帮助。