如何生成 vmlinux.h
文章目录
eBPF 的一些开发方案里涉及到 vmlinux.h, 它包含了kernel里所有用到的data structure等等。有了它可以方便地替代其他一大堆杂七杂八的头文件。网上基本上都提到了如何用 vmlinux
来生成 vmlinux.h
, 但最开始的
vmlinux
怎么来的并没有找到比较明确的文档。本来将提供一个比较全面的如何生成 vmlinux.h
的文档.
环境说明
- OS: ubuntu 20.04.1
- Kernel: 5.4.0-70
安装 vmlinux
需要添加 ddeb 的源
|
|
repo key相关的
|
|
安装
|
|
最后安装好的文件在 /usr/lib/debug/boot/
目录下。
注意 /boot
下面有类似的文件,但那是压缩过的,不能直接用。所以最好还是按上述方法直接下载。
安装 bpftool
bpftool 需要从 kernel source code里生成,或者直接从repo里安装.
|
|
如果从 repo 里安装
|
|
生成 vmlinux.h
可能是我从source里build出来的bpftool有问题,这一步只是用repo里安装的bpftool成功了
|
|
libbpf提供了一些功能,可以保证vmlinux.h在不同kernel version之间的兼容性.
Links
文章作者 涯余
上次更新 2021-08-25