需要编译的场景
其实核心就是系统上面的一个档案而已, 这个文件包含了驱动主机各项硬件的侦测程序与驱动模块
- 新功能的需求:
我需要新的功能,而这个功能只有在新的核心里面才有,那么为了获得这个功能,只好来重新编译我的核心了。 例如 iptables 这个防火墙机制只有在 2.4.xx 以后的版本里面才有,而新开发的主板芯片组, 很多也需要新的核心推出之后,才能正常而且有效率的工作!
- 原本核心太过臃肿:
如果你是那种对于系统'稳定性'很要求的人,对于核心多编译了很多莫名其妙的功能而不太喜欢的时候, 那么就可以重新编译核心来取消掉该功能啰;
- 与硬件搭配的稳定性:
由于原本 Linux 核心大多是针对 Intel 的 CPU 来作开发的,所以如果你的 CPU 是 AMD 的系统时,有可能 (注意! 只是有可能,不见得一定会如此) 会让系统跑得'不太稳!'。 此外,核心也可能没有正确的驱动新的硬件,此时就得重新编译核心来让系统取得正确的模块才好。
- 其他需求 (如嵌入式系统):
就是你需要特殊的环境需求时,就得自行设计你的核心啰! ( 像是一些商业的套装软件系统,由于需要较为小而美的操作系统, 那么他们的核心就需要更简洁有力了! )
-
过程·
- 先下载核心源代码,可以从 http://www.kernel.org 或者是 distributions 的 SRPM 来着手;
- 以下以 Tarball 来处理,解开源代码到 /usr/src/kernels 目录下;
- 先进行旧资料删除的动作:'make mrproper';
- 开始挑选核心功能,可以利用『make menuconfig』、『make oldconfig』、『make gconfig』等等;
- 清除过去的中间暂存档资料:'make clean'”
- 开始核心档案与核心模块的编译:『make bzImage』、『make modules』
- 开始核心模块的安装:'make modules_install'
- 开始核心档案的安装,可以使用的方式有:'make install'或者是透过手动的方式复制核心档案到 /boot/ 当中;
- 建立initramfs档案;
- 使用 grub2-mkconfig 修改 /boot/gru
下载源文件并解压
将网上的压缩包下载并解压至 指定目录,如 /usr/src/kernels/
[root@study ~]# tar -Jxvf linux-3.10.89.tar.xz -C /usr/src/kernels/
-->会形成一个目录,打开之后有如下文件
- arch :与硬件平台有关的项目,大部分指的是 CPU 的类别,例如