Skip to content

Instantly share code, notes, and snippets.

@tudoanh
Last active November 19, 2025 02:43
Show Gist options
  • Select an option

  • Save tudoanh/eb852e848fe5bdaf6a9f904f0b9100f3 to your computer and use it in GitHub Desktop.

Select an option

Save tudoanh/eb852e848fe5bdaf6a9f904f0b9100f3 to your computer and use it in GitHub Desktop.
Compare models

Based on the research, the answer is yes, but it depends on the specific minor version of Rocky Linux 8 you are running.

The "default kernel" for Rocky Linux 8 is version 4.18.0, which is technically older than the official minimum (5.8+) required for the modern eBPF driver. However, Red Hat (and thus Rocky Linux) has extensively backported the necessary BPF features to later updates of this kernel.

Here is the detailed breakdown:

1. It works on recent Rocky Linux 8 versions (e.g., 8.7+)

If you are running a fully updated Rocky Linux 8 system (e.g., 8.7, 8.8, 8.9, or 8.10), the default kernel (currently 4.18.0-5xx) includes the two critical features required for the modern eBPF probe:

  • BTF (BPF Type Format): Enabled in RHEL/Rocky 8 kernels starting roughly around version 8.2/8.3.
  • BPF Ring Buffer: Backported in later RHEL/Rocky 8 releases (verified present in 8.7+ release notes).

Users have reported success running the Falco modern eBPF driver on RHEL 8.10 kernels (e.g., 4.18.0-553).

2. It will NOT work on older Rocky Linux 8 versions (e.g., 8.0 - 8.5)

If you are using an old ISO or have not updated your kernel in several years, the modern driver will fail. The older 4.18 kernels lack the BPF Ring Buffer backports.

  • Solution: dnf update kernel to get the latest 4.18 version.

3. How to Verify Compatibility

You can quickly check if your current kernel supports the necessary features by looking for the BTF file and Ring Buffer availability:

  1. Check for BTF:

    ls -l /sys/kernel/btf/vmlinux

    If this file exists, your kernel has BTF support.

  2. Check for Ring Buffer: You can check the boot config (usually found in /boot/config-$(uname -r)) for the ring buffer feature:

    grep BPF_ringbuf /boot/config-$(uname -r)

    Note: Since it is a backport, it might not always appear as a standard config flag in the same way as upstream, but if the modern probe loads, this feature is present.

Summary

Driver Type Supported on Rocky 8? Notes
Modern eBPF YES (on updated systems) Requires recent 4.18.0-xxx updates (Rocky 8.7+). Recommended if available.
Legacy eBPF YES Works on almost all Rocky 8 versions. Use this if the modern probe fails.
Kernel Module YES The default fallback, but less secure/stable than eBPF.

Recommendation: Try using the modern eBPF driver first. If Falco fails to start with an error regarding "ring buffer" or "BTF", switch to the Legacy eBPF driver (driver.kind: ebpf), which is fully supported on all Rocky Linux 8 versions.

I'll search for information about Falco's modern eBPF driver compatibility with Rocky Linux 8 and its default kernel.Based on my research, I can provide you with a clear answer about Falco's modern eBPF driver compatibility with Rocky Linux 8.

Answer: NO - Modern eBPF driver will NOT work on Rocky Linux 8 with the default kernel

Here's why:

Kernel Version Requirements:

The modern eBPF probe doesn't require a specific kernel version, but usually all versions >=5.8 are enough, though there are cases where required features could be backported into older kernels. More specifically, Linux kernel version 5.8 is the first kernel that supports all necessary features, though these features could also be backported into older kernels.

Rocky Linux 8 Default Kernel:

Rocky Linux 8.10 has kernel version 4.18.0-553, which is significantly lower than the required 5.8 minimum.

What This Means:

Since Rocky Linux 8 uses a kernel version 4.18.x (based on RHEL 8), which is well below the 5.8 requirement, the modern eBPF driver will not work out of the box.

Alternative Options:

  1. Use the Legacy eBPF probe: The legacy eBPF probe requires at least Linux kernel version 4.14, with the Falco project suggesting an LTS kernel of 4.14/4.19 or above. This would work with Rocky Linux 8.

  2. Use the Kernel Module: The kernel module is the most commonly used driver for Falco and will work regardless of kernel version.

  3. Upgrade to Rocky Linux 9: Rocky Linux 9 uses kernel 5.14.x, which would support the modern eBPF driver.

Recommendation:

For Rocky Linux 8, use either the legacy eBPF probe or the kernel module driver instead of the modern eBPF driver.

Based on the search results and technical requirements for Falco's drivers, here is the research check regarding running Falco with the modern eBPF driver on Rocky Linux 8 with the default kernel.

Conclusion: No, it is not supported.

You likely cannot run Falco with the modern_ebpf driver on Rocky Linux 8 with its default kernel. You must use the standard eBPF driver (or the kernel module) instead.

Technical Analysis

1. "Modern eBPF" Kernel Requirement (5.8+) The Falco Modern eBPF probe (introduced experimentally in 0.34 and production-ready in 0.35) is designed to leverage newer Linux kernel features, specifically CO-RE (Compile Once - Run Everywhere) and the BPF Ring Buffer data structure.

  • Requirement: To use the modern_ebpf engine, Falco generally requires Linux Kernel 5.8 or later because it relies on BPF_MAP_TYPE_RINGBUF, which was introduced in kernel 5.8 falco.org.

2. Rocky Linux 8 Default Kernel (4.18)

  • Kernel Version: Rocky Linux 8 (like RHEL 8) runs on a kernel based on 4.18 (e.g., 4.18.0-xxx).
  • Missing Features: While Red Hat backports many features (including BTF support in later 8.x minor versions), the BPF_MAP_TYPE_RINGBUF infrastructure required by Falco's modern probe is not present in the 4.18 kernel family. The 4.18 kernel uses the older BPF_MAP_TYPE_PERF_EVENT_ARRAY.

Solution/Workaround

To run Falco on Rocky Linux 8, you should use the Standard eBPF driver or the traditional Kernel Module.

Capability Modern eBPF (modern_ebpf) Standard eBPF (ebpf) Kernel Module (kmod)
Target Kernel 5.8+ 4.17+ (Compatible with Rocky 8) All supported versions
Compilation Pre-compiled (CO-RE) Compiled on host (needs clang/llvm) Compiled on host (needs gcc)
Rocky 8 Status Not Supported Supported Supported

How to configure Rocky Linux 8 for Falco

Since there are typically no pre-built drivers for specific Rocky Linux kernels, you often need to build the local driver.

  1. Install Dependencies: Ensure you have the kernel headers and clang/llvm installed to build the standard probe.
    sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) clang llvm
  2. Configure Falco: Edit /etc/falco/falco.yaml to use the standard eBPF driver instead of modern.
    engine:
      kind: ebpf  # Use 'ebpf', NOT 'modern_ebpf'
  3. Start Falco: Falco will attempt to compile the eBPF probe locally using falco-driver-loader when the service starts.

Sources:

Short answer: Yes, Falco with the modern eBPF driver can run on a fully updated Rocky Linux 8 (8.3+), using the default 4.18.x kernel — but not necessarily on very old 8.0–8.2 kernels.

Below is the reasoning and how you can verify it on your system.


1. What the modern eBPF driver needs

Falco’s docs say the modern_ebpf driver does not depend on a fixed kernel version, but it does require two kernel features:

  1. BPF ring buffer support
  2. BTF (BPF Type Format) exposed by the kernel

They note that kernels $\ge 5.8$ usually satisfy this, but older kernels can work if these features are backported. (falco.org)

Falco auto-detects these features; if they’re missing, modern eBPF won’t be used.


2. What Rocky Linux 8 provides

Rocky Linux 8 is RHEL 8–compatible and uses a backported $4.18$ kernel series.

BTF support

Cisco’s BTF compatibility list explicitly states that Rocky Linux 8.3 and later have CONFIG_DEBUG_INFO_BTF enabled by default in their latest kernels. (cisco.com)
So:

  • Rocky 8.3+ default kernel → BTF: yes
  • Rocky 8.0–8.2 default kernel → BTF: not guaranteed

BPF ring buffer support

RHEL 8’s $4.18$ kernel has BPF ring buffer support backported; in fact, there are security advisories specifically for BPF ringbuf issues in RHEL 8 / Rocky 8 kernels (patched in later $4.18.0$-xxx builds), which implicitly confirms ringbuf is present in those kernels. (security.snyk.io)

So for a fully updated Rocky 8.3+ system, both required features (BTF + ringbuf) are present in the stock $4.18$ kernel.


3. Practical conclusion

  • Rocky Linux 8.3 or newer, fully updated, using the default Rocky kernel
    → Falco’s modern_ebpf driver should work, and since Falco $0.38.0+$ uses modern_ebpf as the default where supported, it will usually just run. (falco.org)

  • Rocky Linux 8.0–8.2, or an old/unpatched 8.x kernel
    → Modern eBPF may fail because BTF is not guaranteed; you may have to use:

    • the kernel module driver, or
    • the legacy eBPF driver (engine.kind: ebpf).

4. How to check on your Rocky 8 host

  1. Check kernel version and Rocky minor release
cat /etc/rocky-release
uname -r

If /etc/rocky-release shows Rocky Linux release 8.3 or later and you’re on the latest 4.18.0-... kernel from Rocky, you’re in the “likely supported” category.

  1. Verify modern eBPF prerequisites directly (recommended)

Install bpftool if needed:

sudo dnf install bpftool

Then check for ringbuf and tracing support (Falco docs provide exactly these commands): (falco.org)

sudo bpftool feature probe kernel | grep -q "map_type ringbuf is available" && echo "ringbuf: OK" || echo "ringbuf: MISSING"
sudo bpftool feature probe kernel | grep -q "program_type tracing is available" && echo "tracing: OK" || echo "tracing: MISSING"

If both show OK, your kernel satisfies the modern eBPF requirements.

  1. Force Falco to use modern eBPF

In falco.yaml:

engine:
  kind: modern_ebpf

Or via CLI:

falco --modern-bpf

If Falco starts and you see events, you’re good. If it errors about missing BPF features, fall back to engine.kind: ebpf or kmod.


Bottom line

  • Yes – on a fully updated Rocky Linux 8.3+ with the stock 4.18 kernel, Falco’s modern eBPF driver is supported and should work.
  • On older or not-updated Rocky 8, it might not; use the bpftool checks above to know for sure, or fall back to the legacy eBPF or kernel module drivers.

Research Check: Can Falco with Modern eBPF Driver Run on Rocky Linux 8 with Default Kernel?

I'll break this down step by step based on my research using web searches and direct browsing of official Falco documentation. The query appears to ask if Falco (an open-source runtime security tool) can run using its modern eBPF driver (likely referring to the "modern_bpf" probe, which is a CO-RE eBPF implementation) on Rocky Linux 8 with its default kernel. I'll explain the findings, sources, and conclusion.

Step 1: What is Rocky Linux 8's Default Kernel?

  • Rocky Linux 8 is a community-driven, RHEL-compatible distribution based on Red Hat Enterprise Linux (RHEL) 8.
  • The default kernel shipped with Rocky Linux 8 is version 4.18.x (specifically, something like 4.18.0-xxx.el8, depending on the exact release and updates).
  • This is consistent across sources:
    • Official Rocky Linux docs and Wikipedia confirm it's aligned with RHEL 8's kernel.
    • Guides from sites like PhoenixNAP and LinuxCapable note that Rocky/AlmaLinux 8 defaults to 4.x kernels, with 4.18 as the base.
  • Note: Users can upgrade to newer kernels (e.g., via ELRepo for 5.x or 6.x), but the query specifies the default kernel, so I'll stick to 4.18.

Step 2: What is Falco's "Modern eBPF Driver"?

  • Falco monitors system calls and events for security threats by instrumenting the Linux kernel.
  • It supports multiple drivers:
    • Kernel module: Traditional method, inserts code into the kernel.
    • Legacy eBPF probe: Uses eBPF for kernels >=4.14, compiles on-the-fly.
    • Modern eBPF probe (modern_bpf): A newer, more efficient eBPF implementation using libbpf and CO-RE (Compile Once - Run Everywhere). It's embedded in the Falco binary, doesn't require compilation, and is designed for better performance and portability.
  • The modern eBPF probe is production-ready as of Falco 0.35.0 (June 2023) and later versions (as of November 2025, Falco is at versions like 0.38.x or higher).

Step 3: Kernel Requirements for Falco's Modern eBPF Driver

  • Minimum kernel version: Officially, >=5.8 is required for full support. This is because it depends on specific eBPF features introduced in 5.8.
  • Key required features (checked dynamically via libbpf in Falco 0.35.0+):
    • BPF Ring Buffer (map type BPF_MAP_TYPE_RINGBUF): Introduced in Linux 5.8.
    • BTF Tracing Programs (BPF Type Format for tracing): Fully supported with enhancements in 5.8+.
  • If these features are missing, Falco will error out (e.g., "ring buffer map type is not supported").
  • For older kernels (like 4.18), these features are not present in the standard upstream Linux kernel. RHEL/Rocky 8's 4.18 kernel includes some eBPF backports (as RHEL supports basic eBPF), but not BPF Ring Buffer or full BTF tracing—those are 5.8+ innovations.
  • From Falco's official blog (June 2023): While Falco 0.35.0 shifted to feature-based checks (instead of strict version checks), this primarily helps with edge cases or backported kernels. Standard 4.18 lacks the core features, so it won't work.
  • Legacy eBPF or kernel module do work on 4.18 (Falco requires >=4.14 for basic eBPF).

Step 4: Compatibility with Rocky Linux 8 Specifically

  • Rocky Linux 8 (with default kernel 4.18) supports Falco in general:
    • It can use the kernel module or legacy eBPF probe without issues.
    • RHEL 8 (and thus Rocky 8) has eBPF enabled in its kernel config.
  • However, the modern eBPF driver does not work on kernel 4.18 due to missing features.
  • If you upgrade the kernel to >=5.8 (e.g., via ELRepo's kernel-ml or kernel-lt packages), modern eBPF would work. But again, the default is 4.18.
  • No evidence in 2025-era docs suggests Falco has backported modern eBPF to 4.18—it's tied to upstream kernel capabilities.

Conclusion: Can It Run?

  • No, Falco with the modern eBPF driver cannot run on Rocky Linux 8 with its default kernel (4.18.x). The kernel lacks essential eBPF features like BPF Ring Buffer, which are required and only available in kernels >=5.8.
  • Alternatives:
    • Use Falco's kernel module or legacy eBPF probe—these are compatible with kernel 4.18 and are the defaults for older systems.
    • To use modern eBPF, upgrade your kernel (e.g., install kernel 5.15+ via dnf install kernel-ml from ELRepo) or switch to a newer distro like Rocky Linux 9 (default kernel 5.14).
  • If your query meant something else (e.g., legacy eBPF instead of "modern"), Falco does run fine on Rocky 8 defaults using other drivers.

Sources Used for Research

If you provide more details (e.g., exact Falco version or if you mean legacy eBPF), I can refine this!

Falco with the modern eBPF driver can run on RockyLinux 8, but there are important kernel version requirements to consider. The modern eBPF driver generally needs Linux kernel version 5.8 or higher, whereas RockyLinux 8’s default kernel is typically 4.18, which does not meet this requirement. If your RockyLinux 8 system is running the default kernel (4.18.x), the modern eBPF driver will likely not function out of the box. To use modern eBPF, you would need to upgrade to a compatible kernel (preferably ≥5.8, such as those available via ELRepo).[1][2][3][4][5]

Kernel Requirements for Modern eBPF

  • Modern eBPF probe is supported for kernel versions 5.8 and above.[2][3]
  • Some features may be backported, but most default installations of RockyLinux 8 use an older kernel (4.18), which is insufficient.[4]
  • Upgrading your kernel on RockyLinux 8 (for example, through ELRepo to 5.x or newer) will allow Falco’s modern eBPF driver to work.[1]

Falco Installation on RockyLinux 8

  • When prompted during installation, you can select the modern eBPF option if your kernel is compatible.[6][7]
  • Falcoctl will attempt to use modern eBPF if available; otherwise fallback to legacy eBPF or the kernel module.[8][5]
  • If using an older kernel, you may need to stick to the legacy eBPF probe or kernel module driver.[2]

Guidance

  • Check your current kernel version with uname -r before attempting to use Falco with the modern eBPF driver.
  • Upgrade the kernel if necessary using ELRepo or similar sources before installing Falco with modern eBPF.[1]

In summary, Falco’s modern eBPF driver does not work reliably with RockyLinux 8's default (4.18) kernel—you must upgrade to kernel 5.8 or newer for full support.[3][4][2][1]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment