BTF:.tmp_vmlinux.btf:pahole 版本 v1.15 太旧,至少需要 v1.16

BTF:.tmp_vmlinux.btf:pahole 版本 v1.15 太旧,至少需要 v1.16

当我尝试制作主线(暂存测试)内核时,最终出现错误

BTF: .tmp_vmlinux.btf: pahole version v1.15 is too old, need at least v1.16\
Failed to generate BTF for vmlinux\
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1162: vmlinux] Error 1

因此,当我谷歌搜索时,我发现要安装矮人。
当我安装它时,它显示它已经存在,并且这是较新的版本,即 V1.15-2。因此它不会升级到 V1.16+,但最近发布的是 V1.18+

这是我的发行版和内核版本,

分销商 ID:Ubuntu
描述:Ubuntu 20.04.1 LTS
发行版:20.04
代号:focal

Linux 5.9.0-050900rc7-通用 x86_64 GNU/Linux

我该如何解决这个问题?

答案1

感谢您的回复,我已获得 dwarvesV1.17 的 .deb 文件,pahole 已升级到 V1.17。以下是链接http://archive.ubuntu.com/ubuntu/pool/universe/d/dwarves-dfsg/dwarves_1.17-1_amd64.deb

答案2

嘿,我是新手,找到了一种解决 pahole 错误的方法。

无论如何,经过一些实验,看起来矮人出于某种原因从 elfutils 中被移除了,因此 pahole 也被移除了。要获取它,请访问此处:

https://rpmfind.net/linux/rpm2html/search.php?query=libdwarves&submit=Search+..

然后下载正确的版本或获取链接并在 wget 中使用它,如下所示。为什么 yum 找不到矮人我不确定。

wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/l/libdwarves1-1.17-4.fc34.x86_64.rpm
yes | sudo yum install libdwarves1-1.17-4.fc34.x86_64.rpm

wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/d/dwarves-1.17-4.fc34.x86_64.rpm
yes | sudo yum install dwarves-1.17-4.fc34.x86_64.rpm`

完成此操作并运行后,pahole --version我得到了 v1.17

顺便说一句,我仍然收到“无法编码 BTF”错误,但内核编译成功,我可以在接下来的安装步骤后启动它。那是昨晚使用内核 v5.8.13 时的情况

现在我的问题是“从 vmlinux 加载 btf”失败,这可能与此类似。我在 5.8.13 上没有遇到此错误,现在我无法安装 5.8.14

祝你好运。

相关内容