Вопрос или проблема
Я пытаюсь проверить, правильно ли установлен bpf
в моем ядре linux. Он включен в ядре, как показано ниже:
jakew@desktop:~$ cat config | grep BPF
CONFIG_CGROUP_BPF=y
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT_ALWAYS_ON=y
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
CONFIG_IPV6_SEG6_BPF=y
CONFIG_NETFILTER_XT_MATCH_BPF=y
CONFIG_BPFILTER=y
CONFIG_BPFILTER_UMH=m
CONFIG_NET_CLS_BPF=y
CONFIG_NET_ACT_BPF=y
CONFIG_BPF_JIT=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_BPF_EVENTS=y
# CONFIG_TEST_BPF is not set
Я попытался установить bpftool
, чтобы проверить bpf
, и, похоже, мне нужно установить его через linux_tools_common с помощью: sudo apt install linux_tools_common
. Когда я попытался запустить bpftool
, мне показала эта ошибка:
WARNING: bpftool not found for kernel 4.19.232
Вам может потребоваться установить следующие пакеты для этого конкретного ядра:
linux-tools-4.19.232-4.19.232
linux-cloud-tools-4.19.232-4.19.232
Вам также может понадобиться установить один из следующих пакетов, чтобы быть в курсе обновлений:
linux-tools-4.19.232
linux-cloud-tools-4.19.232
Однако команда sudo apt install linux-tools-4.19.232
выдала ошибку, что пакет не найден.
Не знаю, как заставить bpftool
работать, чтобы я мог подробнее изучить bpf
?
Спасибо
Наверное, проще установить из исходников. Таким образом, вы также будете уверены, что у вас самая последняя версия.
git clone --recurse-submodules https://github.com/libbpf/bpftool.git
cd bpftool/src
make -j$(nproc)
sudo ./bpftool prog
Ответ или решение
Для решения проблемы с отсутствием утилиты bpftool
для ядра 4.19.232, давайте рассмотрим несколько шагов, которые помогут установить эту утилиту и начать работать с BPF.
Шаг 1: Убедитесь, что ваше ядро поддерживает BPF
Ваш вывод конфигурации показывает, что функция BPF включена в ядре, что является хорошим знаком. Теперь перейдем к установке bpftool
.
Шаг 2: Установка bpftool
из исходников
Поскольку вы столкнулись с проблемами при установке пакетов, рекомендую установить bpftool
из исходников. Это позволит вам получить последнюю версию инструмента и избежать проблем с отсутствием необходимых пакетов.
-
Установите необходимые зависимости:
sudo apt update sudo apt install clang llvm gcc make pkg-config git
-
Клонируйте репозиторий
bpftool
:git clone --recurse-submodules https://github.com/libbpf/bpftool.git
-
Перейдите в папку с кодом:
cd bpftool/src
-
Скомпилируйте
bpftool
:make -j$(nproc)
-
Установите утилиту:
sudo cp bpftool /usr/local/bin/
Шаг 3: Проверка установки
Теперь вы можете проверить, работает ли bpftool
, выполнив команду:
bpftool help
Если вы видите справочную информацию о доступных командах, значит, установка прошла успешно.
Шаг 4: Исследование BPF
После успешной установки bpftool
, вы сможете исследовать различные аспекты BPF в вашем ядре. Например, чтобы вывести список загруженных программ BPF, используйте команду:
bpftool prog show
Заключение
Следуя вышеописанным шагам, вы сможете установить и начать использовать bpftool
для работы с BPF в вашем ядре Linux. Если у вас возникнут другие вопросы или проблемы, не стесняйтесь задавать их. Удачи!