OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

8.3.1. 安装内核

构建内核涉及几个步骤——配置、编译和安装。 阅读 读我 内核源代码树中的文件,以获取本书配置内核方式的替代方法。

通过运行以下命令准备编译:


使先生正确

使先生正确


这确保内核树是绝对干净的。 内核团队建议在每次内核编译之前发出此命令。 不要依赖解压后的源代码树是干净的。

通过菜单驱动的界面配置内核。 有关内核配置的一般信息,请参阅 http://www. linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt。 BLFS 在 http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index 上有一些关于 LFS 之外的包的特定内核配置要求的信息。 有关配置和构建内核的更多信息,请访问 http://www.kroah.com/lkn/


图片

备注

设置内核配置的一个很好的起点是运行 进行定义. 这会将基本配置设置为考虑您当前系统架构的良好状态。

请务必启用/禁用/设置以下功能,否则系统可能无法正常工作或根本无法启动:


设备驱动程序 --->

通用驱动程序选项 --->

[ ] 支持 uevent 助手 [CONFIG_UEVENT_HELPER]

[*] 维护一个 devtmpfs 文件系统以挂载在 /dev [CONFIG_DEVTMPFS]


内核黑客 --->

选择内核展开器(帧指针展开器)---> [CONFIG_UNWINDE


根据系统的要求,可能需要其他几个选项。 有关 BLFS 包所需选项的列表,请参阅内核设置的 BLFS 索引 (http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index)。


图片

备注

如果您的主机硬件使用 UEFI,那么上面的“make defconfig”应该会自动添加一些与 EFI 相关的内核选项。

为了允许从主机的 UEFI 引导环境中引导 LFS 内核,您的内核必须选择此选项:


处理器类型和特性

[*]

->

[CONFIG_EFI_STUB]

处理器类型和特性

[*]


EFI 存根支持

EFI 存根支持

在 LFS 中管理 UEFI 环境的更完整描述包含在 lfs-uefi.txt 提示中

http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.


以上配置项的原理:

支持 uevent 助手

使用 Udev/Eudev 时,设置此选项可能会干扰设备管理。

维护一个 devtmpfs

这将创建由内核填充的自动化设备节点,即使没有运行 Udev。 然后 Udev 在此之上运行,管理权限并添加符号链接。 Udev/Eudev 的所有用户都需要此配置项。


制作menuconfig

制作menuconfig

可选的make环境变量的含义:

朗= LC_ALL=

这会将区域设置设置为主机上使用的区域设置。 这可能需要在 UTF-8 linux 文本控制台上正确的 menuconfig ncurses 界面线图。

如果使用,请务必更换 根据价值 $朗 来自您的主机的变量。 您也可以改为使用主机的值 $LC_ALL or $LC_CTYPE.

或者, 制作旧配置 在某些情况下可能更合适。 见 读我 文件以获取更多信息。

如果需要,通过复制内核配置文件跳过内核配置, 的.config, 从主机系统(假设它可用)到解压的 linux-5.2.8 目录。 但是,我们不推荐此选项。 浏览所有配置菜单并从头开始创建内核配置通常会更好。

编译内核镜像和模块:


使

使

如果使用内核模块,模块配置在 /etc/modprobe.d 可能需要。 有关模块和内核配置的信息位于第 7.3 节“设备和模块处理概述”以及内核文档中 linux-5.2.8/文档 目录。 还, 调制探头.d(5) 可能很有趣。

安装模块,如果内核配置使用它们:


制作modules_install

制作modules_install

内核编译完成后,还需要额外的步骤来完成安装。 有些文件需要复制到 /启动 目录。


注意:

如果主机系统有一个单独的 /boot 分区,下面复制的文件应该放在那里。 最简单的方法是在继续之前将主机上的 /boot(在 chroot 之外)绑定到 /mnt/lfs/boot。 作为 root 用户在 主机系统:

注意:

如果主机系统有一个单独的 /boot 分区,下面复制的文件应该放在那里。 最简单的方法是在继续之前将主机上的 /boot(在 chroot 之外)绑定到 /mnt/lfs/boot。 作为 root 用户在 主机系统:

图片

挂载 --bind /boot /mnt/lfs/boot

挂载 --bind /boot /mnt/lfs/boot

内核映像的路径可能因所使用的平台而异。 下面的文件名可以更改以适合您的口味,但文件名的词干应该是 虚拟机 与下一节中描述的引导过程的自动设置兼容。 以下命令假定为 x86 架构:


cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0

cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0

System.map 是内核的符号文件。 它映射内核 API 中每个函数的函数入口点,以及运行内核的内核数据结构的地址。 它在调查内核问题时用作资源。 发出以下命令以安装映射文件:


cp -iv System.map /boot/System.map-5.2.8

cp -iv System.map /boot/System.map-5.2.8

内核配置文件 的.config 制作的 制作menuconfig 上面的步骤包含刚刚编译的内核的所有配置选择。 保留此文件以供将来参考是个好主意:


cp -iv .config /boot/config-5.2.8

cp -iv .config /boot/config-5.2.8

安装 Linux 内核的文档:


安装 -d /usr/share/doc/linux-5.2.8

cp -r 文档/* /usr/share/doc/linux-5.2.8

安装 -d /usr/share/doc/linux-5.2.8

cp -r 文档/* /usr/share/doc/linux-5.2.8

图片

图片

需要注意的是,内核源目录中的文件不属于 . 每当一个包以用户身份被解包时 (就像我们在 chroot 中所做的那样),这些文件具有它们在打包者计算机上的任何用户和组 ID。 对于要安装的任何其他软件包,这通常不是问题,因为安装后会删除源树。 但是,Linux 源代码树往往会保留很长时间。 因此,打包者使用的任何用户 ID 都有可能被分配给机器上的某个人。 然后,该人将拥有对内核源代码的写访问权限。


备注

在许多情况下,需要更新内核配置以用于稍后将在 BLFS 中安装的软件包。 与其他软件包不同的是,在安装新构建的内核后,无需删除内核源代码树。

如果要保留内核源代码树,请运行 chown -R 0:0 linux-5.2.8 目录以确保所有文件都归用户所有 .

备注

在许多情况下,需要更新内核配置以用于稍后将在 BLFS 中安装的软件包。 与其他软件包不同的是,在安装新构建的内核后,无需删除内核源代码树。

如果要保留内核源代码树,请运行 chown -R 0:0 linux-5.2.8 目录以确保所有文件都归用户所有 .


警告

一些内核文档建议从 /usr/src/linux 指向内核源目录。 这是特定于 2.6 系列之前的内核和 不得 在 LFS 系统上创建,因为它可能会导致基础 LFS 系统完成后您可能希望构建的包出现问题。

警告

一些内核文档建议从 /usr/src/linux 指向内核源目录。 这是特定于 2.6 系列之前的内核和 不得 在 LFS 系统上创建,因为它可能会导致基础 LFS 系统完成后您可能希望构建的包出现问题。


警告

系统中的标题 包括 目录(/ usr / include) 应该 时刻 是编译 Glibc 所针对的头文件,即第 6.7 节“Linux-5.2.8 API 头文件”中安装的清理头文件。 因此,他们应该 决不要 被原始内核头文件或任何其他内核清理的头文件替换。

警告

系统中的标题 包括 目录(/ usr / include) 应该 时刻 是编译 Glibc 所针对的头文件,即第 6.7 节“Linux-5.2.8 API 头文件”中安装的清理头文件。 因此,他们应该 决不要 被原始内核头文件或任何其他内核清理的头文件替换。


图片

OnWorks 的顶级操作系统云计算: