Ubuntu20.04,编译安装BCC

https://github.com/iovisor/bcc/blob/master/INSTALL.md

一、内核配置

In general, to use these features, a Linux kernel version 4.1 or newer is required.

In addition, the kernel should have been compiled with the following flags set:

CONFIG_BPF=y

CONFIG_BPF_SYSCALL=y

[optional, for tc filters]

CONFIG_NET_CLS_BPF=m

[optional, for tc actions]

CONFIG_NET_ACT_BPF=m

CONFIG_BPF_JIT=y

[for Linux kernel versions 4.1 through 4.6]

CONFIG_HAVE_BPF_JIT=y

[for Linux kernel versions 4.7 and later]

CONFIG_HAVE_EBPF_JIT=y

[optional, for kprobes]

CONFIG_BPF_EVENTS=y

Need kernel headers through /sys/kernel/kheaders.tar.xz

CONFIG_IKHEADERS=y

There are a few optional kernel flags needed for running bcc networking examples on vanilla kernel:

CONFIG_NET_SCH_SFQ=m

CONFIG_NET_ACT_POLICE=m

CONFIG_NET_ACT_GACT=m

CONFIG_DUMMY=m

CONFIG_VXLAN=m

Kernel compile flags can usually be checked by looking at /proc/config.gz or /boot/config-<kernel-version>.

二、源码方式编译安装BCC

  • LLVM 3.7.1 or newer, compiled with BPF support (default=on)

  • Clang, built from the same tree as LLVM

  • cmake (>=3.1), gcc (>=4.7), flex, bison

  • LuaJIT, if you want Lua support

  • Optional tools used in some examples: arping, netperf, and iperf

1、安装依赖

For Focal (20.04.1 LTS)

bash 复制代码
# apt install -y zip bison build-essential cmake flex git libedit-dev libllvm12 llvm-12-dev ibclang-12-dev python zlib1g-dev libelf-dev libfl-dev python3-setuptools liblzma-dev arping netperf iperf

2、编译安装BCC

bash 复制代码
# git clone https://github.com/iovisor/bcc.git
# mkdir bcc/build; cd bcc/build
# cmake ..
-- Latest recognized Git tag is v0.31.0
-- Git HEAD is cb1ba20f4800f556dc940682ba7016c50bd0a3ac
-- Revision is 0.31.0+cb1ba20f (major 0, minor 31, patch 0)
-- Kernel release: 5.4.0-196-generic
-- Kernel headers: /usr/src/linux-headers-5.4.0-196-generic
-- Found LLVM: /usr/lib/llvm-12/include 12.0.0 (Use LLVM_ROOT envronment variable for another version of LLVM)
-- Could NOT find LibDebuginfod (missing: LIBDEBUGINFOD_LIBRARIES LIBDEBUGINFOD_INCLUDE_DIRS)  # https://github.com/iovisor/bcc/issues/3601 注释CMakeLists.txt的行find_package(LibDebuginfod),可以消除这个告警
-- Using static-libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /root/bcc/build
bash 复制代码
# make
[ 10%] Built target bpf-static
[ 12%] Built target clang_frontend-objects
[ 14%] Built target bcc-loader-static
[ 15%] Built target api-objects
[ 16%] Built target usdt-static
[ 16%] Built target clang_frontend
[ 21%] Built target bcc-static
[ 30%] Built target bpf-shared
[ 31%] Built target api-static
[ 37%] Built target bcc-shared
[ 38%] Built target bcc_py_python3
[ 39%] Built target bcc-lua
[ 39%] Built target bps
[ 39%] Built target CGroupTest
[ 39%] Built target UseExternalMap
[ 39%] Built target FollyRequestContextSwitch
[ 40%] Built target SkLocalStorageIterator
[ 41%] Built target HelloWorld
[ 42%] Built target RecordMySQLQuery
[ 43%] Built target CPUDistribution
[ 44%] Built target TaskIterator
[ 45%] Built target KFuncExample
[ 45%] Built target TCPSendStack
[ 45%] Built target KModRetExample
[ 46%] Built target LLCStat
[ 46%] Built target RandomRead
[ 48%] Built target PyPerf
[ 90%] Built target man
[ 91%] Built target test_static
[ 92%] Built target usdt_test_lib
[ 93%] Built target debuginfo_test_lib
[ 94%] Built target zip_archive
[ 94%] Built target debuginfo
[ 94%] Built target with_gnu_debuglink
[ 94%] Built target debuginfo_xz
[ 94%] Built target with_gnu_debugdata
[ 94%] Linking CXX executable test_libbcc
[100%] Built target test_libbcc

# make install

# cmake -DPYTHON_CMD=python3 .. # build python3 binding
-- Latest recognized Git tag is v0.31.0
-- Git HEAD is cb1ba20f4800f556dc940682ba7016c50bd0a3ac
-- Revision is 0.31.0+cb1ba20f (major 0, minor 31, patch 0)
-- Kernel release: 5.4.0-196-generic
-- Kernel headers: /usr/src/linux-headers-5.4.0-196-generic
-- Found LLVM: /usr/lib/llvm-12/include 12.0.0 (Use LLVM_ROOT envronment variable for another version of LLVM)
-- Using static-libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /root/bcc/build

# pushd src/python/
~/bcc/build/src/python ~/bcc/build

# make
[100%] Built target bcc_py_python3

# make install
# popd
~/bcc/build
相关推荐
_小许_6 分钟前
linux安装Go ImageMagick插件
linux·运维·golang
删除没备份的痛1 小时前
python3的语法
linux·开发语言·python
Yvemil72 小时前
运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)
linux·运维·服务器
一步步走2 小时前
Ubuntu下的CUDA环境的安装与配置
linux·c++·ubuntu
starcat20022 小时前
Ubuntu24.04编译安装LinuxZen6.11.2
linux
战术摸鱼大师2 小时前
Ubuntu终端配置
linux·运维·ubuntu
好记忆不如烂笔头abc2 小时前
Ubuntu 18.04安装storcli查看阵列信息
linux·运维·服务器
短鼻子小象2 小时前
【通过WSL2安装Ubuntu24.04系统及图形化界面】
linux·ubuntu·图形化界面
青山师2 小时前
ubuntu 开放 8080 端口快捷命令
linux·运维·服务器·ubuntu·虚拟机