Ubuntu20.04配置eBPF环境(升级内核5.15.153+LLVM16.0.0源码安装+bpftool7.4.0源码安装)

Ubuntu20.04默认内核版本是5.4.x,在开发的时候不太够用。

最新版本的bpftool在源码安装编译时要求llvm>=10.0.0。

0. 前期准备

安装一些工具,我是参考了很多篇博客,一股脑装的

如果有遗漏欢迎补充
 

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server \
                        vim \
                        git \
                        net-tools \
                        iproute2 \
                        build-essential \
                        golang-go \
                        libncurses5-dev \
                        flex \
                        bison \
                        libelf-dev \
                        binutils-dev \
                        libssl-dev \
                        binutils-dev 
                        libcap-dev 

1. 源码安装编译LLVM

从零开始的LLVM+Clang(一)——下载、配置到第一个pass_clang下载-CSDN博客

参考里面的方法二即可

2. 升级内核(源码编译安装)

怎样在 Ubuntu 下手工编译安装 6.* 最新内核_ubunutu kernel 6.7-CSDN博客

2.1. 获取内核源码

 下载地址:The Linux Kernel Archives

使用命令行下载或在本机浏览器上下载再拖进虚拟机/服务器中,我下载的是5.15.153,直接下载到了用户目录下

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.153.tar.xz

解压。如果解压报错,复制报错信息上网搜一下就好,一般都是参数多了或少了点问题

tar -xvf linux-5.15.153.tar.xz

2.2. 编译内核源码

先进入解压好的文件

cd linux-source-5.15.153

设置一个参数

sudo sed -i 's/CONFIG_MODULE_COMPRESS_ZSTD=y/# CONFIG_MODULE_COMPRESS_ZSTD is not set/' .config

生成配置

sudo make olddefconfig

再设置一下

sudo scripts/config --disable SYSTEM_TRUSTED_KEYS
sudo scripts/config --disable SYSTEM_REVOCATION_KEYS
sudo scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
sudo scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""

编译,数字8是线程数的意思,也可以是别的数,觉得慢就数字改大一点,这个过程可能需要很长时间

sudo make -j8
这时候可能会出现磁盘空间不够用的问题
参考这个提问解决: 20.04 - Low disk space on Filesystem root despite having plenty of space in `home` - Ask Ubuntu
总的来说就一句命令行,最后一个字段改成你的磁盘区域名
sudo lvextend --resizefs -L +20GB /dev/mapper/ubuntu--vg-ubuntu--lv

编译完后检查一下,如果结果是 0 表示编译成功

echo $?

安装

sudo make install

安装完成后重启,检查内核是否自动替换。如果输出的版本号和新编译安装的内核版本一致,则表示安装成功。

uname -r

3. 安装bpftool

https://github.com/libbpf/bpftool/tree/v7.1.0

不要直接用apt安装,因为大概率不是最新的。如果安装中途报错,很有可能是llvm版本不够高。

git clone --recurse-submodules https://github.com/libbpf/bpftool.git
cd src
make
make install

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值