3

我已经在运行在 Raspberry Pi 3 Model B+ 上的 Raspbian 上安装了 lttng。

从网站(以 root 身份)进行第一个演示时,我收到以下错误:

# lttng create my-kernel-session --output=/tmp/my-kernel-trace
Spawning a session daemon
Session my-kernel-session created.
Traces will be written in /tmp/my-kernel-trace

我假设一个进程正确启动:

# ps aux | grep lttng-sessiond
root       601  0.0  0.5 129320  5404 ?        Ssl  12:00   0:00 lttng-sessiond --daemonize
root       652  0.0  0.0   4372   572 pts/0    S+   12:30   0:00 grep lttng-sessiond

以下命令返回错误:

# lttng list --kernel
Error: Unable to list kernel events: Kernel tracer not available
Error: Command error

请注意,以下命令未列出任何内容:

# lsmod | grep lttng
#

lttng 内核模块是否未加载?这是问题的原因吗?

顺便说一句,我可以按照https://lttng.org/docs/v2.9/#doc-tracing-your-own-user-application中的说明跟踪应用程序。

我在 Debian 安装之后安装了 lttng:

# apt-get install lttng-modules-dkms
# apt-get install liblttng-ust-dev
# apt-get install lttng-tools 
# apt-get install liblttng-ust-agent-java
# apt-get install python3-lttngust

并安装了以下内容:

# dpkg -l | grep lttng
ii  liblttng-ctl0:armhf               2.9.3-1                      armhf        LTTng control and utility library
ii  liblttng-ust-agent-java           2.9.0-2+deb9u1               all          LTTng 2.0 Userspace Tracer (Java agent library)
ii  liblttng-ust-agent-java-jni:armhf 2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (Java agent JNI interface)
ii  liblttng-ust-ctl2:armhf           2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (trace control library)
ii  liblttng-ust-dev:armhf            2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (development files)
ii  liblttng-ust-java                 2.9.0-2+deb9u1               all          LTTng 2.0 Userspace Tracer (Java support library)
ii  liblttng-ust-java-jni:armhf       2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (JNI interface)
ii  liblttng-ust-python-agent0:armhf  2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (Python agent native library)
ii  liblttng-ust0:armhf               2.9.0-2+deb9u1               armhf        LTTng 2.0 Userspace Tracer (tracing libraries)
ii  lttng-modules-dkms                2.9.0-1                      all          Linux Trace Toolkit (LTTng) kernel modules (DKMS)
ii  lttng-tools                       2.9.3-1                      armhf        LTTng control and utility programs
ii  python3-lttngust                  2.9.0-2+deb9u1               all          LTTng 2.0 Userspace Tracer (Python 3 UST agent)

有关我的 Linux 发行版的更多信息:

# uname -a
Linux realtimepi 4.14.52-rt34-v7+ #5 SMP PREEMPT RT Wed Aug 1 14:22:59 CEST 2018 armv7l GNU/Linux

和:

# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

我是否错误地安装了 lttng,是否与我的 Linux 发行版不匹配,是否未正确加载 lttng 内核模块,还是有其他问题?

谢谢,

巴特

4

2 回答 2

2

uname -a输出中我可以看到您正在运行PREEMPT RT您可能知道的 Linux 内核,因为您的主机名是realtimepi.

当你运行一个没有被你的发行版打包的内核时,你不能简单地安装 lttng-modules 内核模块,因为你机器上安装的 Linux 内核头文件与模块包所期望的不匹配。

要使用 lttng 模块,您需要从源代码编译它们。查看有关该主题的文档:https ://lttng.org/docs/v2.10/#doc-building-from-source 。就您而言,我相信您只需要从源代码构建模块。

请确保您卸载了该lttng-modules-dkms软件包,然后重新启动该lttng-sessiond过程,然后再重试。

于 2018-09-19T13:34:42.627 回答
1

RT 内核有问题。这会在编译时导致以下警告lttng-modulesdepmod: WARNING: /lib/modules/4.14.66-rt40-v7/extra/lttng-tracer.ko needs unknown symbol __migrate_disabled

尽管这被报告为警告,但它会导致错误。

如果您按照此错误报告lttng-modules中的说明调整 2.10 分支的源代码并再次编译,则不会出现警告并且可以列出内核事件。lttng-modules

感谢 fdeslaur 的回答!

于 2018-10-15T14:33:31.300 回答