centos7编译linux-3.18内核

来源:互联网 发布:org.w3c.dom.node jar 编辑:程序博客网 时间:2024/05/17 08:07

1. 前言

毕业进入公司后,接触的第一个项目是做ceph内核客户端的优化,为了对ceph-client有更加深刻的了解,这里编译linux-3.18内核,操作系统为centos7.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. 总结

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

6. 作者介绍

梁明远,国防科大并行与分布式计算国家重点实验室研究生,读研期间重点研究docker容器技术。17年毕业后回老家进入浪潮,主攻ceph分布式文件系统的优化。邮箱:liangmingyuanneo@gmail.com

7. 参考文献

原创粉丝点击