首页 > 技术文章 > Linux-通过源码安装某个版本的内核

gefish 2019-12-12 15:20 原文

一下操作步骤来自于各种搜索出来的杂七杂八的东西。主要来自:https://blog.csdn.net/happyfreeangel/article/details/85088706

前置环境:CentOS 7 x86 任意一个版本

前置的一些步骤(可选):
更换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

安装工具链条:
sudo yum install -y gcc kernel-devel
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 version=4.14.59 #这里写你要编译的内核版本
export kernelfile=linux-${version}.tar.xz

#wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v4.x/linux-${version}.tar.xz #longterm kernel 4.14.89

#xz -d -v ${kernelfile}

#wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v4.x/linux-${version}.tar.sign

result=$(gpg --verify linux-4.14.59.tar.sign | grep 'using RSA key')
recv_keys=""
for word in result
do
recv_keys=word
done

echo $recv_keys
gpg --recv-keys recv_keys
gpg --verify linux-{version}.tar.sign


tar xvf linux-${version}.tar

cd linux-$(version)
cp -v /boot/config-$(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} 

#使用多个线程编译,每个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}

echo 'do reboot'
#sudo reboot

 

p.s.

http://wiki.centos.org/Download centos系统版本与内核版本对应关系在这查

https://mirror.bjtu.edu.cn/kernel/linux/kernel     linux内核源码国内镜像站

 

推荐阅读