centos7源码升级内核
# 安装依赖包
[root@jiayu ~]# yum -y groupinstall "Development Tools"
[root@jiayu ~]# yum -y install ncurses-devel zlib-devel binutils-devel ncurses elfutils-libelf-devel openssl-devel
# 原本内核
[root@jiayu ~]# uname -r
3.10.0-1160.31.1.el7.x86_64
# 下载源码包
[root@jiayu ~]# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.210.tar.xz
[root@jiayu ~]# tar -xf linux-4.19.210.tar.xz
[root@jiayu ~]# cd linux-4.19.210/
# 拷贝/boot/config-3.10.0-1160.31.1.el7.x86_64到.config
[root@jiayu linux-4.19.210]# cp /boot/config-3.10.0-1160.31.1.el7.x86_64 ./.config
# 编译内核功能,根据需求在原有内核功能的基础上进行增加、删除
[root@jiayu linux-4.19.210]# make menuconfig
# 编译内核
[root@jiayu ~]# make -jN
# 安装module
[root@jiayu ~]# make modules_install
# 安装内核
[root@jiayu ~]# make install
注解:
- .config文件中记录了之前内核功能的一些配置
- make menuconfig中参数详解如下:
[*]:表示选取了该选项,编译好后的kernel就会有该功能
[ ]:表示未选取该项,编译后的kernel不会有此功能
<M>:表示选取了该选项,而且是编译成模块module的形式,它会在kernel被载入后被动态地加载,编译成module可以减少kernel image的空间,加快开机速度,方便以后修改
< >:表示未选取该项,但是该功能被当做module,今后可以在开机后另外载入
- make -jN:
1: N代表有多少个CPU,加快编译速度
2: make 包含了 make module,所以不用make module了,make生成的内核在root/linux-4.19.210/arch/x86/boot下
3:make install # 安装内核,会将新内核编译出的System.map, initrd.img, vmlinuz, config文件拷贝到/boot文件夹中,此外,该步骤还会更新/boot/grub/menu.list(如果没有该文件会提示生成)列表,将新安装的内核添加到该文件中