编译Google TCP BBR v3

image.png

项目地址: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 -荒岛
image.png
image.png

编译并创建deb软件包:

make bindeb-pkg

4.报错处理

编译时分别出现了三个报错

1.'debian/certs/debian-uefi-certs.pem'

image.png

解决方法,编辑源码目录的 .config 文件

image.png

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

image.png

启用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
image.png

dpkg -i ./linux-*.deb

参考:
编译Google TCP BBR v3 -荒岛
https://github.com/google/bbr/tree/v3

# bbr 

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:编译Google TCP BBR v3
地址:https://530503.xyz/articles/2023/09/13/1694577134284.html

评论

取消