[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
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内核指南中获得。
对基于sparc的系统我们有gentoo-sources(推荐使用的2.6内核源代码)。
下面的例子里我们来安装gentoo-sources。
代码 2.1: 安装内核源码 |
# emerge gentoo-sources
|
注意:
如果你正在使用qla2xxx磁盘控制器,你需要emerge =vanilla-sources-2.6.16*(不是gentoo-sources),因为自2.6.17内核开始不再支持此控制器。
|
当你看一看/usr/src的时候应该能看到一个名为linux的符号链接指向你的内核源代码。在这个例子中,安装好的内核源代码指向linux-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
|
现在到了配置和编译内核的时候了。
7.c. 手工配置
介绍
手动配置内核经常被Linux使用者认为是最困难的步骤。事实并非如此——当您手动配置几次内核之后,您就不会再觉得它有多么难了。:)
不管怎么说,有一件事是真的:当你开始手工配置内核的时候你必需要了解你的系统。绝大多数的信息可以用emerge来的pciutils(emerge pciutils)里的lspci来收集。你现在可以在chroot后的环境里使用lspci。你可以安全的忽略任何运行lspci所产生的pcilib警告(类似pcilib: cannot open/sys/bus/pci/devices)。或者你也可以在非chrooted的环境里运行lspci。结果是一样的。你也可以运行lsmod来查看安装光盘都加载了哪些内核模块( 这也是个不错的提示,它可以教你该选择哪些模块)。
现在进入你的内核源代码目录并执行make menuconfig。这将启动基于ncurses的配置菜单。
代码 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)
<*> Ext3 journalling file system support
<*> Second extended fs support
|
如果你使用PPPoE来连接到Internet或者使用拨号的调制解调器,你需要在内核中启用以下选项:
代码 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: 打开SBUS/UPA |
Console drivers --->
Frame-buffer support --->
[*] SBUS and UPA framebuffers
[*] Creator/Creator3D support
[*] CGsix (GX,TurboGX) support
|
理所当然你想OBP的支持
代码 3.5: 打开OBP支持 |
Misc Linux/SPARC drivers --->
[*] /dev/openprom device support
|
你还需要特定的SCSI支持
代码 3.6: 打开特定的SCSI支持 |
SCSI support --->
SCSI low-level drivers --->
<*> Sparc ESP Scsi Driver
<*> PTI Qlogic, ISP Driver
<*> SYM53C8XX Version 2 SCSI support
|
为了支持你的网卡,选择下面的一个:
代码 3.7: 打开网络支持 |
Network device support --->
Ethernet (10 or 100Mbit) --->
<*> Sun LANCE support
<*> Sun Happy Meal 10/100baseT support
<*> DECchip Tulip (dc21x4x) PCI support
Ethernet (1000Mbit) --->
<*> Broadcom Tigon3 support
|
当你有一台4口以太网接口的机器(10/100或是10/100/1000)的端口顺序和使用Solaris的时候不一样。你可以用sys-apps/ethtool来检查端口连接状态。
当你配置完内核以后,继续编译和安装。无论如何,编译完内核以后,请检查它的大小:
代码 3.8: 检查内核大小 |
# ls -lh vmlinux
-rw-r--r-- 1 root root 2.4M Oct 25 14:38 vmlinux
|
如果(未压缩)大小超过7.5MB,重新配置你的内核直到没有超过这些限制。把大多数的内核驱动都编译成模块是达到目的的一个办法。忽略这个将导致内核无法引导。
同样的,如果你的内核刚好有一点点大,你可以试试用strip命令来剥离:
代码 3.9: 剥离内核 |
# strip -R .comment -R .note vmlinux
|
编译和安装
选择你的内核已经配置好了,是时候编译和安装它了。退出配置然后开始编译:
代码 3.10: 编译内核 |
# make CROSS_COMPILE=sparc64-unknown-linux-gnu- && # make image modules_install
|
当内核编译完成后,拷贝内核镜像到/boot。记得替换<kernel-version>为你内核的实际版本。
代码 3.11: 安装内核 |
# cp arch/sparc64/boot/image /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
|
继续配置你的系统。
[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
本文档的内容遵循知识共享-署名-相同方式共享许可协议
|