Skip to content

Linux bbrplus kernel 6.x stable (non-LTS) ported from bbrplus 4.14

Notifications You must be signed in to change notification settings

UJX6N/bbrplus-6.x_stable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bbrplus-6.x_stable

Linux BBRplus Kernel 6.x Stable (non-LTS) ported from BBRplus 4.14
(note that it does NOT based on 6.x 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 Aug-2023

i) merged official tcp_bbr patches between 2018-2023 into bbrplus

ii) keep official 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 fq_pie cake etc )


patch & build bbrplus kernel youself

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

(build requirement to GCC is >= 4.9, so GCC upgrade is needed if use CentOS 7.x as builder)

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

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


2) download officaial linux kernel

    say 6.4.12       
        wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.12.tar.xz


3) extract the tarball & cd extracted directory

    tar xvf linux-6.4.12.tar.xz && cd linux-6.4.12


4) copy convert patch to extracted kernel directory

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


5) do the patch job

    patch -p1 < convert_official_linux-6.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

(Note: If using CentOS 7.x with Xen Virtualization, ya have to set CONFIG_XEN_BLKDEV_FRONTEND=y, otherwise VMs won't boot.)


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



8) disable debug info & module signing

    scripts/config --disable SECURITY_LOCKDOWN_LSM
    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

About

Linux bbrplus kernel 6.x stable (non-LTS) ported from bbrplus 4.14

Resources

Stars

Watchers

Forks

Packages

No packages published