Я хочу построить приложение, которое поддерживает eBPF
на CentOS 7
(версия ядра 3.10.0
):Как создать ядро Linux для поддержки опции SO_ATTACH_BPF сокета?
if(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, prog_fd, sizeof(prog_f)) {
......
}
Так загрузить версию 4.0.5
, сделайте следующие конфигурации на:
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
Далее следуют это link для сборки и установки ядра 4.0.5
.
После выполнения make modules_install install
, я нахожу, что до сих пор нет SO_ATTACH_BPF
в <asm-generic/socket.h>
, поэтому приведенный выше код нельзя скомпилировать.
Как создать ядро Linux для поддержки SO_ATTACH_BPF
опции сокета?
Спасибо за ваш ответ! Можно ли полностью заменить все старые файлы заголовков ядра новым ядром? Я использую команду 'make headers_install', вывод« CHK include/generated/uapi/linux/version.h INSTALL usr/include/linux/(411 файлов) ». Он устанавливает все файлы в каталоге '/ usr/include/linux'. –
Вы можете использовать/usr в качестве аргумента для INSTALL_HDR_PATH. Лучшее объяснение того, как использовать headers_install, можно найти здесь: http://lxr.free-electrons.com/source/Documentation/kbuild/headers_install.txt. Однако, я считаю, что пример «/ usr/include» неверен, так как в моих экспериментах это создало/usr/include/include. –
Однако имейте в виду, что на это есть противоречивые ответы, а некоторые из них сообщили о проблемах при использовании/usr в качестве аргумента. http://www.linuxquestions.org/questions/linux-newbie-8/make-headers_install-deleted-header-files-944363/ –