现在官方库里已经有kmod-tcp-bbr.ipk了
直接opkg install kmod-tcp-bbr
然后在/etc/sysctl.conf里最下边添加net.ipv4.tcp_congestion_control=bbr
最后sysctl -p即可
最新openwrt的内核(4.14.*)默认不编译bbr。
可以修改kernel的.config来启用bbr
用ipk包的形式安装也很方便,于是写了个ipk makefile 顺便学习:
项目地址https://github.com/anshi233/Openwrt-BBR
支持内核>=4.14.* 所以请使用官方最新源码编译。
Openwrt 18*以上版本已经自带BBR了
(直接在路由器里执行insmod tcp_bbr
然后执行echo "tcp_bbr" > /etc/modules.d/bbr
然后在/etc/sysctl.conf里最下边添加net.ipv4.tcp_congestion_control=bbr
最后sysctl -p即可
git clone https://git.openwrt.org/openwrt/openwrt.git
使用方法:
原版BBR:
在源码根目录或者sdk根目录:
git clone https://github.com/anshi233/Openwrt-BBR.git package/Openwrt-BBR
选择Kernel modules --> Network Support ---> kmod-bbr
make package/Openwrt-BBR/bbr_origin/compile
然后去bin文件夹找kmod-bbr-(内核版本).ipk
下载到路由器里然后用opkg 安装上
路由器里启用BBR:
先
insmod bbr
添加开机加载:
echo "bbr" > /etc/modules.d/bbr
然后修改/etc/sysctl.conf
随便什么地方加上:
net.ipv4.tcp_congestion_control=bbr
然后保存
运行
sysctl -p
检查运行:
sysctl net.ipv4.tcp_congestion_control
应返回
net.ipv4.tcp_congestion_control = bbr
魔改BBR:
在源码根目录或者sdk根目录:
git clone https://github.com/anshi233/Openwrt-BBR.git package/Openwrt-BBR
选择Kernel modules --> Network Support ---> kmod-bbr_mod
make package/Openwrt-BBR/bbr_mod/compile
然后去bin文件夹找kmod-bbr_mod-(内核版本).ipk
下载到路由器里然后用opkg 安装上
路由器里启用BBR:
先
insmod tcp_bbr_mod
添加开机加载:
echo "tcp_bbr_mod" > /etc/modules.d/bbr
然后修改/etc/sysctl.conf
随便什么地方加上:
net.ipv4.tcp_congestion_control=tcp_bbr_mod
然后保存
运行
sysctl -p
检查运行:
sysctl net.ipv4.tcp_congestion_control
应返回
net.ipv4.tcp_congestion_control = tcp_bbr_mod
至于有没有用
传统应用上看youtube为例主要是大带宽tcp连接下载,bbr只能加速本地回复的ACK包。这种情况下ACK包基本上是碰不到上传带宽极限的。所以没用。
但是如果把数据备份到远程大盘鸡上这种情况,那就有用。
但是路由器只负责转发和我tcp发包有什么关系吗?
所以除非拿路由器刷pt或者在路由器上挂酸酸客户端。否则一点用都没有。
make[3]: Entering directory `/home/ouxin/WorkSpace/openwrt_lede/openwrt/build_dir/target-mipsel_24kc_musl-1.1.16/linux-ramips_mt7621/linux-4.4.92′
CC [M] /home/ouxin/WorkSpace/openwrt_lede/openwrt/build_dir/target-mipsel_24kc_musl-1.1.16/linux-ramips_mt7621/bbr_mod/tcp_bbr_mod.o
/home/ouxin/WorkSpace/openwrt_lede/openwrt/build_dir/target-mipsel_24kc_musl-1.1.16/linux-ramips_mt7621/bbr_mod/tcp_bbr_mod.c:64:30: fatal error: linux/win_minmax.h: No such file or directory
是否是内核问题?
官方release的内核是4.4.92,并不支持。
而官方最新源码用的是4.14.29,这个可以用。
所以请用最新官方源码编译。。
我因该使用原版 还是魔改呢
可以都试试看,一般原版就够了。
前面SDK编译的都对,而且opkg也装好了,能看到kmod-bbr装上去了
但运行下面的命令时找不到
insmod kmod-bbr
Failed to find kmod-bbr. Maybe it is a built in module ?
uname -a
uname -a
Linux c2gl19 4.14.63 #0 SMP Thu Aug 16 07:51:15 2018 armv7l GNU/Linux
insmod tcp-bbr
版主你好!我参照你的步骤,下载了最新的源码18.06.01版。在make menuconfig后直接make它提示找不到很多dependecy。然后我就做了feeds update:
./scripts/feeds update -a
./scripts/feeds install -a
然后再make menuconfig再编译。可是编译的时候出现如下错误信息。不知道可以怎么解决?谢谢!
make[1]: Entering directory `/home/yaokan/openwrt’
make[2]: Entering directory `/home/yaokan/openwrt/package/Openwrt-BBR/bbr_origin’
make[2]: *** No rule to make target `/home/yaokan/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.78/.config’, needed by `/home/yaokan/openwrt/build_dir/target-x86_64_musl/linux-x86_64/bbr/.built’. Stop.
make[2]: Leaving directory `/home/yaokan/openwrt/package/Openwrt-BBR/bbr_origin’
time: package/Openwrt-BBR/bbr_origin/compile#0.06#0.05#0.12
make[1]: *** [package/Openwrt-BBR/bbr_origin/compile] Error 2
make[1]: Leaving directory `/home/yaokan/openwrt’
make: *** [package/Openwrt-BBR/bbr_origin/compile] Error 2
重新下载源码试试(其实18已经自带bbr了我这个已经属于历史遗物了)