一下操作步驟來自於各種搜索出來的雜七雜八的東西。主要來自: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內核源碼國內鏡像站
