毕业进入公司后,接触的第一个项目是做ceph内核客户端的优化,为了对ceph-client有更加深刻的了解,这里编译linux-3.18内核,操作系统为CentOS 7.2。
2. 本文分析内容安排前期准备
编译安装
3.前期准备到下载对应版本的内核
将内核源码解压到/usr/src目录下
tar xf linux-3.18.63.tar.xz -C /usr/src
因为现在一般采取图形化menuconfig的方式选取编译的模块,该模块依赖于ncurses和ncurses-devel,这里需要首先确认有没有安装这两个包,没有的话要安装
yum install ncurses ncurses-devel
清理历史编译过程中留下的编译残渣,如果是第一次编译,这一步可以省略
cd /usr/src/linux-3.18.63
make mrproper
通过界面的方式选择要编译的模块
make menuconfig
对界面中出现的每个配置选项都有三个选择,<*>将一个功能编进内核,[]不编译进内核,[M]是可以动态插入内核的代码
开始编译内核,输入
make
这个过程大概需要二十分钟到半个小时的时间,然后生成内核模块,命令为
make modules_install
这步完成之后会在/lib/modules目录下生成以版本号命名的文件模块
make install
这一步之后就在/boot/目录下生成了一个vmlinuz-3.18.63的内核文件了,至此编译完成。重启系统,就会多了新编译内核的选择。
本文讲了如何编译一个新内核,整体与编译一个源码程序差不多,就是第一步稍显麻烦。
更多Linux Kernel相关教程推荐:
Ubuntu 上安装 Linux Kernel 4.9.26 内核
Ubuntu 16.04.2 安装Linux kernel 4.10 内核并解决 VMware 问题
Ubuntu,Linux Mint,Elementary OS 和其他Ubuntu衍生版上安装Linux Kernel 4.15 RC1
Ubuntu 15.10 将使用 Linux Kernel 4.2 内核
怎样在 CentOS 7 系统上安装Linux Kernel 4.0
Ubuntu、Linuxmint 及衍生版本安装Linux Kernel 4.10.1