Как получить заголовки ядра на образе GKE ContainerOS?
Мне нужны заголовки ядра, но нет /lib/modules/[kernel version]/build
или же /usr/src/[kernel version]
, Я предполагаю, что они разорвали их, чтобы обрезать изображение.
Мой вариант использования: я использую bpftrace
чтобы проследить ядро, используя kprobes и tracepoints, ему нужно знать определенные определения структуры, чтобы узнать расположение в памяти значений args/ret.
Есть ли простой способ загрузить заголовки для ядра, которое я запускаю? я бегу 1.10.7-gke.6 ALPHA (linux 4.14.65+)
,
2 ответа
Похоже:
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"