Linux 网管 123 --- 第10章. 升级 Linux 及其他…

2008-02-23 07:18:32来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


如果您想要在一个新硬体系统上运作 Linux ,或者想要使用一些原本核心没有支援的特点,也许或
者您想减少核心所占的记忆体使系统记忆体运作的更好,您会发现必须建立自己所定的核心。
更新核心包含了组态所需的模组,编译核心及模组,最後安装核心映像档,随着重新开机而载入新的
核心。在``README''中这些所有的文件都来自於每个核心套件。进一步的资讯可以在
``Documentation/'' 子目录中找到。一个特别有帮助的档案是``Configure.help'' ,其中包含了有
关编译核心的选项及模组的详细资讯。

下面是一个例,显示如何建立自己的 Intel 平台 2.0.36 版核心。建立订的核心常常只是组态,
编译及安装上的问题。有时(通常因为新的硬体) 需要下载新的驱动程式,因为原本核心编译时该硬体
尚未被支援。

建立订核心的第一个步骤是下载及安装核心,不论是来自 RPM (优先选择) 或从 tarball。参考
第10章,Linux 核心的升级 一节 有关获得合适档案的详细资料。

下一步,使用 ``rpm'' 公用程式 (或 ``tar'',也可以) 安装核心来源及标头档。例如,安装
2.0.36-3 核心的 RPM 档:
rpm -Uvh kernel-source-2.0.36-3.i386.rpm kernel-headers-2.0.36-3.i386.rpm
rpm -Uvh kernel-ibcs-2.0.36-3.i386.rpm



(如果您在笔记型电脑上运作Linux,您或许想要安装 ``kernel-pcmcia-cs-2.0.36-3.i386.rpm'' 这个
档,它提供了电源管理的功能)

在安装好核心档之後,您应该可以找到新的原始档,位在 ``/usr/src/linux/'' 目录。

下一个步骤是下载任何附加的驱动程式档 (如果有的话),并且安装他们在新的核心来源。例如,要增加
对 Mylex DAC960 硬体 RAID 控制器的支援,我会从网站上下载驱动软体。不幸地,像
http://www.dandelion.com/ 网页上的驱动软体常常只有提供 tarball 而且需要 ``tar'' 公用程式去安
装它。例如:
cd /usr/src/
tar zxvpf DAC960-2.0.0-Beta4.tar.gz



可能的话,您应该阅读由您所增加驱动程式软体所提供的文件。例如 DAC960 驱动程式包括了 ``README''
档案,里面有关於哪里下载最新的驱动程式,及如何索取核心的修正档:
mv README.DAC960 DAC960.[ch] /usr/src/linux/drivers/block
patch -p0 < DAC960.patch



下面步骤是确保您的系统符号档案连结和新的核心相符。事实上,这个步骤只需要作一次,所以下面步骤只
有在您从未编译过自己的核心情形下才需要:
mail:/usr/src# cd /usr/include
mail:/usr/include# rm -rf asm linux scsi
mail:/usr/include# ln -s /usr/src/linux/include/asm-i386 asm
mail:/usr/include# ln -s /usr/src/linux/include/linux linux
mail:/usr/include# ln -s /usr/src/linux/include/scsi scsi

注意: 上述步骤在 2.2.x 或更高版本核心已不再需要。


下一个步骤是组态您的核心。这是建立订核心的最重要步骤,如果您 disable 错误的设定,可能漏
失您所需要的特性或硬体支援。然而,如果您 enable 了错误的设定,您会无谓地扩大核心而且浪费珍贵
的系统记忆体 (说是这麽说,但在以後犯错而不是之前可能比较好)

确保您的核心编译正常的最好办法是:了解您所需要使用的特性是什麽,您的系统中哪些硬体需要支援。
在您有几次订核心的经验後,这些过程会变为 “过时?而且不具威胁 !

键入下列各项开始进行组态程序:
mail:/usr/include# cd /usr/src/linux
mail:/usr/src/linux# make mrproper
mail:/usr/src/linux# make menuconfig



(如果您执行 X Window 系统可以键入 ``make xconfig'' 取代 ``make menuconfig''; 参考 第 5 章 有
关如何使 X 运作的细节.)

要组态您的核心,必须经由种种的设定及选择 (enable) 哪一些是您需要的,并且剔除 (disable)您所不
需要的。您可以选择直接经由核心支援,或是建立依需求可由核心载入或卸下的模组。(如果您编译了一个
事实上需要重新启动系统的功能,像是 SCSI 驱动程式,如果是模组,您需要建立 RAMdisk 映像档或系统
必须重新启动。这是使用 ``mkinitrd'' 这个命令去完成; 这个程序在下面会谈到)

当进行这些组态设定时, 您可以选择 获得有关核心各个选项的描述

在您完成对核心的组态设定後,键入下列命令编译您的核心:
mail:/usr/src/linux# make dep ; make clean
mail:/usr/src/linux# make bzImage
mail:/usr/src/linux# make modules



如果您重新编译和之前相同的核心 (在本例中是 2.0.36-3 ),您或许会想要用下面的指令将现有的模组移
到备份的目录下:
mail:/usr/src/linux# mv /lib/modules/2.0.36-3 /lib/modules/2.0.36-3-backup



现在,键入下列指令真正地安装新的模组:
mail:/usr/src/linux# make modules_install



下一个步骤是将核心到 ``/boot/'' 目录下,并且使用 LILO 更新 boot record ,如此一来新的核
心就会被承认。下面的指令会将现有核心作一个备份,新的核心取代它,然後更新 LILO boot record:
mail:/usr/src/linux# cd /boot
mail:/boot# cp vmlinuz vmlinuz.OLD
mail:/boot# cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.0.36
mail:/boot# /sbin/lilo



最後,您需要编辑 ``/etc/lilo.conf'' 档,并且确定 “image”是指向新的核心。您也应该加入一个项目
指向您的备份核心,也许称作“OldLinux”. 这是一个例档:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=Linux
root=/dev/hdb1

read-only
image=/boot/vmlinuz.OLD
label=OldLinux
read-only



藉由此种方法备份您的核心资讯,万一您的新核心无法正常启动(也许因为某设备不被承认,或者一个
daemon 应该启动而未启动),您可以简单地键入 ``OldLinux'' 从原来的核心启动然後检查系统。
注意: 如同前面所提到,如果您已经编译了一个需要以模组方式启动系统的核心,您需要建立一个起始
RAMdisk 映像档以便启动系统。(别忘了将您的核心编译成可支援这样的映像档)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -5.升级

下一篇:Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -7.升级