Skip to content

Commit 809ab25

Browse files
committed
kernel-image: build a btf file
Older kernels (e.g., 4.19) do not support /sys/kernel/btf/, so just generate and add the btf file into the kernel images. Signed-off-by: Kornilios Kourtis <[email protected]>
1 parent e83dfbd commit 809ab25

File tree

6 files changed

+35
-0
lines changed

6 files changed

+35
-0
lines changed

dockerfiles/kernel-image

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN lvh kernels --dir . fetch 2>&1 ${KERNEL_VER}
88
RUN lvh kernels --dir . configure 2>&1 ${KERNEL_VER}
99
RUN lvh kernels --dir . build 2>&1 ${KERNEL_VER}
1010

11+
COPY scripts/generate-btf.sh /tmp/
12+
RUN /tmp/generate-btf.sh /data/kernels/${KERNEL_VER}/tar-install
13+
1114
FROM busybox
1215
ARG KERNEL_VER=bpf-next
1316
COPY --from=builder /data/kernels/${KERNEL_VER}/tar-install /data/kernels/${KERNEL_VER}

dockerfiles/kernel-image-4.19

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN lvh kernels --dir . fetch 2>&1 ${KERNEL_VER}
88
RUN lvh kernels --dir . configure 2>&1 ${KERNEL_VER}
99
RUN lvh kernels --dir . build 2>&1 ${KERNEL_VER}
1010

11+
COPY scripts/generate-btf.sh /tmp/
12+
RUN /tmp/generate-btf.sh /data/kernels/${KERNEL_VER}/tar-install
13+
1114
FROM busybox
1215
ARG KERNEL_VER=4.19
1316
COPY --from=builder /data/kernels/${KERNEL_VER}/tar-install /data/kernels/${KERNEL_VER}

dockerfiles/kernel-image-5.10

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN lvh kernels --dir . fetch 2>&1 ${KERNEL_VER}
88
RUN lvh kernels --dir . configure 2>&1 ${KERNEL_VER}
99
RUN lvh kernels --dir . build 2>&1 ${KERNEL_VER}
1010

11+
COPY scripts/generate-btf.sh /tmp/
12+
RUN /tmp/generate-btf.sh /data/kernels/${KERNEL_VER}/tar-install
13+
1114
FROM busybox
1215
ARG KERNEL_VER=5.10
1316
COPY --from=builder /data/kernels/${KERNEL_VER}/tar-install /data/kernels/${KERNEL_VER}

dockerfiles/kernel-image-5.4

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN lvh kernels --dir . fetch 2>&1 ${KERNEL_VER}
88
RUN lvh kernels --dir . configure 2>&1 ${KERNEL_VER}
99
RUN lvh kernels --dir . build 2>&1 ${KERNEL_VER}
1010

11+
COPY scripts/generate-btf.sh /tmp/
12+
RUN /tmp/generate-btf.sh /data/kernels/${KERNEL_VER}/tar-install
13+
1114
FROM busybox
1215
ARG KERNEL_VER=5.4
1316
COPY --from=builder /data/kernels/${KERNEL_VER}/tar-install /data/kernels/${KERNEL_VER}

dockerfiles/kernel-image-bpf-next

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN lvh kernels --dir . fetch 2>&1 ${KERNEL_VER}
88
RUN lvh kernels --dir . configure 2>&1 ${KERNEL_VER}
99
RUN lvh kernels --dir . build 2>&1 ${KERNEL_VER}
1010

11+
COPY scripts/generate-btf.sh /tmp/
12+
RUN /tmp/generate-btf.sh /data/kernels/${KERNEL_VER}/tar-install
13+
1114
FROM busybox
1215
ARG KERNEL_VER=bpf-next
1316
COPY --from=builder /data/kernels/${KERNEL_VER}/tar-install /data/kernels/${KERNEL_VER}

scripts/generate-btf.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
if [ -z $1 ]; then
6+
echo "Usage: $0 <kernel_install_dir>"
7+
exit 1
8+
fi
9+
10+
dir="$1"
11+
bootdir="$dir/boot"
12+
13+
for fname in $bootdir/vmlinux-*; do
14+
kernel=$(basename $fname)
15+
ver=$(echo $kernel | sed -e 's/vmlinux-//')
16+
outfile="$bootdir/kernel-${ver}.btf"
17+
rm -f $outfile
18+
pahole --btf_encode_detached=$outfile $fname
19+
echo "Generated $outfile"
20+
done

0 commit comments

Comments
 (0)