CentOS7 编译源码升级内核

23 篇文章 1 订阅

1、安装依赖包

yum -y groupinstall  "Development Tools"
yum -y install ncurses-devel zlib-devel binutils-devel ncurses elfutils-libelf-devel openssl-devel

2、下载源码包

cd /usr/src/kernels
wget http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-5.10.153.tar.xz

3、解压

tar -xf linux-4.19.210.tar.xz
cd linux-4.19.210/

4、拷贝config

cp /boot/config-$(uname -r) .config

5、根据需求在原有内核功能的基础上进行增加、删除定制功能宏

make menuconfig
[*]:表示选取了该选项,编译好后的kernel就会有该功能
[ ]:表示未选取该项,编译后的kernel不会有此功能
<M>:表示选取了该选项,而且是编译成模块module的形式,它会在kernel被载入后被动态地加载,编译成module可以减少kernel image的空间,加快开机速度,方便以后修改
< >:表示未选取该项,但是该功能被当做module,今后可以在开机后另外载入

退出时要保存。

6、编译内核

make -j 4

7、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 -v

8、安装module

make modules_install

9、安装内核

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++

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值