Linux-2.6.xx-kernel中Readme告诉你如何编译Linux Kernel

ON WHAT HARDWARE DOES IT RUN?

Linux was first developed for 386/486-based PCs. These days it also
runs on ARMs, DEC Alphas, SUN Sparcs, M68000 machines (like Atari and
Amiga), MIPS and PowerPC, and others.


INSTALLING the kernel:

-首先你要从www.kernel.org下载2.6内核,将下载的内核tarball包放到一个有权限的文件夹里,然后解包它:

        gzip -cd linux-2.6.XX.tar.gz | tar xvf -
或     tar -xzvf linux-2.6.XX.tar.gz
  
用你所下载内核的版本号替代里边的"XX"

不要动到/usr/src/linux里的文件!这里边的都是一些经常被内核库头文件使用的文件。

- 你也可以通过给旧的2.6.xx内核打补丁的方法升级你当前的内核版本。补丁包有传统的.gzip和新的.bzip2两种格式,获取新的补丁包,放到内核(linux-2.6.xx)的当前目录下并执行以下命令:

        gzip -cd ../patch-2.6.xx.gz | patch -p1

   or
        bzip2 -dc ../patch-2.6.xx.bz2 | patch -p1

- 最后在执行以下命令,现在你已经正确安装了linux-2.6.XX-kernel:

        cd /内核代码文件夹/linux-2.6.XX-kernel
        make mrproper

BUILD directory for the kernel:
创建内核目录:
   当编译内核的时候,默认所有的输出文件都和内核代码放在一起。
使用选项“make O=output/dir”可以给输出文件定义另一个存储地址。
例如:
     kernel source code:    /usr/src/linux-2.6.N
     build directory:        /home/name/build/kernel

然后使用以下命令配置和构建内核:
   cd /usr/src/linux-2.6.N
   make O=/home/name/build/kernel menuconfig
   make O=/home/name/build/kernel
   sudo make O=/home/name/build/kernel modules_install install

注意:一旦使用了"O=output/dir",则所有make命令都要加上这个选项。


CONFIGURING the kernel:
配置内核:

    如果你想在一个新内核代码上使用你原来的配置,只要输入“make oldconfig”就可以。

- 其他的配置命令:
    "make menuconfig" 基于文字,表格的配置界面
    "make xconfig"     基于QT下的图形配置界面.
    "make gconfig"     基于Gtk下的图形配置界面.
    "make oldconfig" 载入./.config文件,使用原有的配置方案.
  

COMPILING the kernel:
编译内核:

-首先确认你已安装了编译器gcc 2.95.3或以上版本(gcc 2.91.66 (egcs-1.1.2), and gcc 2.7.2.3众所周知对于编译内核个别模块会通不过)。如果有必要也要更新你的binutils工具包.

- 输入“make”指令,开始编译内核镜像。如果你在内核的makefiles中打算安装lilo,你也可以输入"make install",前提是你要安装了lilo。

- 如果你配置某个内核部分为模块,你可以用"make modules_install"只编译这些模块

- 为了能够引导你的新内核,你需要将编译好的内核镜像(e.g. .../linux/arch/i386/boot/bzImage after compilation)复制到你系统引导内核的位置。


   通常编译好的内核镜像是/vmlinuz,/boot/vmlinuz,/bzImage或/boot/bzImage。为了使用新内核,先将你的旧内核做个备份,然后使用新版本内核覆盖旧版本内核。最后你必须更新你的LILO或GRUB的引导表,否则你将无法引导新内核。

- 最后重启,享受你的新内核吧。