中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

eBPF环境检查

  • 操作系统的内核版本须为4.1及其以上。
  • 如环境配置修改后依旧不支持,可尝试使用为openEuler 20.03(LTS)操作系统。
  • 宿主机支持eBPF时,Docker容器中才可运行任务。

检查环境配置

若需在Docker容器中运行任务,需先从宿主机拷贝内核头文件和内核编译配置文件至容器中:

docker exec 容器名 mkdir -p  /lib/modules/$(uname -r) && docker cp -L  /lib/modules/$(uname -r)/build  容器名:/lib/modules/$(uname -r)
docker exec 容器名 mkdir -p  /boot && docker cp -L  /boot/config-$(uname -r)  容器名:/boot
docker cp -L /proc/config.gz  容器名:/proc/config.gz

其中第二条和第三条命令请根据实际文件情况执行其中一个。

  1. 检验内核参数。

    使用zcat /proc/config.gzcat /boot/config-$(uname -r)查看内核参数设置,拥有eBFP能力的参数配置如下,若内核参数不一致,需重新配置后重新编译内核或重装系统。

    CONFIG_BPF=y
    CONFIG_BPF_SYSCALL=y
    CONFIG_BPF_JIT=y
    CONFIG_HAVE_BPF_JIT=y   #内核版本为4.1到4.6时
    CONFIG_HAVE_EBPF_JIT=y  #内核版本为4.7及以上时
    CONFIG_BPF_EVENTS=y
    图1 查看内核参数
  2. 检验内核头文件目录。
    ll /lib/modules/$(uname -r)/build

    查看build目录是否存在指向文件,存在并指向源码内核文件则满足条件,不存在则不满足任务所需条件。

    图2 build无指向文件
    图3 build存在指向文件
  3. 若build无指向文件,可重新安装。

    CentOS系统:

    yum install kernel-headers kernel-headers.aarch64

    Ubuntu系统可使用:

    sudo apt-get install linux-headers-$(uname -r)

    若依旧没有对应指向文件,可手动链接/usr/src/kernels/$(uname -r)。