man bpf
утверждает, что
Полный рабочий код можно найти в каталоге samples / bpf в дереве исходных текстов ядра.
Однако я не могу найти никаких образцов в этом месте:
$ uname -r
5.1.11-200.fc29.x86_64
$ ls /usr/src/kernels/5.1.11-200.fc29.x86_64/samples/bpf
Makefile
sudo make
появляется ошибка по другой причине, но похоже, что Makefile
ожидается наличие образцов в samples/bpf
(BPF_SAMPLES_PATH
):
$ cd /usr/src/kernels/5.1.11-200.fc29.x86_64/
$ sudo make headers_install
$ sudo make samples/bpf/
HOSTCC scripts/selinux/genheaders/genheaders
scripts/selinux/genheaders/genheaders.c:18:10: fatal error: classmap.h: No such file or directory
#include "classmap.h"
^~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.host:92: scripts/selinux/genheaders/genheaders] Error 1
make[2]: *** [scripts/Makefile.build:486: scripts/selinux/genheaders] Error 2
make[1]: *** [scripts/Makefile.build:486: scripts/selinux] Error 2
make: *** [Makefile:1069: scripts] Error 2
Также, репозиторий удаленного ядра Linux включает README с примерами.
Есть ли образцы BPF в каталоге ядра Linux Fedora? Если да, то где они находятся?
Вам потребуется установленный пакет LLVM для компиляции примеров программ в байт-код, который будет выполняться виртуальной машиной в ядре.
Также должны быть установлены заголовки ядра.