Handbook:Parts/Installation/Kernel/zh-cn

安装源码
Linux内核是所有发行版的核心. 它位于用户程序和系统硬件之间. Gentoo提供给用户一些可选的内核源码. 完整的带描述的列表在内核概述页面.

针对基于-系统的Gentoo，建议使用包.

选择一个合适的内核并使用来安装它.

这将在中安装Linux内核源码，并有一个符号连接叫作将指向安装的内核源码：

现在是时候来配置和编译内核源代码了. 有两种方法：


 * 1) 手动配置并生成内核.
 * 2) 一个叫作的工具用来自动化生成并安装Linux内核.

我们在这里解释做为默认选择的手动配置，它是优化环境的最好方式.

介绍
手动配置内核经常被Linux用户认为是最困难的步骤. 事实并非如此——但是当您手动配置几次内核之后，你就不会再觉得它有多么难了：）

无论如何，有一件事是真实的：当手动配置内核时，了解（硬件）系统是至关重要的. 大多数信息可以通过安装包含命令的来收集：

另一个系统信息来源是运行来查看安装CD使用什么内核模块，它可能对启用什么提供了一个好的暗示.

现在进入内核源码目录并执行. 这将启动一个菜单驱动的配置屏幕.

Linux内核配置有很多很多的章节. 我们先列出一些必须激活的选项（否则Gentoo将无法工作，或者离开附加的调整将无法正常工作）. 我们同时在Gentoo维基上有一个Gentoo内核配置指南可能会在将来有帮助.

激活必要的选项
Make sure that every driver that is vital to the booting of the system (such as SCSI controller, etc.) is compiled in the kernel and not as a module, otherwise the system will not be able to boot completely.

接下来选择最控制的CPU类型. 同时建议启用MCE功能（如果可用）能在硬件出现问题时通知用户. 在一些架构（比如x86_64），这些错误不会打印到 ，但是会到. 这需要包.

Also select Maintain a devtmpfs file system to mount at /dev so that critical device files are already available early in the boot process ( CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT ):

Verify SCSI disk support has been activated ( CONFIG_BLK_DEV_SD ):

Now go to File Systems and select support for the filesystems you use. Don't compile the file system that is used for the root filesystem as module, otherwise the Gentoo system will not be able to mount the partition. Also select Virtual memory and /proc file system. Select one or more of the following options as needed by the system ( CONFIG_EXT2_FS, CONFIG_EXT3_FS , CONFIG_EXT4_FS , CONFIG_MSDOS_FS , CONFIG_VFAT_FS , CONFIG_PROC_FS , and CONFIG_TMPFS ):

If PPPoE is used to connect to the Internet, or a dial-up modem, then enable the following options ( CONFIG_PPP, CONFIG_PPP_ASYNC , and CONFIG_PPP_SYNC_TTY ):

这两个压缩选项将是无害的，但是它们一定是不需要的，包括基于以太网的PPP选项也是一样，只有在配置内核模式PPPoE时才会需要.

不要忘记在内核中包括网（以太网或无线）卡.

Most systems also have multiple cores at their disposal, so it is important to activate Symmetric multi-processing support ( CONFIG_SMP ):

If USB input devices (like keyboard or mouse) or other USB devices will be used, do not forget to enable those as well ( CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT , CONFIG_USB_XHCI_HCD , CONFIG_USB_EHCI_HCD , CONFIG_USB_OHCI_HCD ):

可选：生成一个initramfs
在某些情况中需要建立一个initramfs——一个基于内存的初始化文件系统. 最觉的原因是当重要的文件系统位置（如或）在分离的分区. 通过一个initramfs，这些分区可以使用initramfs里面的工具来完成挂载.

如果没有initramfs的，存在着巨大的风险，系统将无法正常开机，因为这是负责安装的文件系统工具需要驻留在这些文件系统的信息. initramfs中的一个将在必要的文件拉进它的内核启动之后使用的档案，但控制被移交前转移到初始化工具. 在initramfs的脚本，然后将确保分区正确地安装在系统继续启动之前.

要安装一个initramfs，首先安装，然后用它生成一个initramfs：

In order to enable specific support in the initramfs, such as LVM or RAID, add in the appropriate options to. See for more information. In the next example support is enabled for LVM and software RAID :

initramfs将存储在. 结果文件可以简单的通过列出以initramfs开头的文件来找到：

现在继续到内核模块.

备选：使用genkernel
如果手动配置看起来太恐怖，建议使用. 它将自动配置并编译内核.

配置内核的工作原理几乎和安装CD配置的内核完全一致. 也就是说当使用建立内核，系统通常将在引导时检测全部硬件，就像安装CD所做的. 因为不需要任何手动内核配置，它对于那些不能轻松的编译他们自动内核的用户来说是一个理想的解决方案.

现在，我们来看看如何使用genkernel. 首先emerge 这个ebuild：

接下来，编辑文件来使包含有第二个值为的那条的第一个值指向到正确的设备. 如果是按照本手册的分区示例，则这个设备非常像使用ext2文件系统的. 这将使文件中的这一条目看起来像是：

现在，运行来编译内核源码. 值得注意的是，使用编译一个内核将支持几乎全部的硬件，这将使编译过程需要一阵子来完成！

一旦genkernel完成，将创建一个内核、全部的模块和初始化内存文件（initramfs）. 我们将在文档后面配置引导器的时候使用这个内核和initrd. 记下内核和initrd名字作为编辑引导器配置文件的信息. initrd将在后执行硬件检测之后、“真实”系统启动之前立即启动.

配置模块
在中列出需要自动加载的模块. 如果有必要，附加选项也可以添加到模块中.

要查看所有可用模块，运行下面的命令. 不要忘记替换“ ”为刚刚编译的内核版本：

比如，要自动加载模块（3Com网卡家族的特定驱动），编辑文件并在里面输入模块名字.

继续到配置系统来安装.

可选：安装固件
一些驱动需要先在系统上安装附加的固件才能工作. 这经常用于网络接口，特别是无线网络接口. 非常多的固件都打包在里：