1. 准备编译环境

  1. yum groupinstall "Development Tools"

 

2. 下载内核文件

选择目标内核版本并下载: https://mirrors.edge.kernel.org/pub/linux/kernel/

(进入kernels常用存放目录)

  1. [root@linetwork ~]# cd /usr/src/kernels/ 

(以3.10.20为例,下载源文件)

  1. [root@linetwork kernels]# wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.20.tar.gz

(解压文件)

  1. [root@linetwork kernels]# tar zxvf linux-3.10.20.tar.gz

(得到解压后文件夹linux-3.10.20)

  1. [root@linetwork kernels]# ls
  2. linux-3.10.20 linux-3.10.20.tar.gz

 

3. 编译内核

目的: 将内核源码文件(如*.c)编译成可执行文件(如*.o)

(进入Kernel源码文件夹linux-3.10.20)

  1. [root@linetwork kernels]# cd linux-3.10.20/

(可选步骤A: 可直接通过menuconfig 增减内核模块或组件,选择后可查看.config参数文件的更新情况)

  1. [root@linetwork linux-3.10.20]# make menuconfig
  2. [root@linetwork linux-3.10.20]# cat .config

(可选步骤B: 也可通过现有内核参数去生成新的配置参数文件.config)

  1. [root@linetwork linux-3.10.20]# cp /boot/config-3.10.0-957.el7.x86_64 ./.config
  2. [root@linetwork linux-3.10.20]# make oldconfig
  3. [root@linetwork linux-3.10.20]# cat .config

(编译内核)

  1. [root@linetwork linux-3.10.20]# make -j16 all

all: 编译所有选择模块

-j16: 将使用16核CPU资源去编译内核

 

4. 安装Kernel Module

(将新内核中的可执行module,集中放于/lib/modules/ 下的新内核文件夹中)

  1. [root@linetwork linux-3.10.20]# make module_install
  2. [root@linetwork ~]# ls /lib/modules/ 3.10.0-1127.10.1.el7.x86_64 3.10.0-1127.el7.x86_64 3.10.20

 

5. 安装Kernel

(将Kernel注册到系统引导程序)

  1. [root@linetwork linux-3.10.20]# make install
  2. [root@linetwork linux-3.10.20]# ls /boot/

 

6. 设置开机默认从新kernel启动

  1. sudo awk -F\\' \'$1=="menuentry " {print i++ " : " $2}\' /etc/grub2.cfg
  1. sudo grub2-set-default 0
  1. sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  1.  

7. 删除旧的kernel

  1. yum install yum-utils
  1. package-cleanup --oldkernels

 

版权声明:本文为linetwork原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/linetwork/p/13153038.html