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

mel*_*uri 2 compiling debian cryptography kernel-modules linux-kernel

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

Ste*_*itt 5

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

\n\n
make menuconfig\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
find . -name echainiv\\*\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码位于crypto,所以

\n\n
make crypto/echainiv.ko\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

要安装该模块,假设您\xe2\x80\x99正在运行目标内核,请运行

\n\n
sudo mkdir -p /lib/modules/$(uname -r)/kernel/crypto\nsudo cp -i crypto/echainiv.ko /lib/modules/$(uname -r)/kernel/crypto\n
Run Code Online (Sandbox Code Playgroud)\n