---
title: Requirements
sidebar_position: 1
description: Built-in gadgets kernel requirements.
---

This section summarizes the kernel versions and features that are required to
run the gadgets. This has been generated by testing different Ubuntu versions
and their shipped kernels, hence it's possible that some gadgets work in older
kernels than the one mentioned here.

All gadgets require the following:

1. `CONFIG_BPF=y`
2. `CONFIG_BPF_SYSCALL=y`.
3. `CONFIG_DEBUG_INFO_BTF=y` if the host kernel is not supported by BTFHub.

For all gadgets, the minimum kernel version and additional needed `CONFIG_*` are
listed in the following table:

| Gadget                   | Minimum Kernel          | Additional `CONFIG_*`   |
|--------------------------|-------------------------|-------------------------|
| `advise network-policy`  | U.U                     |                         |
| `advise seccomp-profile` | U.U                     |                         |
| `audit seccomp`          | 5.4                     | `KPROBES`               |
| `profile block-io`       | U.U                     |                         |
| `profile cpu`            | U.U                     |                         |
| `profile tcprtt`         | U.U                     | `KPROBES`               |
| `snapshot process`       | 5.10                    |                         |
| `snapshot socket`        | 5.10                    |                         |
| `top block-io`           | U.U                     | `KPROBES`               |
| `top file`               | 5.4                     | `KPROBES`               |
| `top tcp`                | U.U                     | `KPROBES`               |
| `trace bind`             | 5.4                     | `KPROBES`, `KRETPROBES` |
| `trace capabilities`     | U.U                     | `KPROBES`               |
| `trace dns`              | 5.4                     |                         |
| `trace exec`             | 5.4                     | `FTRACE_SYSCALLS`       |
| `trace fsslower`         | 5.4                     | `KPROBES`, `KRETPROBES` |
| `trace mount`            | U.U                     | `FTRACE_SYSCALLS`       |
| `trace oomkill`          | 5.4                     | `KPROBES`               |
| `trace open`             | 5.4                     | `FTRACE_SYSCALLS`       |
| `trace signal`           | 5.4                     | `FTRACE_SYSCALLS`       |
| `trace sni`              | U.U                     |                         |
| `trace tcp`              | U.U                     |                         |
| `trace tcpconnect`       | 5.8                     | `KPROBES`, `KRETPROBES` |
| `trace tcpdrop`          | 5.18                    |                         |
| `trace tcpretrans`       | 4.15                    |                         |
| `traceloop`              | 4.15                    | `KPROBES`               |

If the kernel version is U.U, it means we do not have this information at the
moment.

[1]: https://github.com/iovisor/bpftrace/blob/master/INSTALL.md#linux-kernel-requirements
