Linux Raspbian 上的跟踪工具 lttng:内核跟踪器不可用
Linux Trace Tool lttng on Raspbian: Kernel tracer not available
我已经在 Raspbian 运行 Raspberry Pi 3 Model B+ 上安装了 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
以下命令returns出错:
# 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 内核模块,或者是否存在其他问题?
谢谢,
巴特
从 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
进程,然后重试。
RT 内核有问题。这会在编译 lttng-modules
时导致以下警告:
depmod: WARNING: /lib/modules/4.14.66-rt40-v7/extra/lttng-tracer.ko needs unknown symbol __migrate_disabled
虽然这被报告为警告,但它会导致错误。
如果您按照this bug report中的解释修改lttng-modules
2.10分支的源代码并再次编译lttng-modules
,则警告不存在并且可以列出内核事件。
感谢 fdeslaur 的回答!
我已经在 Raspbian 运行 Raspberry Pi 3 Model B+ 上安装了 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
以下命令returns出错:
# 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 内核模块,或者是否存在其他问题?
谢谢,
巴特
从 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
进程,然后重试。
RT 内核有问题。这会在编译 lttng-modules
时导致以下警告:
depmod: WARNING: /lib/modules/4.14.66-rt40-v7/extra/lttng-tracer.ko needs unknown symbol __migrate_disabled
虽然这被报告为警告,但它会导致错误。
如果您按照this bug report中的解释修改lttng-modules
2.10分支的源代码并再次编译lttng-modules
,则警告不存在并且可以列出内核事件。
感谢 fdeslaur 的回答!