eBPF入门系列:Cilium ebpf本地开发环境配置

一、环境搭建与 ebpf 示例代码调试

本地环境

  • Golang 1.20.8

  • Ubuntu 22.04 (5.15.0-84-generic)

1、安装依赖

# llvm版本不低于11
$ apt install clang llvm

2、配置环境变量

$ export BPF_CLANG=clang

3、将 Cilium ebpf 项目克隆到本地

$ git clone https://github.com/cilium/ebpf.git

4、测试

进入 examples/kprobe 目录,删除已经生成的大小端文件

$ cd examples/kprobe
$ rm bpf_bpf*

执行 go generate 生成大小端依赖文件

执行 go build 生成二进制文件,执行二进制文件:

打印的结果为执行 sys_execve 的次数,若正确输出则说明环境搭建成功。

二、创建自己的 eBPF 项目

建立自己项目文件夹并进入

cilium/ebpf 项目 examples 目录相关文件复制过来

初始化 go 项目

生成 eBPF C 程序对应的 go 数据结构,每次 C 程序有更新时需要重新执行。go generate 执行有报错时优先检查 C 程序头文件路径是否正确

go build 执行完成则证明配置成功。

参考

Cilium-eBPF-搭建与使用

Getting Started with eBPF in Go

Last updated