如何为我的 Linux 内核获取 bpf_helpers.h header 文件?
How can I get the bpf_helpers.h header file for my Linux kernel?
我正在 Ubuntu 机器上开发 eBPF 程序:
$ uname -a
Linux ubuntu-bionic 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
为此,我需要 bpf.h
用于许多定义,还需要 bpf_helpers.h
用于辅助函数定义。我用 headers:
安装了一个新内核
apt-get update -y
apt-get install -y linux-image-4.18.0-16-generic linux-headers-4.18.0-16-generic
headers包括bpf.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf.h
/usr/src/linux-headers-4.18.0-16/include/uapi/linux/bpf.h
/usr/src/linux-headers-4.18.0-16/include/linux/bpf.h
但不是 bpf_helpers.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf_helpers.h
我如何为我的内核获取这个文件,为什么它没有包含在发行版中 headers?
我可以检查特定版本的 Linux 内核或从 master 获取文件,但发行版可能对上游进行了更改,这让我这样做很不舒服。
bpf_helpers.h
是 not distributed with the kernel headers,但带有 libbpf。
您可以在 Ubuntu 上安装 libbpf:
apt install libbpf-dev
或者您可以从 https://github.com/libbpf/libbpf 的源安装它。
在 Ubuntu 我安装了 libbpf-dev 来获得 header:
sudo apt-get install libbpf-dev
$ apt-file list libbpf-dev | grep bpf_helpers.h
libbpf-dev: /usr/include/bpf/bpf_helpers.h
我正在 Ubuntu 机器上开发 eBPF 程序:
$ uname -a
Linux ubuntu-bionic 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
为此,我需要 bpf.h
用于许多定义,还需要 bpf_helpers.h
用于辅助函数定义。我用 headers:
apt-get update -y
apt-get install -y linux-image-4.18.0-16-generic linux-headers-4.18.0-16-generic
headers包括bpf.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf.h
/usr/src/linux-headers-4.18.0-16/include/uapi/linux/bpf.h
/usr/src/linux-headers-4.18.0-16/include/linux/bpf.h
但不是 bpf_helpers.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf_helpers.h
我如何为我的内核获取这个文件,为什么它没有包含在发行版中 headers?
我可以检查特定版本的 Linux 内核或从 master 获取文件,但发行版可能对上游进行了更改,这让我这样做很不舒服。
bpf_helpers.h
是 not distributed with the kernel headers,但带有 libbpf。
您可以在 Ubuntu 上安装 libbpf:
apt install libbpf-dev
或者您可以从 https://github.com/libbpf/libbpf 的源安装它。
在 Ubuntu 我安装了 libbpf-dev 来获得 header:
sudo apt-get install libbpf-dev
$ apt-file list libbpf-dev | grep bpf_helpers.h
libbpf-dev: /usr/include/bpf/bpf_helpers.h