[РЕШЕНО] Какие в Linux есть средства для анализа модулей ядра?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

MiK13
Сообщения: 1230
ОС: Linux Debian

[РЕШЕНО] Какие в Linux есть средства для анализа модулей ядра?

Сообщение MiK13 »

Есть компьютер с процессором Ultrascale. Начальник утверждает, что у него 4 "обычных" ядра Cortex A53 и ещё два ядра реального времени R5. Требует разобраться как запускать программу на этих ядрах.
Petalinux, на котором работает этот компьютер "видит" только 4 основных ядра (в /etc/cpuinfo).
В одном из документов я нашёл пример как запустить "эхо-тест".
Для этого нужно выполнить следующие команды:

Код: Выделить всё

modprobe zynqmp_r5_remoteproc
echo image_echo_test > /sys/class/remoteproc/remoteproc0/firmware
echo start > /sys/class/remoteproc/remoteproc0/state
Каталог /sys/class/remoteproc/ есть. Но он пустой. И после modprobe zynqmp_r5_remoteproc в нём НИЧЕГО не появляется.
Команда загрузки модуля проходит (и есть файл zynqmp_r5_remoteproc.ko). При этом ничего на экране не появляется. В dmesg тоже ничего не добавляется.
Команда lsmod показывает, что модуль zynqmp_r5_remoteproc загружен.

Есть ли какие-то средства, с помощью которых можно было бы узнать, работает ли этот модуль?
Последний раз редактировалось MiK13 24.12.2024 01:13, всего редактировалось 1 раз.
Спасибо сказали:
IMB
Сообщения: 2565
ОС: Debian

Re: Какие в Linux есть средства для анализа модулей ядра?

Сообщение IMB »

зависит от ..., самый надёжный - изучение и при необходимости модификация исходников с последующей пересборкой

из других
- modinfo может дать информацию о параметрах
- https://www.kernel.org/doc/html/latest/filesystems/debugfs.html
- изменение уровня логирования https://www.kernel.org/doc/html/latest/core-api/printk-basics.html
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21035
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Какие в Linux есть средства для анализа модулей ядра?

Сообщение Bizdelnick »

MiK13 писал:
28.11.2024 16:29
Начальник утверждает
Вам реальность даётся исключительно в ощущениях начальника, что ли? Спецификации на железку нет, или языком она незнакомым написана?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Aliech
Сообщения: 1042
Статус: дилетант широкого профиля
ОС: debian/gentoo/openbsd

Re: Какие в Linux есть средства для анализа модулей ядра?

Сообщение Aliech »

Bizdelnick писал:
28.11.2024 18:44
Спецификации на железку нет, или языком она незнакомым написана?
Это не в спецификации, как мне кажется, искать надо. Но в SDK.
MiK13 писал:
28.11.2024 16:29
И после modprobe zynqmp_r5_remoteproc в нём НИЧЕГО не появляется.
SDK не просто так выпускают под железку. И покрывать он должен даже не чип, а плату. Потому что любой некорректный dtc, и драйвер работать не будет. Более того, не совсем понятно, а документ то, который вы нашли, к вашей плате отношение имеет? Всё ли есть для того, что вы советы из него могли применять к своему устройству?
С уважением,
Павел Алиев
Спасибо сказали:
MiK13
Сообщения: 1230
ОС: Linux Debian

Re: Какие в Linux есть средства для анализа модулей ядра?

Сообщение MiK13 »

Aliech писал:
29.11.2024 12:56
SDK не просто так выпускают под железку. И покрывать он должен даже не чип, а плату. Потому что любой некорректный dtc, и драйвер работать не будет. Более того, не совсем понятно, а документ то, который вы нашли, к вашей плате отношение имеет? Всё ли есть для того, что вы советы из него могли применять к своему устройству?
Проблема в принципе решилась. Правда, решил её не я, а тот человек, который занимается аппаратной частью.
Он нашёл что надо добавить в дерево устройств и после сборки BOOT.BIN и загрузки системы в /sys/class/remoteproc появился каталог remoteproc0 с соответствующими файлами.
И модуль zynqmp_r5_remoteproc загружается автоматически.
Ещё он собрал (с помощью Vitis) тестовый пример, который удалось запустить.
Попробовал сам делать простейшие программы, используя arm-none-eabi-gcc
Столкнулся с проблемой. Компилятор не захотел создавать исполняемый файл, стал писать, что не определена ссылка _exit.
Но после компиляции с -c и последующей сборки с помощью arm-none-eabi-ld файл создался. И его удалось запустить.
Правда, тут возникла другая проблема.
Для основного процессора (A53) я транслирую программу под Debian 11. Программа, созданная под 12-м не работает -- не та версия glibc. Приходится делать статическую программу.
А вот на процессоре R5 работает только программа, собранная под Debian 12.

В целом можно считать, что проблема решена
Спасибо сказали: