Я занимаюсь разработкой программы eBPF на компьютере с Ubuntu:
$ uname -a
Linux ubuntu-bionic 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Для этого мне понадобятся оба значения bpf.h
для ряда определений bpf_helpers.h
для определений вспомогательных функций. Я установил новое ядро с заголовками:
apt-get update -y
apt-get install -y linux-image-4.18.0-16-generic linux-headers-4.18.0-16-generic
Заголовки включают bpf.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf.h
/usr/src/linux-headers-4.18.0-16/include/uapi/linux/bpf.h
/usr/src/linux-headers-4.18.0-16/include/linux/bpf.h
но не bpf_helpers.h
:
$ find /usr/src/linux-headers-4.18.0-16 -name bpf_helpers.h
Как я могу получить этот файл для своего ядра и почему он не включен в заголовки дистрибутива?
Я мог бы зарезервировать определенную версию ядра Linux или получить файл от master , но в дистрибутиве могли быть внесены изменения в апстрим, что делает это неудобным для меня.