如何构建特定的内核模块?

如何构建特定的内核模块?

我从官方 Linux 内核存储库安装了内核源代码(http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.bz2),我用一些支持移动 IPv6 所需的选项重新编译了它。当我需要一个模块来加密某些数据时,我没有在已构建的其余模块中找到它。我需要的模块是:“echainiv”和“authenc”。

答案1

第一步是确定需要设置哪些配置选项才能构建模块。我用

make menuconfig

为了那个原因;/接下来的配置选项将告诉您在哪里可以找到它以及它的依赖项是什么。对于ECHAINIV,您需要启用CRYPTO然后启用ECHAINIV(作为一个模块,因为这就是您所追求的 - 在 中make menuconfig,条目必须显示<M>,而不是<*>)。

要构建模块,请查找包含相应源代码的目录:

find . -name echainiv\*

代码位于crypto,所以

make crypto/echainiv.ko

(从顶级目录)将为您构建模块。

要安装模块,假设您正在运行目标内核,请运行

sudo mkdir -p /lib/modules/$(uname -r)/kernel/crypto
sudo cp -i crypto/echainiv.ko /lib/modules/$(uname -r)/kernel/crypto

相关内容