btfgen enables running gadgets on system that don’t provide BTF information. The ig image build command generates a new layer on the gadget image with the BTF information of the types used by the gadget for the most common kernels available in btfhub , this information is then used when running the gadget if the kernel doesn’t have BTF enabled.

    Enabling btfgen

    Given that generating the BTF information for a gadget takes a while, this support is disabled by default.

    The btfhub-archive repository needs to be present on the machine:

    $ git clone --depth 1 $HOME/btfhub-archive/

    Then, pass the --btfgen and the path of the btfhub-archive repository to the build command:

    $ sudo -E ig image build . --btfgen --btfhub-archive $HOME/btfhub-archive -t myimage

    The resulting image will contain the BTF information and can be pushed, run or tagged as any other gadget image.