BPF编程环境搭建
本来想写一篇“BPF 深度分析、环境搭建与案例分析”的文章,但是篇幅过长,于是先把BPF编程的环境搭建先放出来。接下来的文章将对BPF深度分析(包括BPF虚拟机、BPF程序指令、BPF目标文件分析、BPF程序类型、BPF加载、翻译】运行分析),并对一些内核中的例子进行分析,最后尝试改写一些程序。
1、安装编译所依赖的工具
2、下载内核源码
建议下载与当前操作系统运行一致的内核版本,避免后续编译时出现不兼容问题。
3、构建环境
4、编译可能遇到的问题
error: ‘test_attr__enabled’ undeclared (first use in this function)
解决:
error:'asm/mmiowb.h' file not found
解决:
通过查找发现系统中的头文件有对应的文件
在 include 文件中创建 asm 目录,并将该 /usr/src/linux-headers-5.4.0-52-generic/arch/x86/include/generated 目下的全部文件复制到 include/asm 目录下:
在 include 文件中创建 asm 目录,并将该 /usr/src/linux-headers-4.15.0-72-generic/arch/x86/include/generated 目下的全部文件复制到 include/asm 目录下:
error:'generated/bounds.h' file not found
解决:
5、编译成功
测试:
接下来的文章将对BPF深度分析(包括BPF虚拟机、BPF程序指令、BPF目标文件分析、BPF程序类型、BPF加载、翻译】运行分析),并对一些内核中的例子进行分析,最后尝试改写一些程序。
全部0条评论
快来发表一下你的评论吧 !