失败:从 vmlinux 加载 BTF:没有此文件或目录

失败:从 vmlinux 加载 BTF:没有此文件或目录

在尝试构建支持 Ftrace 和调试信息的内核(4.15)时,我收到以下错误:

       FAILED: load BTF from vmlinux: No such file or directory
       Makefile:1160: recipe for target 'vmlinux' failed

这就是我正在尝试的:

       $ ./scripts/config -e CONFIG_FTRACE
       $ ./scripts/config -e CONFIG_DEBUG_INFO
       $ ./scripts/config -e CONFIG_DEBUG_INFO_DWARF5
       $ ./scripts/config -e CONFIG_BPF_SYSCALL
       $ ./scripts/config -e CONFIG_DEBUG_INFO_BTF
       $ ./scripts/config -d CONFIG_DEBUG_INFO_REDUCED
       $ yes "" | make oldconfig
       $ make -j$(nproc) Image dtbs modules

这个问题似乎与这个问题不同:

编译 kernel-5.9.1 时,“失败:从 vmlinux 加载 BTF:未知错误 -2make:*** [Makefile:1162:vmlinux] 错误 255”

答案1

我不知道你为什么要在 2022 年安装内核 4.15,但除此之外你不应该运行yes "" | make oldconfig.这将为新问题选择“是”。您可能想要的是make olddefconfig为新问题选择默认值(这不一定是“是”)。这可能是您问题的一部分。

您还应该确保安装了 dwarves。

答案2

看来错误的实际原因可能就在错误的上面十几行左右load BTF from vmlinux: No such file or directory

就我而言,这是一个警告(是的,这是一个警告,因为它不会中断构建)

           […]
           BTF     .btf.vmlinux.bin.o
         btf_encoder__encode: btf__dedup failed!
         Failed to encode BTF
           […]

...这个问题是早期开发阶段的回归,我通过禁用CONFIG_X86_KERNEL_IBT.

相关内容