This is the strace output: access("/boot/vmlinux-5.13.2-1-default", R_OK) = -1 ENOENT (No such file or directory) access("/lib/modules/5.13.2-1-default/vmlinux-5.13.2-1-default", R_OK) = -1 ENOENT (No such file or directory) access("/lib/modules/5.13.2-1-default/build/vmlinux", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/modules/5.13.2-1-default/kernel/vmlinux", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/debug/boot/vmlinux-5.13.2-1-default", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/debug/boot/vmlinux-5.13.2-1-default.debug", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/debug/lib/modules/5.13.2-1-default/vmlinux", R_OK) = -1 ENOENT (No such file or directory) write(2, "libbpf: failed to find valid ker"..., 40libbpf: failed to find valid kernel BTF Seems like we are not exposing BTF info in any directory that libbpf expects it to be in.