Next Previous Contents

4. 编译核心

4.1 清除与确认

当用来进行配置的指令稿执行完成时,它会告诉你去 `make dep' 以及 `clean'. 所以要执行`make dep'.这将确保所有的相依关系,例如 include files 都没问题. 除非你的电脑真的很慢,否则它不会花太久时间的. 完成後,在较旧版本的核心中你还应该做 `make clean'. 这会清除核心编译的所有目的档以及其它东西.在重建一个核心之前不要忘记这个步骤.

4.2 编译时期

在完成 `make dep' 及 `make clean' 工作之後,你现在可以执行 `make zImage' 或 `make zdisk' (这部份需要长时间). `make zImage' 将会编译核心,并且在 arch/i386/boot 留给你一个叫做 `zImage' 的档案.这就是新的压缩核心. `make zdisk' 做的事也一样,但是它会把核心放到你所希望的磁片去,只要把这张磁片放在 ``A:''. `zdisk'对於测试新核心很方便;如果它当掉(或工作不正常),只要把磁片拿掉再用旧的核心启动即可. 如果你意外地删除了核心或是什麽的,它也是个方便的启动办法. 当你把一台磁碟的内容倾倒到另外一台去时,你也可以用它来安装新的系统(除了这些之外还有更多用途!)

所有近来的核心都是压缩过的,所以有个 `z' 在名字前面.压缩过的核心执行的时候会自动将自己解压缩.

4.3 其他可以``make''的东西

`make mrproper' 将会做更广泛的 `清除' 工作. 这个动作有时候是必须的,所以你可能会希望在每次修补的时候执行它. `make mrproper' 还会将你的配置档案杀掉,所以如果你认为它重要的话应该先做一备份(在 .config).

`make oldconfig' 会尝试由一旧的配置档案来配置你的核心.它会为你执行 `make config'. 如果你还未曾编译过核心或没有旧的配置档案,那麽你可能不该做这个,因为你几乎确定会更改预设的配置.

参见可载入模组一节对 `make modules' 的说明.

4.4 安装核心

在你已经获得一个看起来能够照你希望运作的新核心之後,现在是安装它的时候了. 大部份的人使用 LILO (Linux Loader) 来做这件事. `make zlilo' 将会安装核心,然後对它执行 LILO,使你完成所有开机的准备, 但是这只有在 LILO 已经以下列这种方式配置好的时候才可以:核心为 /vmlinuz , lilo 在 /sbin 下,而且与你的 LILO 配置(/etc/lilo.conf)一致.

另一方面,你可能需要直接使用 LILO.这是一个相当容易安装的软体,然而,它的配置档常使人困扰. 查看配置档(不是旧版的 /etc/lilo/config 就是新版的 /etc/lilo.conf),看看里面有些什麽. 它看起来像这样子的东西:

    image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...

首先,`image =' 设定为已经安装的核心.大部份的人似乎都用 /vmlinuz. `label' 则是给 lilo 用来决定现在要启动的是那个核心或作业系统, 而 `root' 则是这个特别的作业系统的根目录 /. 备份一份旧的核心,然後将你做的 zImage 拷贝进去(例如,如果你用 `/vmlinuz' 的话,就像这样 `cp zImage /vmlinuz'). 然後,执行 `lilo',但是在较旧的系统上,你可能必须执行 /etc/lilo/install 或甚至是 /etc/lilo/lilo -C /etc/lilo/config

如果你想知道更多有关於 LILO 的配置,或是你并没有 LILO 但是你想要安装的话, 从你喜欢的 ftp 节点取得最新的版本然後依说明行事.

要能够从硬碟启动你的旧核心其中之一的话(这是另一个在新核心出状况的情况下保护你自己的方法), 把 LILO 配置档中所有的(包括) `image = xxx' 拷贝到档案的最底端, 然後把 `image = xxx' 改成 `image = yyy' 其中的 `yyy' 是你备份旧核心所存档的名字. 接著,把 `label = zzz' 改成像是 `label = linux-backup' 然後重新执行 lilo. 你可能得要加上一行 `delay=x',其中的 x 是以十分之一秒为单位的时间, 这是告诉 LILO 在启动前先等一下,所以你可以中断它的执行(例如用 shift 键). 然後键入所备份的启动映像之 label (在发生了某些令人不愉快的事情的情况下).


Next Previous Contents