内核升级方法

工作需要,编译DPDK时需要依赖内核源文件,安装的CENTOS release版本默认没有相关文件,所以就需要升级下内核。

升级内核主要有以下两种方式:

  1. 使用yum快速升级,但是升级的版本受限于yum源上存放的kernel版本,目前官网主要提供kernel-ml(mainline)和kernel-lt(longtime)两种。2. 从 http://www.kernel.org 首页去下载特定版本,手动升级。

本文中需要特定版本的内核,所以选择方式2,下面我们看看都需要怎么操作:

确定当前的内核版本

这一步也没什么必要,但是可以知道究竟后面升级后的版本是否已经替换了当前版本。

$ uname -r
3.10.0-327.10.1.el7.x86_64

安装依赖软件

编译安装新内核,依赖于一些基础的开发环境和开发库:

yum grouplist //查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库;
yum groupinstall "Development Tools" //一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具
yum install ncurses-devel //你必须这样才能让 make *config 这个指令正确地执行
yum install qt-devel //如果你没有 X 环境,这一条可以不用

编译内核

从首页上去下载版本,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,本次升级我选择 3.10.101。

[root]wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.101.tar.xz
[root]tar -xf linux-3.10.101.tar.xz -C /usr/src/
[root]cd /usr/src/linux-3.10.58/
[root]cp /boot/config-3.10.0-123.el7.x86_64 .config //使用之前版本生效的配置,这样就不用再重新全部配置一遍
[root]sh -c 'yes "" | make oldconfig'//make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件

开始编译及安装

[root]make -j24 // make其实就相当于make bzImage和make modules的结合, j24表示用24个线程来编译,一般取设备的核数,可通过cat /proc/cpuinfo确认
[root]make -j24 modules_install //安装模块
[root] make install //真正的安装新内核

修改grub引导

centos7 默认使用grub2,所以这里可以借助grub2提供的工具来自动生成配置文件。

grub2-mkconfig -o /boot/grub2/grub.cfg

这样的话menu就自动生成了。如果想要修改默认的启动顺序,可以运行grub-set-default和grub-reboot命令来配置默认启动项。

好了,如果一切顺利的话,执行reboot就会看到grub menu中有新添加的内核,选择后启动(或者默认按顺序选择启动后)就可以看到已使用新内核了:

[root]# uname -r
3.10.101

欢迎大家实际操作,并提出问题讨论。

你可能感兴趣的:(内核升级方法)