---
title: eBPF环境检查
description: "- 操作系统的内核版本须为4.1及以上。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24/usermanual/kunpengoper_06_0030.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24/usermanual/kunpengoper_06_0030.html
indexId: 9848dbf4b8e58876b5cb35cc1cad6706703c8c7cf4994525c8bec6b604af1e3977
---
# 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.gz或cat /boot/config-$(uname -r)查看内核参数设置，拥有eBPF能力的参数配置如下，若内核参数不一致，需重新配置后重新编译内核或重装系统。

```
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)。
