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的引导表,否则你将无法引导新内核。
- 最后重启,享受你的新内核吧。