CentOS 7.2编译Linux 3.18内核

1. 前言

毕业进入公司后,接触的第一个项目是做ceph内核客户端的优化,为了对ceph-client有更加深刻的了解,这里编译linux-3.18内核,操作系统为CentOS 7.2。

2. 本文分析内容安排

  • 前期准备
  • 编译安装

3.前期准备

  1. 到http://www.kernel.org下载对应版本的内核
  2. 将内核源码解压到/usr/src目录下
    tar xf linux-3.18.63.tar.xz -C /usr/src
  3. 因为现在一般采取图形化menuconfig的方式选取编译的模块,该模块依赖于ncurses和ncurses-devel,这里需要首先确认有没有安装这两个包,没有的话要安装
    yum install ncurses ncurses-devel

4. 编译安装

  1. 清理历史编译过程中留下的编译残渣,如果是第一次编译,这一步可以省略
    cd /usr/src/linux-3.18.63
    make mrproper
  2. 通过界面的方式选择要编译的模块
    make menuconfig
    对界面中出现的每个配置选项都有三个选择,<*>将一个功能编进内核,[]不编译进内核,[M]是可以动态插入内核的代码
  3. 开始编译内核,输入
    make
    这个过程大概需要二十分钟到半个小时的时间,然后生成内核模块,命令为
    make modules_install
    这步完成之后会在/lib/modules目录下生成以版本号命名的文件模块
    make install
    这一步之后就在/boot/目录下生成了一个vmlinuz-3.18.63的内核文件了,至此编译完成。重启系统,就会多了新编译内核的选择。

5. 总结

本文讲了如何编译一个新内核,整体与编译一个源码程序差不多,就是第一步稍显麻烦。

更多Linux Kernel相关教程推荐:

Linux Kernel 的详细介绍:请点这里
Linux Kernel 的下载地址:请点这里

相关推荐