Linux-通過源碼安裝某個版本的內核


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM