Мне нужны заголовки ядра, но нет /lib/modules/[kernel version]/build
или /usr/src/[kernel version]
. Я предполагаю, что они вырвали их, чтобы обрезать изображение.
Мой вариант использования: я использую bpftrace
для отслеживания ядра с помощью kprobes и точек трассировки, и ему необходимо знать определенные определения структур, чтобы знать структуру памяти значений args / ret.
Есть ли простой способ загрузить заголовки для ядра, которое я использую? Я бегаю 1.10.7-gke.6 ALPHA (linux 4.14.65+)
.
Выглядит как:
https://chromium.googlesource.com/chromiumos/third_party/kernel/+/linux/v4.14.65
попали туда через:
https://cloud.google.com/container-optimized-os/docs/resources/sources
Вот сценарий, который я использовал для загрузки исходного кода текущего ядра, извлечения его и распечатки экспорта переменной среды, чтобы получить bpftrace
читать с этого места. Это было необходимо, так как /lib/modules
только для чтения.
#!/bin/bash
set -Eeuo pipefail
kversion=v"$(uname -r | sed -E 's/\+*$//')"
wget "https://chromium.googlesource.com/chromiumos/third_party/kernel/+archive/$kversion.tar.gz"
mkdir kernel
tar xzf "$kversion.tar.gz" -C kernel
echo "export BPFTRACE_KERNEL_SOURCE=$PWD/kernel"