前置:
我并未在/usr/src/下编译bpf, 而是在/home/user下编译的, 所以下载的linux内核源码是放在/home/user/下的.
我编译了两套bpf, 分别是ubuntu20下编译了linux-5.4的bpf, centos8编译了linux-4.18的bpf. 详细过程请看下面.
第一部分, ubuntu20环境下编译:
ubuntu20的linux内核版本为: 5.11.0-27-generic
下载的linux内核版本为: linux-5.4
1, 下载linux-5.4内核源码, github地址如下:
https://github.com/torvalds/linux/tree/v5.4
2, 安装必要的依赖:
apt install flex bison libssl-dev libelf-dev clang llvm
3, 编译, 以/home/user/linux-5.4为例:
cd /home/user/linux-5.4
make headers_install
make defconfig && make prepare
make M=samples/bpf
第二部分, centos8环境下编译:
centos8的linux内核版本为: 4.18.0-305.3.1.el8.x86_64
下载的linux内核版本为: linux-4.18
1, 下载linux-4.18内核源码, github地址如下:
https://github.com/torvalds/linux/tree/v4.18
2, 安装必要的依赖:
yum install flex bison elfutils-libelf-devel openssl-devel clang llvm
3, 编译, 以/home/user/linux-4.18为例:
cd /home/user/linux-4.18
make headers_install
make defconfig && make prepare
# make scripts (如果执行下一步报错, 请执行该命令)
make M=samples/bpf
结束:
编译成功.