项目地址:https://github.com/google/bbr/tree/v3
测试环境:debian10 安装了cloud
内核
1.安装编译依赖环境
apt install build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper dwarves git lz4
lz4
编译时有个报错是需要安装这个包
2.下载源码
因为我用的一个512M内存的小鸡来测试的,内存不够git
不下来,就用wget
下载了
wget https://github.com/google/bbr/archive/refs/heads/v3.zip
unzip v3.zip
cd bbr-3/
3.编译配置
复制系统默认的内核配置文件:
cp /boot/config-$(uname -r) .config
执行如下命令保留旧.config文件中的所有选项,并将新选项设置为推荐(即默认)值:
make olddefconfig
打开配置菜单:
make menuconfig
我直接用 荒岛 的图了
编译Google TCP BBR v3 -荒岛
编译并创建deb软件包:
make bindeb-pkg
4.报错处理
编译时分别出现了三个报错
1.'debian/certs/debian-uefi-certs.pem'
解决方法,编辑源码目录的 .config
文件
CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/debian-uefi-certs.pem"# 找到
CONFIG_SYSTEM_TRUSTED_KEYS="" # 改为空值
2.缺少 lz4
包 直接 apt 安装
apt install lz4
3.内存不够,后面加了swap解决
5.安装内核
编译完成后root 目录下有三个deb
包直接安装
dpkg -i ./linux-*.deb
更新grub2配置然后重启
update-grub2
reboot
删除旧内核,再更新下grub2配置
dpkg --list | grep linux-image
apt remove --purge linux-image-5.10.0-13-amd64
apt autoremove
apt autoclean
update-grub2
6.测试
root@debian:~# uname -a
6.4.0
modinfo tcp_bbr
启用BBRv3
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p
查看内核是否已开启BBR
root@debian:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
root@debian:~# lsmod |grep bbr
tcp_bbr 24576 1
7.编译好的
我是用 debian10 先安装了cloud
内核,在进行编译的时候,复制了cloud
内核的配置文件,按理说这也应该算是
cloud BBR V3 内核吧😂
编译好的敢用的拿去,后果自负哈
https://mega.nz/folder/AIllHDpZ#JnVNSQ2-_wbwpHLJxN8VxQ
dpkg -i ./linux-*.deb
参考:
编译Google TCP BBR v3 -荒岛
https://github.com/google/bbr/tree/v3