Назад | Перейти на главную страницу

Примеры BPF в Fedora

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 для компиляции примеров программ в байт-код, который будет выполняться виртуальной машиной в ядре.

Также должны быть установлены заголовки ядра.