Linux Trace Tool на Raspbian: ядро ​​трассировщик недоступен - PullRequest
0 голосов
/ 18 сентября 2018

Я установил lttng на моем Raspbian, работающем на Raspberry Pi 3 Model B +.

Я получаю следующую ошибку при просмотре первой демонстрации с сайта (как 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.

Я установил lttng после установки Debian:

# 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, или есть другая проблема?

Спасибо,

Bart

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Проблема с ядром RT.Это вызывает следующее предупреждение при компиляции lttng-modules: depmod: WARNING: /lib/modules/4.14.66-rt40-v7/extra/lttng-tracer.ko needs unknown symbol __migrate_disabled

Несмотря на то, что это отображается как предупреждение, оно вызывает ошибку.

Если вы адаптируете исходный код lttng-modules2.10 ветвь, как объяснено в этом отчете об ошибках и скомпилируйте lttng-modules снова, предупреждение отсутствует и события ядра могут быть перечислены.

Спасибо fdeslaur за этот ответ!

0 голосов
/ 19 сентября 2018

Из вывода 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 перед повторной попыткой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...