租了一个HECS(云耀云服务器)。版本如下
Linux hecs-70262 5.4.0-173-generic #191-Ubuntu SMP Fri Feb 2 13:55:07 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
CONFIG_DEBUG_INFO_BTF=y状态开启。
bpftool的版本能用。bpftool --version指令能运行。
源码src/文件夹里有
linux-headers-5.4.0-153 linux-headers-5.4.0-173 linux-headers-5.4.0-26 linux-source-5.4.0
linux-headers-5.4.0-153-generic linux-headers-5.4.0-173-generic linux-headers-5.4.0-26-generic linux-source-5.4.0.tar.bz2
也运行了源码解压指令。
但是生成vmlinux.h时总会报错。
我发现这个问题是因为我的vmlinux是个data文件,不是elf文件。但是这是为什么啊?不应该linux最初始自动生成就是elf文件吗?
应该怎么转变成elf文件呢?为什么自动生成的都会错啊?
bpftool生成vmlinux.h报错
-
- 帖子: 1
- 注册时间: 2024-03-17 16:13
- 系统: 9.4.0-1ubuntu1~20.04
- astolia
- 论坛版主
- 帖子: 6463
- 注册时间: 2008-09-18 13:11
Re: bpftool生成vmlinux.h报错
你把内核的vmlinux和/sys/kernel/btf/vmlinux弄混了,后者本来就不是elf文件。据 https://www.kernel.org/doc/Documentatio ... kernel-btf,它是 Read-only binary attribute exposing kernel's own BTF type information with description of all internal kernel types
你用的是
代码: 全选
bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h