第 10 章 Debian 和内核

目录

10.1. 我可以安装和编译未经过 Debian 微调的内核吗?
10.2. Debian 提供了哪些工具来编译定制内核?
10.3. Debian 提供了哪些特别的机制来处理内核模块?
10.4. 我是否可以安全地卸载旧的内核软件包,如果可以,应该怎么做?
10.5. 在哪里可以获得关于 Debian 的 Linux 软件包的更多信息?

10.1. 我可以安装和编译未经过 Debian 微调的内核吗?

可以。

只有一个常见的坑:Debian C 运行库是用最新稳定版的内核头文件编译的。如果您正好需要使用比稳定版更新的内核头文件来编译程序,那您要么需要升级包含内核头文件的软件包(linux-libc-dev),要么使用已解压的新版内核源码树中的头文件。也就是说,如果内核源代码位于 /usr/src/linux,那您需要在编译选项中加入 -I/usr/src/linux/include/

10.2. Debian 提供了哪些工具来编译定制内核?

建议想要(或必须)编译定制内核的用户使用较新版本内核编译系统中的“Debian 软件包”目标。在配置完内核后,只需要运行以下命令:

make deb-pkg

就会在内核源码树的上一级目录中创建一个新的内核软件包,可以用 dpkg -i 来安装它。

您需要单独从您喜欢的 Linux 档案站点下载最新版内核(或您选择的版本)的源代码,除非有对应的 linux-source-版本 软件包(其中版本表示内核版本)。

10.3. Debian 提供了哪些特别的机制来处理内核模块?

/etc/modules 配置文件包含了在引导时需要手动加载的模块列表。然而,很少需要编辑该文件。

其他模块配置文件位于 /etc/modprobe.d/ 目录。关于这些文件的格式的更多信息可以在 modprobe.conf(5) 手册页找到。

10.4. 我是否可以安全地卸载旧的内核软件包,如果可以,应该怎么做?

可以。linux-image-NNN.prerm 脚本会检查您将要卸载的内核是否是正在运行的内核。因此,您可以使用以下命令卸载不需要的内核映像软件包:

dpkg --purge linux-image-NNN

(当然,请将 NNN 替换为您的内核版本号和修订版本号)

10.5. 在哪里可以获得关于 Debian 的 Linux 软件包的更多信息?

更多信息,请参见 Debian Linux Kernel Handbook