[lttng-dev] loading modules with modprobe

Kienan Stewart kstewart at efficios.com
Tue Jul 16 15:41:18 EDT 2024


Hi François,

On 7/16/24 3:01 PM, François Belias wrote:
> Hello Kienan,
> 
> I've continued investigating my issue and discovered something new that 
> might shed some light. Here's the rundown:
> 
> 1. To ensure my add-ons weren't causing problems, deleted all old 
> modules and I followed the documentation on the LTTng website 
> (https://lttng.org/docs/v2.13/#doc-building-from-source 
> <https://lttng.org/docs/v2.13/#doc-building-from-source>) and downloaded 
> `lttng-modules-2.13.13`.
> 
> 2. Inside the downloaded folder, I successfully executed `make 
> KERNELDIR=/usr/src/linux-source-6.5.0` without any issues.
> 
> 3. Subsequently, I ran `make KERNELDIR=/usr/src/linux-source-6.5.0 
> modules_install`, which also completed successfully.
> 
> 4. After that, I updated the module dependencies using `sudo depmod -a`, 
> which went fine.
> 
> However, when I tried to load a module, such as `sudo modprobe 
> lttng-probe-kvm`, it reported that the module couldn't be found at 
> `/lib/modules/6.5.0-41-generic/`. Upon checking the logs, I confirmed 
> that step 3 had installed the modules in `/lib/modules/6.5.0/`.
> 
> To address this, I modified step 3 to simply `make modules_install`, 
> which then installed the modules correctly at 
> `/lib/modules/6.5.0-41-generic/` and ran again step 4. But now, when 
> attempting to load a module, I'm encountering the error `modprobe: 
> ERROR: could not insert 'lttng_probe_kvm': Exec format error`.
> 
> Do you have any insights or ideas on what might be causing this issue?
> 

It sounds like /usr/src/linux-source-6.5.0 is not correct source for the 
kernel that you are currently running.

When running `make modules_install` in your modified step 3 (without 
KERNELDIR set), the modules were installed for your current kernel 
directory as auto-detected by the build script.

What happens if you do the following

```
unset KERNELDIR

# Warning: this removes all untracked content from the lttng-modules 
directory
cd /path/to/lttng-modules-source
git clean -dxf

make
sudo make modules_install
sudo depmod -a
```

KERNELDIR is set based on the current running kernel: `uname -r`. C.f. 
https://github.com/lttng/lttng-modules/blob/434e86eea846b33cad57f1d8105089905f541853/Makefile#L16C1-L16C50

A couple of questions for you:

- Where did /usr/src/linux-source-6.5.0 come from?
- Which linux distribution + version are you using?
- Assuming your distribution has kernel packages, which do you have 
installed, and do you have the corresponding kernel headers package 
installed?

thanks,
kienan

> Thanks again for your assistance.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Le mar. 16 juill. 2024, à 09 h 05, Kienan Stewart <kstewart at efficios.com 
> <mailto:kstewart at efficios.com>> a écrit :
> 
>     Hi François,
> 
>     On 7/15/24 6:10 PM, François Belias via lttng-dev wrote:
>      > Hello,
>      >
>      > I'm currently running Linux kernel version 6.5.0-41-generic and
>      > attempting to install LTTng from source. Here are the steps I
>     followed:
>      >
>      >   - I cloned the LTTng git repository to my computer from
>      >
>     [https://github.com/lttng/lttng-modules.git](https://github.com/lttng/lttng-modules.git) <https://github.com/lttng/lttng-modules.git%5D(https://github.com/lttng/lttng-modules.git)> <https://github.com/lttng/lttng-modules.git](https://github.com/lttng/lttng-modules.git) <https://github.com/lttng/lttng-modules.git%5D(https://github.com/lttng/lttng-modules.git)>>.
>      > - Downloaded the kernel source tree corresponding to my kernel
>     version
>      > to enable compilation.
>      > - Executed `make KERNELDIR=/path/to/my/linux/source`, which was
>      > completed successfully.
>      > - Ran `make KERNELDIR=/path/to/my/linux/source modules_install`,
>     also
>      > without any issues.
>      > - Finally, I executed `sudo depmod -a`, which was completed
>     successfully.
>      >
>      > However, when I attempt to load a module with commands like `sudo
>      > modprobe lttng-ketprobes` or "sudo modprobe lttng-tracer", I
>     encounter
>      > the following errors:
>      >
>      > - For `lttng-ketprobes`: `modprobe: FATAL: Module lttng-ketprobes
>     not
>      > found in directory /lib/modules/6.5.0-41-generic`.
>      > - For `lttng-tracer`: `modprobe: ERROR: could not insert
>     'lttng_tracer':
>      > Exec format error`.
> 
>     If you rebuilt modules on the master branch as of yesterday you may
>     need
>     to clean the LTTng modules install directory, rebuild, and reinstall.
> 
>     This is due to kprobes, kretprobes, and uprobes modules being included
>     in the tracer core module. C.f.
>     https://github.com/lttng/lttng-modules/commit/0c2c6606eb66cb5222ab7a2a4f8329fd5dfdef70 <https://github.com/lttng/lttng-modules/commit/0c2c6606eb66cb5222ab7a2a4f8329fd5dfdef70>
> 
>     You may want to stick with running lttng-modules 2.13.x which will not
>     have breaking changes merged in.
> 
>     The exec format error also could be due to modules that are installed
>     but built against a different version of the Linux kernel.
> 
>     A few things to check
> 
>     - If your kernel has been upgraded recently, ensure the new kernel is
>     the one actually running
>     - If the modules haven't been rebuilt since the upgrade, they should be
>     rebuilt and reinstalled
>     - As I recall, you are playing around with some addon modules - do any
>     of those modules define dependencies on the kprobes, kretprobes, or
>     uprobes modules which now are no longer produced by builds of the
>     master
>     branch
> 
>     Is there further information in dmesg or journalctl regarding the
>     module
>     loading?
> 
>     hope this helps.
> 
>     thanks,
>     kienan
> 
>      >
>      > I've confirmed that the modules exist but can't load them. I'm
>     unsure
>      > how to resolve these issues. Could someone please assist me?
>      >
>      > Thank you.
>      >
>      > _______________________________________________
>      > lttng-dev mailing list
>      > lttng-dev at lists.lttng.org <mailto:lttng-dev at lists.lttng.org>
>      > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>     <https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev>
> 


More information about the lttng-dev mailing list