Linode编译hybla htcp模块

查看vps内核版本:

uname -a
Linux magic 4.4.0-x86_64-linode63 #2 SMP Tue Jan 19 12:43:53 EST 2016 x86_64 GNU/Linux

下载相同版本的内核源码

可以去 https://www.kernel.org/pub/linux/kernel/ 下载对应版本的内核源码

mkdir kernel
cd kernel
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.gz 
tar xzvf linux-4.4.tar.gz

安装内核编译工具

apt-get install build-essential libncurses5-dev module-init-tools

配置内核编译文件

cd linux-4.4
zcat /proc/config.gz > .config

编辑.config文件,查找 CONFIG_TCP_CONG_CUBIC=y,增加 CONFIG_TCP_CONG_HYBLA=y, CONFIG_TCP_CONG_HTCP=y

然后编译

make

等待编译完成,一般20分钟左右

准备编译模块

cd net/ipv4/
mv Makefile Makefile.old
vi Makefile

以hybla为例

# Makefile for tcp_hybla.ko
obj-m := tcp_hybla.o
KDIR := /root/kernel/linux-3.11.6
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules #以tab开头

开始编译模块

cd /root/kernel/linux-4.4
make modules

加载模块

cd /root/kernel/linux-4.4/net/ipv4
insmod ./tcp_hybla.ko

如果遇到command not found: insmod则需要手动安装

apt-get install module-init-tools

BTW

编译的时候如果出现如下错误

scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory

需要源安装libssl-dev就可以了