【问题标题】:How can I get the bpf_helpers.h header file for my Linux kernel?如何获取我的 Linux 内核的 bpf_helpers.h 头文件?
【发布时间】:2019-08-21 12:04:54
【问题描述】:

我正在 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 来定义辅助函数。我安装了一个带有标题的新内核:

apt-get update -y
apt-get install -y linux-image-4.18.0-16-generic linux-headers-4.18.0-16-generic

标头包括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

如何为我的内核获取此文件,为什么它不包含在分发标头中?

我可以签出特定版本的 Linux 内核或从 master 获取文件,但发行版可能会对上游进行更改,这让我感到不舒服。

【问题讨论】:

  • 您是否考虑过在 linux-source Ubuntu 包中查找,即您的目标操作系统内核源包?

标签: linux linux-kernel header-files bpf ebpf


【解决方案1】:

bpf_helpers.h 是 not distributed with the kernel headers。根据 cmets 中 agg3l 的建议,您可以从 Ubuntu's linux-source package 复制它。

【讨论】:

    【解决方案2】:

    在 Ubuntu 上,我安装了 libbpf-dev 以获取该标头:

    sudo apt-get install libbpf-dev
    
    $ apt-file list libbpf-dev | grep bpf_helpers.h
    libbpf-dev: /usr/include/bpf/bpf_helpers.h
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2013-06-30
      • 1970-01-01
      • 2014-05-24
      相关资源
      最近更新 更多