gnu: Add linux-libre-with-bpf.
* gnu/packages/linux (%bpf-extra-linux-options): New variable, (linux-libre-with-bpf): new variable. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
parent
ef20acae83
commit
78410b0969
|
@ -75,6 +75,7 @@
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages calendar)
|
#:use-module (gnu packages calendar)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
|
#:use-module (gnu packages cpio)
|
||||||
#:use-module (gnu packages crypto)
|
#:use-module (gnu packages crypto)
|
||||||
#:use-module (gnu packages cryptsetup)
|
#:use-module (gnu packages cryptsetup)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
@ -619,6 +620,30 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
("CONFIG_CIFS" . m)
|
("CONFIG_CIFS" . m)
|
||||||
("CONFIG_9P_FS" . m)))
|
("CONFIG_9P_FS" . m)))
|
||||||
|
|
||||||
|
;; See https://github.com/iovisor/bcc/blob/master/INSTALL.md#kernel-configuration
|
||||||
|
(define %bpf-extra-linux-options
|
||||||
|
`(;; Needed for probes
|
||||||
|
("CONFIG_UPROBE_EVENTS" . #t)
|
||||||
|
("CONFIG_KPROBE_EVENTS" . #t)
|
||||||
|
;; kheaders module also helpful for tracing
|
||||||
|
("CONFIG_IKHEADERS" . #t)
|
||||||
|
("CONFIG_BPF" . #t)
|
||||||
|
("CONFIG_BPF_SYSCALL" . #t)
|
||||||
|
("CONFIG_BPF_JIT_ALWAYS_ON" . #t)
|
||||||
|
;; optional, for tc filters
|
||||||
|
("CONFIG_NET_CLS_BPF" . m)
|
||||||
|
;; optional, for tc actions
|
||||||
|
("CONFIG_NET_ACT_BPF" . m)
|
||||||
|
("CONFIG_BPF_JIT" . #t)
|
||||||
|
;; for Linux kernel versions 4.1 through 4.6
|
||||||
|
;; ("CONFIG_HAVE_BPF_JIT" . y)
|
||||||
|
;; for Linux kernel versions 4.7 and later
|
||||||
|
("CONFIG_HAVE_EBPF_JIT" . #t)
|
||||||
|
;; optional, for kprobes
|
||||||
|
("CONFIG_BPF_EVENTS" . #t)
|
||||||
|
;; kheaders module
|
||||||
|
("CONFIG_IKHEADERS" . #t)))
|
||||||
|
|
||||||
(define (config->string options)
|
(define (config->string options)
|
||||||
(string-join (map (match-lambda
|
(string-join (map (match-lambda
|
||||||
((option . 'm)
|
((option . 'm)
|
||||||
|
@ -937,6 +962,23 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
'("riscv64-linux")
|
'("riscv64-linux")
|
||||||
#:extra-version "riscv64-generic"))
|
#:extra-version "riscv64-generic"))
|
||||||
|
|
||||||
|
(define-public linux-libre-with-bpf
|
||||||
|
(let ((base-linux-libre
|
||||||
|
(make-linux-libre*
|
||||||
|
linux-libre-5.4-version
|
||||||
|
linux-libre-5.4-source
|
||||||
|
'("x86_64-linux" "i686-linux" "armhf-linux"
|
||||||
|
"aarch64-linux" "riscv64-linux")
|
||||||
|
#:extra-version "bpf"
|
||||||
|
#:configuration-file kernel-config
|
||||||
|
#:extra-options
|
||||||
|
(append %bpf-extra-linux-options
|
||||||
|
%default-extra-linux-options))))
|
||||||
|
(package
|
||||||
|
(inherit base-linux-libre)
|
||||||
|
(inputs `(("cpio" ,cpio) ,@(package-inputs base-linux-libre))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Linux kernel modules.
|
;;; Linux kernel modules.
|
||||||
|
|
Reference in New Issue