### Kernel built-in support
It is also possible to build these modules as part of a kernel image. Simply
-run the [`built-in.sh`](built-in.sh) script with the path to your kernel
-source directory as an argument. It will symlink the lttng-modules directory
-in the kernel sources and add an include in the kernel Makefile.
+run the [`scripts/built-in.sh`](scripts/built-in.sh) script with the path to
+your kernel source directory as an argument. It will symlink the
+lttng-modules directory in the kernel sources and add an include in the kernel
+Makefile.
Then configure your kernel as usual and enable the `CONFIG_LTTNG` option.
Make sure your target kernel has the following config options enabled:
- - `CONFIG_MODULES`: loadable module support
+ - `CONFIG_MODULES`: loadable module support (not strictly required
+ when built into the kernel)
- `CONFIG_KALLSYMS`: see files in [`wrapper`](wrapper); this is
necessary until the few required missing symbols are exported to GPL
modules from mainline
- `CONFIG_HIGH_RES_TIMERS`: needed for LTTng 2.x clock source
- `CONFIG_TRACEPOINTS`: kernel tracepoint instrumentation
(enabled as a side-effect of any of the perf/ftrace/blktrace
- instrumentation features)
+ instrumentation features).
+ - `CONFIG_KPROBES` (5.7+): use kallsyms for kernel 5.7 and newer.
### Supported (optional) kernel config options