Code Monkey home page Code Monkey logo

bbrplus-5.4's Introduction

bbrplus-5.4

Linux BBRplus Kernel 5.4 ported from BBRplus 4.14
(note that it does NOT based on 5.4 version of BBR, instead just simple ported the 4.14 version of BBRplus)


based on original version
https://github.com/cx9208/bbrplus



some improvements as Nov-2021

i) merged official v4.14 tcp_bbr patches between 2018-2021 into bbrplus

ii) keep official v5.17 tcp_bbr module, so may use either

net.ipv4.tcp_congestion_control = bbrplus
net.core.default_qdisc = fq

or

net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq

in the /etc/sysctl.conf file.    ( fq is the only recommended packet scheduler, do not use fq_codel cake etc )


patch & build bbrplus kernel youself

(or you can use releases compiled by me in "Releases" section)


1) get convert patch on this repository, use git or direct download

    (e.g., convert_official_linux-5.4.x_src_to_bbrplus.patch)


2) download officaial linux kernel

    say 5.4.69        
        wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.69.tar.gz


3) extract the tarball & cd extracted directory

    tar zxvf linux-5.4.69.tar.gz && cd linux-5.4.69


4) copy convert patch to extracted kernel directory

    something like
        cp ../convert_official_linux-5.4.x_src_to_bbrplus.patch .


5) do the patch job

    patch -p1 < convert_official_linux-5.4.x_src_to_bbrplus.patch


(if no error or failed on previous step)

6) install dependencies for building kernels


CentOS
sudo yum groupinstall Development tools
sudo yum install ncurses-devel bc gcc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel


press "y" key when asked


Debian/Ubuntu
sudo apt install build-essential libncurses5-dev
sudo apt build-dep linux


press "y" key when asked



7) config build parameters based on current kernel settings

    make oldconfig

press Enter key when asked (if dont know what is what)



8) disable debug info & module signing

    scripts/config --disable DEBUG_INFO && scripts/config --disable MODULE_SIG


9) build kernel


CentOS
make rpm-pkg LOCALVERSION=-bbrplus 2>&1 | tee build.log


Debian/Ubuntu
make deb-pkg LOCALVERSION=-bbrplus 2>&1 | tee build.log


if anything goes wrong check the "build.log" file



(if not failed on previous step)

10) collect kernel package files, do test on some other Linux machine


CentOS files
located in
/"user home dir"/rpmbuild/RPMS/x86_64/


Debian/Ubuntu files
located in
parent directory

bbrplus-5.4's People

Contributors

ujx6n avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

bbrplus-5.4's Issues

能做一个openwrt的版本吗?

这个patch脚本用在编译openwrt,但是好像并不成功,虽然用 sysctl net.ipv4.tcp_available_congestion_control
可以查到 bbrplus,但是用 lsmod | grep bbrplus 没有输出任何内容,不知道少了什么。

这个是给centos7还是8用的?

建议把各个版本的bbr plus 统一到一个仓库

然后区分是centos7 还是centos8

就像这种
https://github.com/cx9208/bbrplus

现在都不知道用哪个版本,是针对哪个系统的。

还有希望提供 kernel,kernel-devel,kernel-headers 的编译版本 这样就能装 WireGuard 了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.