编译源码
编译内核先拉取源码:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.7.tar.xz
tar xvf linux-5.5.7.tar.xz
apt-get install -y build-essential libncurses5-dev
apt install -y build-essential libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
# 然后准备配置
make oldconfig
或者是
make menuconfig
配置的时候必须要修改bbr=m
# 然后禁用签名并编译
scripts/config --disable MODULE_SIG
scripts/config --disable DEBUG_INFO
centos:
# make -j `nproc` rpm-pkg # 这个操作每次都会make clean
make -j `nproc` binrpm-pkg > /dev/null
debian:
make -j `nproc` deb-pkg # 这个操作每次都会make clean
make -j `nproc` bindeb-pkg > /dev/null
编译结束后,需要安装使用内核
dpkg -i linux-headers-4.14.168-bbrplus_4.14.168-bbrplus-1-d8_amd64.deb
dpkg -i linux-image-4.14.168-bbrplus_4.14.168-bbrplus-1-d8_amd64.deb
# 准备移除多余内核
dpkg -l|grep linux-image | awk '{print $2}'
# 注意不要删除刚才安装的内核
apt-get purge -y xxxxx
然后更新引导程序
# CentOS 6
sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf
# CentOS 7
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-set-default 0
# CentOS 8
grub2-mkconfig -o /boot/grub2/grub.cfg
grubby --info=ALL|awk -F= '$1=="kernel" {print i++ " : " $2}'
# Debian || Ubuntu
/usr/sbin/update-grub
编译加速方案
在以上的方案下,每次重新编译都需要1.5-2个小时左右的编译时间,为了加速编译过程,可能就需要使用ccache进行加速了
# 安装ccache
sudo apt-get install ccache
# 配置ccache的环境
vim ~/.bashrc
# 临时的cache的目录,保存编译信息的
export CCACHE_DIR="/home/ccacheTemp"
export CC="ccache gcc"
export CXX="ccache g++"
export PATH="/usr/lib/ccache:$PATH"
# 立即生效配置环境
source ~/.bashrc
# 设置使用6G的空间大小
ccache -M 6G