失敗: 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新しい質問のデフォルト値を選択することです(「はい」である必要はありません)。これは問題の一部である可能性があります。

ドワーフがインストールされていることも確認する必要があります。

答え2

実際のエラーの原因は、エラーの上の12行ほどになるようです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

関連情報