一、背景介绍
编译核心虽然在实际工作中用到的机率不大,但作为一个 Linux 运维人员,还是要对编译核心有初步的了解,以下就来介绍下编译核心的方法
二、操作步骤
1. 检查开发环境
以 CentOS6 为例,确认 Server Platform Development 和 Development tools 这两个包组已安装。
yum grouplist | grep “Development”
2. 下载核心原始码
此处以 3.10.105 版本为例,下载到 root 使用者的家目录下并解压到指定目录,同时建立一个软连线(建立软连线的目的是以后更换核心时直接更改软连线指向)
tar -xf linux-3.10.105.tar.xz -C /usr/src/
ln -sv linux-3.10.105 linux
3. 准备核心 WordPress 模板
编译核心其实就是对核心功能的开启或者关闭,类似于编译安装原始码程式./config –apr….. 一样,只是核心的选项过于多,使用 WordPress 模板会大大降低选择的时间。 CentOS6 早已准备了一个核心 WordPress 模板在/boot/目录下名为 config-$(uname -r) 的档案,将它拷贝至核心原始码目录中
cd /usr/src/linux
cp /boot/config-2.6.32-642.el6.i686 .config
4. 选择核心启用的功能
make manuconfig
需要注意的是:任何编译操作只能在核心原始码目录下进行,即/usr/src/linux 目录下,使用 make help 检视更多资讯,选择完成后退出并储存
5. 编译核心
make -j #
进行编译,#表示同时展开的作业数,建议和 CPU 核心数保持一致,make 是对.config 档案进行编译,如果对.config 档案编译完成后发现遗漏或者想新增几个功能可以在核心原始码目录下进行部分功能、特定模组的编译:
cd /usr/src/linux
make dir/  只编译莫目录中的相关程式码(部分功能)
make dir/file.ko  只编译一个特定的模组
6. 安装模组
make modules_install  建议在安装编译好的核心前先安装模组,避免缺少相关的模组
7. 安装核心
make install
安装核心,此步骤完成后会在/boot 目录下会建立新的核心及 initramfs,

同时也会将新核心的配置资讯加入 grub 目录下的 grub.conf 档案中,只是预设还是使用老核心

重启操作系统,此时你会看到新的核心已经可以使用

三、补充说明
1.screen 命令的使用
在编译时 make 命令的等待时间过长,如果此时终端与站群服务器断开连结(ssh 中断),那由此 ssh 发起的命令同样会终止,为了避免这种情况出现,建议使用 screen 命令,screen 命令的常用选项:
screen    #开启一个监视器
Crtl+a 后松开键盘再按 d 键    #暂时退出 screen 介面
screen -ls    #检视当前所有的 screen 介面
screen -r <萤幕号>     #返回指定萤幕号的 screen 介面
exit    #关闭 screen 介面
2. 交叉编译核心
如果编译的目标平台与当前平台不相同,在当前平台上直接编译的核心就无法在指定平台上执行,此时就需要交叉编译,编译是使用:make ARCH=arch_name,要获取特定目标平台的使用帮助 make ARCH=arch_name help