Preparation
Install build environment:
apt-get install build-essential libtool automake libncurses5-dev bison flex
Download kernel source code:
wget -O- https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.1.tar.xz | tar -xJ
cd linux-4.10.1
Build
default config:
make defconfig ARCH=um
change the config as you like:
make menuconfig ARCH=um
UML-specific options → Force a static link
Device Drivers → Network device support → Universal TUN/TAP device driver support
Networking support → Networking options → TCP: advanced congestion control → BBR TCP
Networking support → Networking options → TCP: advanced congestion control → Default TCP congestion control → BBR
Networking support → Networking options → Qos and/or fair queueing → Quick Fair Queueing scheduler (QFQ)
Networking support → Networking options → Qos and/or fair queueing → Controlled Delay AQM (CODEL)
Networking support → Networking options → Qos and/or fair queueing → Fair Queue Controlled Delay AQM (FQ_CODEL)
Networking support → Networking options → Qos and/or fair queueing → Fair Queue
build:
make vmlinux ARCH=um
strip -s vmlinux