[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
7. 配置内核
内容:
7.a. 时区
您首先需要选择您自己的时区,这样可以让系统知道它的位置在哪里。您可以在/usr/share/zoneinfo中找到您所在的时区,然后把它复制到/etc/localtime。请不要使用/usr/share/zoneinfo/Etc/GMT*下的时区,因为它们“名不副实”。例如,GMT-8事实上是GMT+8区。
代码 1.1: 设置时区信息 |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. 安装源码
选择内核
Linux内核是所有发行版的核心。它位于用户程序和系统硬件之间。Gentoo提供给我们几个可选的内核源码。完整的清单参见Gentoo内核指南。
对于alpha架构的系统,可以使用gentoo-sources(默认的2.6内核源码)。
代码 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 Oct 13 11:04 /usr/src/linux -> linux-2.6.24-r5
|
现在,我们开始配置和编译您的内核。您可以用genkernel来做这件事。这将会建立一个和安装光盘所用的内核相同的内核。我们将首先说明如何手动配置一个内核,因为这是优化您系统环境的最佳方法。
如果您希望手动配置您的内核,点击默认:手动配置。如果您希望使用genkernel,您可以阅读备选:使用genkernel。
7.c. 默认:手动配置
介绍
手动配置内核经常被Linux使用者认为是最困难的步骤。事实并非如此——但是当您手动配置几次内核之后,您就不会再觉得它有多么难了。:)
然而,一件事情是真的:在手动配置内核之前,您必须了解您的系统。您可以安装pciutils(emerge pciutils),用其中的lspci来了解您需要的大部分信息。您现在可以在chroot的环境中运行lspci。您可以忽略任何pcilib的警告。(类似于pcilib: cannot open/sys/bus/pci/devices)。此外,您也可以在非chroot的环境执行lspci。结果相同。您还可以运行lsmod来查看安装光盘使用了哪些内核模块。(这也是个不错的提示,它可以教你该选择哪些模块)。
现在进入到您的内核目录并且执行make menuconfig。这将会启动一个基于ncureses的配置菜单。
代码 3.1: 开始menuconfig |
# cd /usr/src/linux
# make menuconfig
|
您将会看到一些配置条目。首先我们将会列出一些您必须启用的选项(否则Gentoo将不能正常运行或者根本不能运行)。
必须启用的选项
首先进入File Systems并选择您使用的文件系统。请不要把它们编译成模块,否则您的Gentoo系统将不能挂载您的分区。同时您也要启用Virtual memory和/proc file system的支持。
代码 3.2: 选择需要的文件系统 |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
如果您在使用PPPoE接入Interne或者您在使用拨号的调制解调器,您需要下面的选项:
代码 3.3: 选择PPPoE驱动 |
Device Drivers --->
Networking 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: 推荐的Alpha选项 |
General setup --->
<*> SRM environment through procfs
<*> Configure uac policy via sysctl
Plug and Play configuration --->
<*> Plug and Play support
<M> ISA Plug and Play support
SCSI support --->
SCSI low-level drivers --->
<*> SYM53C8XX Version 2 SCSI support (NEW)
<*> Qlogic ISP SCSI support
Network device support --->
Ethernet (10 or 100 Mbit) --->
<M> DECchip Tulip (dc21x4x) PCI support
<M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
<M> EtherExpressPro/100 support (eepro100)
<M> EtherExpressPro/100 support (e100)
Ethernet (1000 Mbit) --->
<M> Alteon AceNIC
[*] Omit support for old Tigon I
<M> Broadcom Tigon3
[*] FDDI driver support
<M> Digital DEFEA and DEFPA
<*> PPP support
<*> PPP Deflate compression
Character devices --->
[*] Support for console on serial port
[*] Direct Rendering Manager
File systems --->
<*> Kernel automounter version 4 support
Network File Systems --->
<*> NFS
[*] NFSv3 client
<*> NFS server
[*] NFSv3 server
Partition Types --->
[*] Advanced partition selection
[*] Alpha OSF partition support
Native Language Support
<*> NLS ISO 8859-1
Sound --->
<M> Sound card support
<M> OSS sound modules
[*] Verbose initialisation
[*] Persistent DMA buffers
<M> 100% Sound Blaster compatibles
|
当您完成了内核配置,点击编译与安装。
编译与安装
既然现在您的内核已经配置成功了,那么就是时候编译并且安装它了。退出配置界面并且开启编译进程:
代码 3.5: 编译内核 |
# make && make modules_install
# make boot
|
当内核编译完成,复制内核镜像到/boot。较新版本的内核会创建vmlinux而不是vmlinux.gz。您复制内核镜像的时候要记清楚了。
代码 3.6: 安装内核 |
# cp arch/alpha/boot/vmlinux.gz /boot/
|
现在请从内核模块一节继续安装。
7.d. 备选:使用genkernel
如果您在阅读这部分,那么您选择了使用genkernel脚本来配置您自己的内核。
现在您的内核源码树已经安装了,是时候用genkernel脚本自动编译您的内核了。genkernel是使用类似安装光盘中的内核配置来配置内核的。这表明当您用genkernel建立内核时,您的系统在启动时候将会如同安装光盘那样识别您所有的硬件。因为genkernel不需要手动配置内核,所以它对于那些不想自己编译特定内核的用户来说是一个理想的解决方案。
现在让我们来看看如何使用genkernel吧。首先,安装genkernel:
代码 4.1: 安装genkernel |
# emerge genkernel
|
现在执行genkernel all编译您的内核源码。请注意,genkernel编译出的内核支持几乎所有硬件,编译需要一段很长的时间。
另外需要注意的是,如果您的启动分区没有使用ext2或者ext3文件系统,您必须使用genkernel --menuconfig all来手动配置您的内核,把您所使用的文件系统编译进内核(不能编译为模块!)。
代码 4.2: 运行genkernel |
# genkernel all
|
一旦genkernel运行完成,一个包括全部模块和initrd的内核将被建立。在后面配置引导程序时我们将会用到这个内核和initrd。请记下内核和initrd的名字,因为您将在配置引导程序的时候用到他们。initrd将会在启动真正的系统前自动识别硬件(如同安装光盘一样)。
代码 4.3: 查看内核和initrd的名字 |
# ls /boot/kernel* /boot/initramfs-*
|
7.e. 内核模块
配置模块
您应该在/etc/modules.autoload.d/kernel-2.6中列出您需要自动加载的模块。如果您愿意,您也可以加上模块的选项。
要查看所有可用的模块,运行如下的find命令。不要忘记把“<kernel version>”替换成你刚编译好的内核版本:
代码 5.1: 查看所有可用的模块 |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
例如,要自动加载3c59x.ko模块,编辑kernel-2.6文件然后写入模块的名字。
代码 5.2: 编辑/etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
代码 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
现在请从配置您的系统一章来继续您的安装。
[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
本文档的内容遵循知识共享-署名-相同方式共享许可协议
|