Gentoo Logo

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


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


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.19-r7。你的版本可能会不同,所以请记住这点。

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

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

现在,我们开始配置和编译您的内核。您可以用“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将根本不能运行或者在未经调试的情况下不能正常运行)。

启用必须的选项

首先,开启development and experimental code/drivers。您必须激活它,否则,您将无法看到一些非常重要的代码/驱动:

代码 3.2: 选择experimental code/drivers

General setup --->
  [*] Prompt for development and/or incomplete code/drivers

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

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

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.4: 选中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时才会用到它。

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

禁掉ADB raw keycodes:

代码 3.5: 禁掉ADB raw keycodes

Macintosh Device Drivers --->
  [ ] Support for ADB raw keycodes

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

编译和安装

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

代码 3.6: 编译内核

# make && make modules_install

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

代码 3.7: 安装内核

# 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

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


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2008年 1月 12日

本翻译已经不再被维护

总结: Linux内核是任何一个发行版本的核心。这一章节将说明如何配置内核。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Xavier Neys
编辑

Joshua Saddler
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

Tobias Scherbaum
编辑

杨珂
译者

沈辰俊
译者

叶宝泰
译者

张乐
译者

余雷
译者

王国辉
译者

娄东斌
译者

贾震
译者

杨小广
译者

余鈺炜
译者

陈代焱
译者

范华
译者

陈永骥
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.