#如何编译和安装Linux Kernel 到指定的版本
#从源代码构建(编译)和安装最新Linux内核的过程如下:
#1.从kernel.org获取最新内核
#2.验证内核
#3.Untar内核tarball
#4.复制现有的Linux内核配置文件
#5.编译并构建Linux内核4.19.6
#6.安装Linux内核和模块(驱动程序)
#7. 更新Grub配置
#8.重启系统
打开https://www.kernel.org
查看你想安装的内核版本. 如果是产品部署建议用longterm版本.
前提条件: 已经安装好Linux 操作系统,我安装的是Redhat Centos7 1810 版本的,最小化安装.
自动执行的升级脚本如下:
#!/bin/bash
version=“4.14.89”
#编译升级Linux内核
#使用代理速度会快一点,如果你在中国境内,因为编译安装需要先把环境部署好,需要用到国外的RPM源安装,可以设置阿里的yum 源头,或设置专门的代理.
#CentOS 6
#wget -O /etc/yum.repos.d/CentOS-Base.repo #http://mirrors.aliyun.com/repo/Centos-6.repo
#CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者设置自己的代理
Yum 代理设置 请查看文章
Yum 代理设置
在/etc/yum.conf后面添加以下内容:
如果代理不需要用户名密码认证:
proxy=http://代理服务器IP地址:端口号
如果需要认证
proxy=http://代理服务器IP地址:端口号
proxy_username=代理服务器用户名
设置wget,curl 代理,这个可以省略,之所以这样设置是因为我们内部有一台代理可以直达国外,可以提高下载速度,节省大量的时间. 如果你没有,那就需要等一会儿了。
export http_proxy=http://10.20.1.1:8118
export https_proxy=https://10.20.1.1:8118
#先安装基本工具,这些是编译内核之前的准备工作
sudo yum install -y epel-release
sudo yum group install -y “Development Tools”
sudo yum install -y bc wget xz ncurses-devel bison flex elfutils-libelf-devel openssl-devel
export kernelfile=linux-${version}.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.xz #longterm kernel 4.14.89
xz -d -v ${kernelfile}
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.sign
result={version}.tar.sign | grep ‘using RSA key’)
recv_keys=""
for word in word #最后一个才是我们要的
done
echo $recv_keys
gpg --recv-keys {version}.tar.sign
tar xvf linux-${version}.tar
cd linux-(uname -r) .config
#下面的make menuconfig 需要手动 干预, 我是选择默认,直接保存退出,什么都没改。就是为了生成一个标准的.config 文件。
make menuconfig #这里要特别注意,进去后退出必须保存为.config 否则下面的运行每个都要确认.
#make xconfig # X windows (Qt) based configuration tool, works best under KDE desktop
#make gconfig #X windows (Gtk) based configuration tool, works best under Gnome Dekstop.
echo 开始编译内核linux-${version} > 1.log
date>>1.log
#使用多个线程编译,每个cpu 一个线程. 如果你是单个cpu,可以设置 make -j 2
make -j $(nproc)
sudo make modules_install
sudo make install
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-${version}
sudo reboot
date >> 1.log
echo 内核linux-${version}编译安装完成 >>1.log
date>>1.log
#重新启动之后
uname -mrs
如果旧的内核不想要了,可以执行:
yum remove kernel -y