我想建立支持上CentOS 7
eBPF
一个应用程序(内核版本是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
后,我发现<asm-generic/socket.h>
中仍然没有SO_ATTACH_BPF
,所以上面的代码无法成功编译。
如何构建Linux内核以支持SO_ATTACH_BPF
套接字选项?
感谢您的回答!完全用新内核替换整个较旧的内核头文件是否可行?我使用'make headers_install'命令,输出是“CHK include/generated/uapi/linux/version.h INSTALL usr/include/linux /(411 files)”。它将所有文件安装在'/ 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/ –