WSL2安装BCC

从去年就开始想办法在 WSL2 上安装 BCC,但无论是官方教程1还是网上的其它解决方法2都没能很好地解决问题。直到今天,在综合了一堆方案后,终于完美解决。下面是具体的步骤:

当前系统版本信息

$ wsl --version
WSL 版本: 2.2.1.0
内核版本: 5.15.150.1-2
  1. 下载内核:

    git clone --depth 1 https://github.com/microsoft/WSL2-Linux-Kernel.git -b linux-msft-wsl-$(uname -r | cut -d '-' -f 1)
    cd WSL2-Linux-Kernel
    
  2. 安装必要工具:

    sudo apt install flex bison build-essential libelf-dev libncurses-dev libssl-dev bc binutils dwarves
    
  3. 复制配置文件:

    cp Microsoft/config-wsl .config
    

    .config 中修改以下选项:

    CONFIG_BPF=y
    CONFIG_BPF_SYSCALL=y
    CONFIG_NET_CLS_BPF=m
    CONFIG_NET_ACT_BPF=m
    CONFIG_BPF_JIT=y
    CONFIG_HAVE_BPF_JIT=y
    CONFIG_HAVE_EBPF_JIT=y
    CONFIG_BPF_EVENTS=y
    CONFIG_IKHEADERS=m
    CONFIG_NET_SCH_SFQ=m
    CONFIG_NET_ACT_POLICE=m
    CONFIG_NET_ACT_GACT=m
    CONFIG_DUMMY=m
    CONFIG_VXLAN=m
    
  4. 获取内核版本:

    export KERNELRELEASE=$(uname -r)
    

    编译:

    make KERNELRELEASE=$KERNELRELEASE -j 4
    make KERNELRELEASE=$KERNELRELEASE modules -j 4
    sudo make KERNELRELEASE=$KERNELRELEASE modules_install
    
  5. 挂载:

    sudo mount -t debugfs debugfs /sys/kernel/debug
    
  6. 按照官方文档安装 BCC。例如,对于 Ubuntu:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD
    echo "deb https://repo.iovisor.org/apt/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/iovisor.list
    sudo apt-get update
    sudo apt-get install bcc-tools libbcc-examples linux-headers-$(uname -r)
    

    需要注意的是,BCC 官方编译好的版本只给到了 bionic(Ubuntu 18.04 LTS)3,如果你的系统版本在此之上,就不得不从源码自己编译。

  7. 如果要从源码编译,首先要安装必要的工具链

    如果你自己之前折腾过了,先清理一下,不然会出问题:

    sudo rm /usr/lib/python3/dist-packages/bcc*
    

    例如,对于我的 jammy(Ubuntu 22.04 LTS):

    sudo apt install -y zip bison build-essential cmake flex git libedit-dev libllvm14 llvm-14-dev libclang-14-dev python3 zlib1g-dev libelf-dev libfl-dev python3-setuptools liblzma-dev libdebuginfod-dev arping netperf iperf
    sudo ln -s /usr/bin/python3 /usr/bin/python
    

    然后编译安装 BCC:

    git clone https://github.com/iovisor/bcc.git
    mkdir bcc/build; cd bcc/build
    cmake ..
    make
    sudo make install
    cmake -DPYTHON_CMD=python3 ..
    pushd src/python/
    make
    sudo make install
    popd
    
  8. 确认安装成功:

    cd /usr/share/bcc/tools
    sudo ./execsnoop
    

    祝愿你此刻没有任何报错!

后续使用时,如果你重启过系统,只需要重新编译安装一下内核即可。


  1. https://github.com/iovisor/bcc/blob/master/INSTALL.md#ubuntu—binary ↩︎

  2. https://gist.github.com/MarioHewardt/5759641727aae880b29c8f715ba4d30f ↩︎

  3. https://repo.iovisor.org/apt/ ↩︎

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值