8.49. Kmod-33

Kmod 软件包包含用于加载内核模块的库和工具。

估计构建时间: 不到 0.1 SBU
需要硬盘空间: 11 MB

8.49.1. 安装 Kmod

准备编译 Kmod:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --with-openssl    \
            --with-xz         \
            --with-zstd       \
            --with-zlib       \
            --disable-manpages

配置选项的含义:

--with-openssl

该选项允许 Kmod 处理内核模块的 PKCS7 数字签名。

--with-xz--with-zlib,以及 --with-zstd

这些选项允许 Kmod 处理压缩过的内核模块。

--disable-manpages

该选项禁止生成手册页,因为生成手册页需要不属于 LFS 的程序。

编译该软件包:

make

该软件包的测试套件需要内核的原始头文件 (不是之前安装的 净化的 内核头文件),原始头文件超出了 LFS 的范畴。

安装该软件包,并重新创建一些用于和 Module-Init-Tools (曾用于处理 Linux 内核模块的软件包) 相兼容的符号链接。构建系统会将所有兼容性符号链接创建在 /usr/bin 中,但我们只希望 lsmod 位于该目录,而其他符号链接应该位于 /usr/sbin 中:

make install

for target in depmod insmod modinfo modprobe rmmod; do
  ln -sfv ../bin/kmod /usr/sbin/$target
  rm -fv /usr/bin/$target
done

8.49.2. Kmod 的内容

安装的程序: depmod (到 kmod 的链接), insmod (到 kmod 的链接), kmod, lsmod (到 kmod 的链接), modinfo (到 kmod 的链接), modprobe (到 kmod 的链接), 以及 rmmod (到 kmod 的链接)
安装的库: libkmod.so

简要描述

depmod

根据现有模块的符号信息创建依赖关系文件;modprobe 使用依赖关系文件自动加载需要的模块

insmod

在正在运行的内核中安装可加载模块

kmod

加载或卸载内核模块

lsmod

列出当前加载的模块

modinfo

检验与某个内核模块相关的目标文件,打印它能够收集到的一切信息

modprobe

使用一个 depmod 创建的依赖关系文件,自动加载相关模块

rmmod

从正在运行的内核中卸载模块

libkmod

这个库被其他程序用于加载和卸载内核模块