最近在编译5.15.138版本内核的时候,由于启用了BTF功能,导致在编译过程中报错,网上好多教程都存在坑,本人研究测试下来能用,特此记录一下,供有需要的人参考。
一、内核编译环境:centos7
内核配置文件启用参数:CONFIG_DEBUG_INFO_BTF
1、报错一:.tmp_vmlinux.btf: pahole (pahole) is not available
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1161: vmlinux] Error 1
解决方法:
一般是系统缺少dwarves软件包导致,下载安装dwarves软件包即可。
yum install dwarves
2、报错二:pahole版本过低
DESCEND objtool
DESCEND bpf/resolve_btfids
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.a
LD vmlinux

本文详细描述了解决在启用BTF功能时遇到的内核编译错误,包括缺少dwarves软件包及版本过低的问题,提供了CentOS和Kylin环境下的解决方案,包括安装、编译和版本检查步骤。


被折叠的 条评论
为什么被折叠?



