CentOS7 编译源码升级内核
1、安裝依賴包
yum -y groupinstall ?"Development Tools" yum -y install ncurses-devel zlib-devel binutils-devel ncurses elfutils-libelf-devel openssl-devel2、下載源碼包
cd /usr/src/kernels wget http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-5.10.153.tar.xz3、解壓
tar -xf linux-4.19.210.tar.xz cd linux-4.19.210/4、拷貝config
cp /boot/config-$(uname -r) .config5、根據需求在原有內核功能的基礎上進行增加、刪除定制功能宏
make menuconfig [*]:表示選取了該選項,編譯好后的kernel就會有該功能 [ ]:表示未選取該項,編譯后的kernel不會有此功能 <M>:表示選取了該選項,而且是編譯成模塊module的形式,它會在kernel被載入后被動態地加載,編譯成module可以減少kernel image的空間,加快開機速度,方便以后修改 < >:表示未選取該項,但是該功能被當做module,今后可以在開機后另外載入退出時要保存。
6、編譯內核
make -j 47、5.10版本內核需要gcc4.9以上版本才能編譯,如果系統本身的gcc版本高于4.9,可以不安裝centos-release-scl
yum install centos-release-scl -y yum install devtoolset-8 –y 激活devtoolset scl enable devtoolset-8 bash gcc -v8、安裝module
make modules_install9、安裝內核
make install? ? ? make 包含了 make module,所以不用make module了,make生成的內核在root/linux-5.10.153/arch/x86/boot下
? ? ?make install # 安裝內核,會將新內核編譯出的System.map, initrd.img, vmlinuz, config文件拷貝到/boot文件夾中,此外,該步驟還會更新/boot/grub/menu.list(如果沒有該文件會提示生成)列表,將新安裝的內核添加到該文件中
補充:
啟用devtoolset-8
scl enable devtoolset-8 -- bash? #臨時環境? ? ? ? 下次可到/opt/rh/devtoolset-x/目錄,找到enable文件,激活source ./enable;如需替換老舊版本,先備份舊版本GCC[mv /usr/bin/gcc /usr/bin/gcc.bak];鏈接新版本[ln -s /opt/rh/devtoolset-x/root/bin/gcc /usr/bin/gcc])
source /opt/rh/devtoolset-8/enable? ? ? ? 臨時編譯前使用高版本gcc (GCC) 8.3.1(推薦使用這個方法)
export CC=/opt/rh/devtoolset-8/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-8/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-8/root/usr/bin/c++
總結
以上是生活随笔為你收集整理的CentOS7 编译源码升级内核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通信总线协议总结
- 下一篇: 软件工程导论-实验报告-软件测试