Как получить заголовки ядра на образе 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 ответа

Решение

Вот скрипт, который я использовал для загрузки исходного кода для текущего ядра, его распаковки и распечатки для экспорта переменной среды, чтобы получить 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"
Другие вопросы по тегам