一下操作步骤来自于各种搜索出来的杂七杂八的东西。主要来自: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内核源码国内镜像站