Como obtenho cabeçalhos de kernel na imagem GKE ContainerOS?

2

Eu preciso dos cabeçalhos do kernel, mas não há /lib/modules/[kernel version]/build ou /usr/src/[kernel version] . Eu estou supondo que eles rasgaram aqueles para reduzir a imagem.

Meu caso de uso: estou usando bpftrace para rastrear o kernel usando kprobes e pontos de rastreio e ele precisa conhecer certas definições de struct para saber o layout de memória dos valores de args / ret.

Existe uma maneira fácil de baixar os cabeçalhos para o kernel que estou executando? Estou executando 1.10.7-gke.6 ALPHA (linux 4.14.65+) .

    
por Jason Keene 31.10.2018 / 19:43

2 respostas

4

Parece:

link

foram levados até lá por:

link

    
por 31.10.2018 / 19:52
2

Aqui está o script que eu usei para baixar a fonte do kernel atual, extraí-lo e imprimir a exportação da variável de ambiente para obter bpftrace para ler a partir desse local. Isso foi necessário, pois /lib/modules é somente leitura.

#!/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"
    
por 01.11.2018 / 03:00