声明: 本手册已经被新版本代替了,不再被维护。

7. 配置内核

内容:

7.a. 时区

您首先需要选择您自己的时区,这样可以让系统知道它的位置在哪里。您可以在/usr/share/zoneinfo中找到您所在的时区,然后把它复制到/etc/localtime。请不要使用/usr/share/zoneinfo/Etc/GMT*下的时区,因为它们“名不副实”。例如,GMT-8事实上是GMT+8区。

代码 1.1: 设置时区信息

# ls /usr/share/zoneinfo
(假设您要用GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime

7.b. 安装源码

选择内核

Linux内核是所有发行版的核心。它位于用户程序和系统硬件之间。Gentoo提供给我们几个可选的内核源码。完整的清单参见Gentoo内核指南

对于PPC64你应该使用gentoo-sources

代码 2.1: 安装内核源码

# emerge gentoo-sources

当您查看/usr/src时,您将会看到一个叫做linux的符号链接指向您安装的内核源码。在我们这个例子中,安装的源码指向gentoo-sources-2.6.24-r5。你的版本可能会不同,所以请记住这点。

代码 2.2: 查看内核源码符号链接

# ls -l /usr/src/linux
lrwxrwxrwx    1 root    root       12 Aug 10 11:04 /usr/src/linux -> linux-2.6.24-r5

现在,我们开始配置和编译您的内核。您可以用“genkernel”来做这件事。这将会建立一个和安装光盘所用的内核类似的通用内核。不过目前PPC64并不能完全工作正常。

现在请继续阅读手动配置你的系统

7.c. 手动配置

介绍

手动配置内核经常被Linux使用者认为是最困难的步骤。事实并非如此——当您手动配置几次内核之后,您就不会再觉得它有多么难了:)

然而,一件事情真的:在手动配置内核之前,您必须了解您的系统。您可以安装pciutils(emerge pciutils),用其中的lspci来了解您需要的大部分信息。您现在可以在chroot的环境中运行lspci。您可以忽略任何pcilib的警告。(类似于pcilib: cannot open/sys/bus/pci/devices)。此外,您也可以在非chroot的环境执行lspci。结果相同。您还可以运行lsmod来查看安装光盘使用了哪些内核模块。(这也是个不错的提示,它可以教你该选择哪些模块)。

代码 3.1: 调用menuconfig

# cd /usr/src/linux
重要事项:如果你使用32位userland,你必须修改在/usr/src/linux中的顶层Makefile文件
然后改变CROSS_COMPILE选项为CROSS_COMPILE ?= powerpc64-unknown-linux-gnu-。
你必须在运行make menuconfig之前做这个,否则可能导致内核编译时出问题。
# make menuconfig

您将会看到一些配置条目。首先我们将会列出一些您必须启用的选项(否则Gentoo将根本不能运行或者在未经调试的情况下不能正常运行)。

启用必须的选项

首先进入File Systems,选中你使用的文件系统的支持。不要将它们编译成模块,否则Gentoo将无法正常地挂载你的分区。另外选中/proc file systemVirtual memory以及/dev/pts file system for Unix98 PTYs

代码 3.2: 选中必需的文件系统

File systems --->
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [*] /dev/pts file system for Unix98 PTYs

(选中下面你的系统所需的一个或多个选项)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

注意: 你会发现在Pseduo filesystems中提及的选项只不过是File systems中一部分。

如果您在使用PPPoE接入Internet或者您在使用拨号的调制解调器,您需要下面内核中的选项(你会发现在Networking support中提到的选项只是Device Drivers中的一部分:

代码 3.3: 选中PPPoE需要的驱动

Network device support --->
  <*> PPP (point-to-point protocol) support
  <*>   PPP support for async serial ports
  <*>   PPP support for sync tty ports

两个压缩选项不会造成什么错误,不过它们不是必需的。PPP over Ethernet选项也不是必需的,只在使用ppp并被配置成是使用核心模式PPPoE时才会用到它。

如果您需要它,请不要忘记在内核中包含对您的网卡的支持。

当你配置好你的内核后,请继续阅读编译和安装

编译和安装

现在你的内核已配置好,是时候来编译和安装它了。退出配置菜单,然后运行编译内核的命令:

代码 3.4: 编译内核

# make && make modules_install

当你的内核编译完成之后,复制内核镜像至/boot目录。记住用你实际的内核版本替换<kernel-version>

代码 3.5: 安装内核

# cp vmlinux /boot/<kernel-version>

现在请继续阅读配置内核模块

7.d. 配置模块

你应该将你想在启动时加载的模块列在/etc/modules.autoload.d/kernel-2.6中。如果你需要你也能为你的模块加上额外的选项。

要查看所有可用的模块,运行如下的find命令。不要忘记把“<kernel version>”替换成你刚编译好的内核版本:

代码 4.1: 查看所有可用的模块

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

比如,要自动加载3c59x.ko模块,编辑文件kernel-2.6并在其中输入模块名。

代码 4.2: 编辑/etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

代码 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x.ko

请阅读配置你的系统来继续安装。