I am attempting to build a kernel for my ARM64 device, while my host architecture is x86_64. I am utilizing Docker as a virtual machine platform, and compiling using the Ubuntu 22.04 system.
After enabling bpf_syscall() in the kernel options and rebuilding the kernel, I encountered this error:
./build.sh kernel
...
Auto-detecting system features:
... libelf: [ OFF ]
... zlib: [ OFF ]
... bpf: [ on ]
No libelf found
make[5]: *** [Makefile:286: elfdep] Error 1
make[4]: *** [kernel/bpf/preload/Makefile:11: kernel/bpf/preload/libbpf.a] Error 2
make[3]: *** [scripts/Makefile.build:516: kernel/bpf/preload] Error 2
make[3]: *** Waiting for unfinished jobs....
...
system info:
root@4417a56bb7d1:~/rk3568_linux5.10_sdk# uname -a
Linux 4417a56bb7d1 5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
I have noticed that some people are experiencing the same issue. But he didn’t fix it.
I attempted to disable the check system because I was able to successfully compile it under the directory ‘resolve_btfids’. However, this approach did not work as the ‘#include <libelf.h>’ statement could not locate the file. The ‘find’ command informed me that the kernel directory does not contain ‘libelf.h’.
How can I import the libelf and zlib library?
Or is there else way to fix it?
root@4417a56bb7d1:~/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids# ARCH=arm64 make
MKDIR /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids//libbpf
Auto-detecting system features:
... libelf: [ on ]
... zlib: [ on ]
... bpf: [ on ]
GEN /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/bpf_helper_defs.h
MKDIR /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/libbpf.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/bpf.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/nlattr.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/btf.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/libbpf_errno.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/str_error.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/netlink.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/bpf_prog_linfo.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/libbpf_probes.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/xsk.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/hashmap.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/btf_dump.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/ringbuf.o
LD /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/staticobjs/libbpf-in.o
LINK /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libbpf/libbpf.a
HOSTCC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/fixdep.o
HOSTLD /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/fixdep-in.o
LINK /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/fixdep
MKDIR /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids//libsubcmd
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/exec-cmd.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/help.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/pager.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/parse-options.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/run-command.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/sigchain.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/subcmd-config.o
LD /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/libsubcmd-in.o
AR /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/libsubcmd/libsubcmd.a
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/main.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/rbtree.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/zalloc.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/string.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/ctype.o
CC /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/str_error_r.o
LD /root/rk3568_linux5.10_sdk/kernel/tools/bpf/resolve_btfids/resolve_btfids-in.o
LINK resolve_btfids