wsl2 에서 bcc 설치 및 실행
절차
- wsl2 kernel build
- bcc 설치 및 실행
1. wsl2 kernel build
wsl2 linux kernel source 를 받아서 wsl2 ubuntu 에서 build 한다.
다음 link 에서 kernel source 를 받자.
- Release linux-msft-wsl-5.10.74.3 · microsoft/WSL2-Linux-Kernel · GitHub
- 5.10.74.3 부터 ebpf 관련 flag 가 on 됐다.
build 를 위한 config 설정
- bcc 를 실행하기 위해 kernel build 할 때 다음 flag 들을 설정후 build 해야 한다.
- https://github.com/iovisor/bcc/blob/master/INSTALL.md#kernel-configuration
Microsoft/config-wsl
를<proj_root>
에 copy 해 와서 flag 를 설정하면 된다.
build
cpu : i5-9400F @ 2.9GHz
wsl2 에서 build, 대략 27분 소요
<proj_root>\vmlinux
: build 후 생성된 kernelsudo apt install build-essential flex bison dwarves libssl-dev libelf-dev tar xvf WSL2-Linux-Kernel-linux-msft-wsl-5.10.74.3.tar.gz cd WSL2-Linux-Kernel-linux-msft-wsl-5.10.74.3 # 만약, 커널 버전 이름을 변경하고 싶다면, 아래처럼 하면 된다. 굳이 수정할 필요는 없다. # export KERNELRELEASE=5.10.74.3-microsoft-standard # make KCONFIG_CONFIG=Microsoft/config-wsl KERNELRELEASE=$KERNELRELEASE -j 4 sudo apt-get install flex bison libssl-dev libelf-dev dwarves cp ./Microsoft/config-wsl .config # config path 설정은 아래처럼 할 수 있다. # make KCONFIG_CONFIG=Microsoft/config-wsl -j 4 make -j 4 make modules -j 4 sudo make modules_install
ls /lib/modules/
: /lib/modules 가 만들어진다.
새로 build 한 kernel 을 사용하도록 설정
vmlinux
를 windows 로 복사
mkdir /mnt/c/Users/myuserid/kernel cp vmlinux /mnt/c/Users/myuserid/kernel/vmlinux-5.10.74.3
c:\Users\myuserid\.wslconfig
설정
[wsl2] kernel=c:\\Users\\myuserid\\kernel\\vmlinux-5.10.74.3
새롭게 wsl2 시작
wsl --shutdown wsl -d Ubuntu-20.04 ... # kernel version 확인 uname -r 5.10.74.3-microsoft-standard-WSL2
2. bcc 설치 및 실행
sudo apt-get update
sudo apt-get install bpfcc-tools
sudo opensnoop-bpfcc
opensnoop-bpfcc 를 켜놓은 상태에서 curl 을 한번 쳐보면, 이 tool이 어떻게 동작하는지 볼 수 있다.
opensnoop 은 `open()`` syscall에 대해 한 줄의 출력을 print 한다. 이렇게 어떤 file 이 open 됐는지를 보면서, data file 들, config filed 들 , log file 들이 무엇인지 확인할 수 있다.(참고: 1.2. opensnoop | bcc/docs/tutorial.md)
댓글 없음:
댓글 쓰기