静看光阴荏苒
不管不顾不问不说也不念

CentOS7编译安装kernel5.0-rc1

Linux内核5.0-rc1已经于前几天发布了,终于要迎来5.X时代了。。。

不过除了版本号刷的比较新以外,其实也没多大具体的改动或者说新功能。。。

安装开发工具包,这里面包含了编译所需的GCC/MAKE之类的包,算是个全家桶吧:

yum -y groupinstall "Development Tools"

安装其他所需的依赖,因为我打算把它打包成RPM包,所以这里额外装一个rpmbuild:

yum -y install bc rpm-build ncurses-devel openssl-devel elfutils-libelf-devel

然后就是下载解压内核源码了:

wget https://git.kernel.org/torvalds/t/linux-5.0-rc1.tar.gz
tar -xzvf linux-5.0-rc1.tar.gz
cd linux-5.0-rc1

装了ncurses-devel,所以这里我们用图形化界面来配置内核参数:

make menuconfig

初始界面:

先要了解这个界面怎么操作,上下键用来操作竖向功能,左右键用来操作横向功能,譬如Select/Exit/Help/Save/Load这些。空格选择功能是否启用,*代表把功能直接编译到内核,M代表把功能编译成模块,留空为不启用。

首先我们来开启BBR,先在初始界面选择Networking support,然后再选择Networking options:

在里面找到TCP:advanced congestion control回车进入:

往下翻你就可以看到BBR TCP这一选项了,按空格设置成M(编译成模块):

BBR的设置就完成了,接下来我们要关闭debug信息,不然编译出来的内核可能体积特别大,先选择Kernel hacking:

在里面选择Compile-time checks and compiler options:

按空格取消Compile the kernel with debug info:

使用键盘左右键切到SAVE保存,你将看到这个界面,回车:

再回车一次退出:

然后你可以看到它默认是直接使用我们系统原先自带的config再加上我们刚在界面上设置的功能来进行编译:

现在就可以开始编译并打包成RPM包了,我在一台4核8线程的机器上编译,所以我指定了-j8,然后我是打包成二进制的RPM包,这样RPM包体积会比较小,最后我为了防止编译过程中可能会出现错误,我将日志输出到build-err.log:

make -j8 binrpm-pkg 2> build-err.log

我这台机器编译完成大概10分钟多一点的样子,如果一切正常,你可以看到类似如下图的输出:

然后我们进入这个目录:

cd /root/rpmbuild/RPMS/x86_64

使用yum安装:

yum -y localinstall *.rpm

设置默认启动的内核为我们刚编译的5.0-rc1:

grub2-set-default 0

重启:

reboot

开启BBR:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

查看BBR状态:

lsmod | grep bbr

OK,一切正常:

这个方法搞出来的内核感觉还是只能自己玩玩,我这样子打包出来的RPM包体积还是过大,有200多MB。。。正常情况下应该50MB左右才对,我再看看是哪里有问题。。。

另外我看了下Ubuntu的PPA里面已经有这个5.0-rc1的内核了,如果你有吃灰VPS的话,重装成Ubuntu然后用包管理器应该就能换这个内核。

赞(3)
未经允许不得转载:荒岛 » CentOS7编译安装kernel5.0-rc1
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    LALA,我要怎么做才能像你这么优秀?同九年,汝何秀? :oops:

    唐风月5年前 (2019-01-14) Google Chrome 71.0.3578.80 Google Chrome 71.0.3578.80 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿