我想建立支持上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/ –