【发布时间】:2019-07-31 08:55:26
【问题描述】:
目标:编译samples/bpf,编译bpf/bpftool并使用它们。
问题:在带有内核 4.18.0-25-generic 的 Ubuntu 18.04 仿生虚拟机上,我安装了执行 apt install linux-source-4.18.0 的内核 src 代码。
现在我将cd 转换为/usr/src/linux-source-4.18.0/linux-source-4.18.0/samples/bpf 并运行make,结果是
make -C ../../ /usr/src/linux-source-4.18.0/linux-source-4.18.0/samples/bpf/ BPF_SAMPLES_PATH=/usr/src/linux-source-4.18.0/linux-source-4.18.0/samples/bpf
make[1]: Entering directory '/usr/src/linux-source-4.18.0/linux-source-4.18.0'
scripts/kconfig/conf --syncconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
scripts/kconfig/Makefile:40: recipe for target 'syncconfig' failed
make[3]: *** [syncconfig] Error 1
Makefile:562: recipe for target 'syncconfig' failed
make[2]: *** [syncconfig] Error 2
make[1]: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/kernel.release'. Stop.
make[1]: Leaving directory '/usr/src/linux-source-4.18.0/linux-source-4.18.0'
Makefile:203: recipe for target 'all' failed
make: *** [all] Error 2
如果我将cd 转换为../samples/bpf 并运行sudo make,则结果是
Auto-detecting system features:
... libbfd: [ OFF ]
... disassembler-four-args: [ OFF ]
CC map_perf_ring.o
CC xlated_dumper.o
CC perf.o
CC cfg.o
CC common.o
CC cgroup.o
CC main.o
main.c:36:10: fatal error: bfd.h: No such file or directory
#include <bfd.h>
^~~~~~~
compilation terminated.
Makefile:92: recipe for target 'main.o' failed
make: *** [main.o] Error 1
问题:我错过了什么?在我编译它们之后,如果我想编写一个程序,例如需要使用bpftool,我必须在源内核目录中编写程序,或者我可以在任何地方编写它?
【问题讨论】: