LINUX.ORG.RU

как запретить systemd отбирать ttyS0 у ядра?

 ,


1

3

Нужно отладить железку, иногда система виснет, и самый первый путь это позволить ядру выводить в последовательный порт:

loglevel=7 console=ttyS0,115200
ОС - Ubuntu 16.04.1 и это работает в первые секунды загрузки. А потом сисямдэ отбирает вывод ядра и предлагает логин на этой консоли (который кстати работает).

Как заставить сисямдэ не трогать ttyS0? Мне надо чтобы туда продолжал сыпаться лог ядра. А пока можно что-то увидеть по dmesg. Когда система повисла - никаких dmesg разумеется тыкнуть негде...

Ответ на: комментарий от Lavos

Слишком радикально, надо просто консоль отпустить...

Даже ручное echo 7 > /proc/sys/kernel/printk не помогает заставить валить в консоль где ttyS0...

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Сделал

loglevel=7 console=ttyS0,115200 systemd.show_status=0
Какать стало в консоль меньше, но под конец сцуко логин... А от модуля ядра (драйвера) ни ответа ни привета:
[   11.056405] systemd[1]: Started Journal Service.
[   17.458833] MPU-401 device not found or device busy
Ubuntu 16.04.1 LTS user-945P-A ttyS0
user-945P-A login:
Эксперт по сисямдэ intelfx, помоги плиз :)

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Нашел еще кое что:

systemctl mask serial-getty@ttyS0.service
и оно действительно перестало предлагать логин на ttyS0, однако, что видно по dmesg, вывод в ttyS0 ядром просто прекращается с определенного момента.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft
cat /proc/sys/kernel/printk
cat /etc/sysctl.d/10-console-messages.conf

systemd не при чём.

anonymous
()

систямдэ не работает без повершела ;)

anonymous
()
Ответ на: комментарий от intelfx

/proc/sys/kernel/printk - после загрузки уровень свалился в дефолт. Анонизмус подсказал /etc/sysctl.d/10-console-messages.conf - там стояли другие значения! Выставив 7 7 7 7, после перезагрузки все равно то же поведение. Комментирование строки в 10-console-messages.conf тоже не привело к результату.

/proc/sys/kernel/printk когда делаю вручную 7777, все равно та же ситуация - dmesg показывает всё, а в консоль лишь сыпется «module verification failed: signature and/or required key missing - tainting kernel» - но и это уже прогресс, хоть что-то.

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от intelfx

Сделал в journald.conf

[Journal]
#Storage=auto
Storage=none
не помогло. И «systemctl mask systemd-journald.service» тоже не помогло. И даже если вручную после этого перезагрузить и опять сделать «sudo sysctl -w kernel.printk=„7 7 7 7“ - опять ноль эффекта, но консоль всё же выдает уже несколько больше.

На счет »и его сокет" - как???

Должна же оставаться какая-то штатная возможность выключить это одной командой, чтобы отлаживать дрова?

I-Love-Microsoft ★★★★★
() автор топика

Я уже Slackware 64 14.2 от безысходности поставил - сверхубогий инсталлятор, в итоге всё смог установить - а простейший make не запускается - не видит часть библиотек и в репах их нет. Пробую теперь Arch/OpenRC... хоть что-то современное без сисямдэ надо. Чтоб у поттеринга диарея не останавливалась.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Я тут проверил у себя на арче (и на x86 с tty1, и на ARM с ttyS0) — если отключить/замаскировать getty и сделать loglevel=7 console=ttyN, всё работает. Так что действительно ищи другой дистрибутив, но Поттеринга можешь не проклинать.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Slackware Arch Crux - всё это оказалось неюзабельным шлаком.

Поставил Debian 8.5 - замаскировал getty на ttyS0 и сделал loglevel=7 console=ttyS0,115200 - проблема всё еще остается, даже если вручную выставить sysctl -w kernel.printk=«7 7 7 7».

Я попробую этот способ http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian... и отпишусь.

Видимо дело не в Ubuntu и не Debian - они оказались одинаково себя ведут в этой ситуации.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Slackware 64 14.2
... простейший make не запускается - не видит часть библиотек и в репах их нет

Если интересует решение, то пишите подробнее, каких именно библиотек вам не хватило, что, кроме отсутствия в дистрибутиве, помешало их поставить.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Видимо дело не в Ubuntu и не Debian - они оказались одинаково себя ведут в этой ситуации.

Ты хотел сказать «дело не в Ubuntu». Я только что проверил ещё и на Fedora и всё работает, никто вывод ядра не тырит. Следовательно, дело в Debian.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от bormant

libgc как минимум, а ldd говорит что множество других еще - вообще не представляю, их даже в репозитории нету чтобы доустановить

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Хорошая мысль, надо федору попробовать, пусть в ней и сисямдэ, но видимо в них может сработать. Какую версию используешь ты?

P.S. А в Debian эта зараза systemd даже не удаляется по шагам из статьи. Натравил init как sysvinit - загрузилось, но все равно блочит лог, эх...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от bormant

Хорошо, сначала федорино горе попробую - если не полетит, то наверное слаку еще разочек. Я тогда напишу конкретные вопросы на счет библиотек, хорошо?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

тогда напишу конкретные вопросы на счет библиотек, хорошо?

Безусловно.

bormant ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Натравил init как sysvinit - загрузилось, но все равно блочит лог, эх...

Так, может быть, проблема не в systemd, а в дебиановской говноскриптоте, которая считает себя умнее пользователя?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от bormant

Чем с Fedora дело кончилось

У федоры 24 убогий инсталлятор, но дело не в этом. Простейший OpenSSH сервер тупо не позволяет залогиниться, я уже все настройки перекопал, всё что можно включил. Но больше я тратить время на федору не намерен.

У меня возникает мысль, что Ubuntu это действительно самый лучший дистрибутив, объективно говорю по факту.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Попробуй Void Linux

Видимо, настала и его очередь :)

Но я повторюсь, Ubuntu - объективно бест, но вот эта мелочь с последовательным портом огорчает.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Как до Slackware дело дойдет, свистите, раз вам пока не к спеху ;)

Тем более, что поставить рядом никто не мешает.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Короче, void linux оказался тоже объективно шлаком, флэшка с Slackware не запустилась снова. Снова могу подтвердить, что Ubuntu это лучший дистрибутив (Debian как основа, может чуть похуже в моей системе критериев и оценок).

Так что ставлю Ubuntu 12.04.5 LTS - в ней нет systemd, а как отключить это в последних убунтах в сисямдэ - наверное буду разбираться гораздо позже. Наверняка подскажут на форумах убунты, может пофиксят баг, который не проявляется или отсутствует у пользователя intelfx на арче и федоре.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Slackware 64 14.2 от безысходности поставил
флэшка с Slackware не запустилась снова

Хотим подробностей, если не возражаете. Что-то вы там пытались делать явно противоречивое...

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)

Ubuntu 12.04.5 - всё заработало! Стало выводить сообщения драйверов, любого кроме своего. А там, присмотрелся, почему пишет что «module verification failed» - ядро требует подписанные драйвера. Они загружаются, в dmesg всё видно, но вывод сообщений от неподписанных драйверов не выводится по всей видимости.

Тут, думаю, выходом станет собрать своё ядро. Тема, наверное, решена.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Снова могу подтвердить, что Ubuntu это лучший дистрибутив (Debian как основа, может чуть похуже в моей системе критериев и оценок)

Снова могу подтвердить, изучая Ubuntu — будете знать только Ubuntu, ... (q) одна знаменитая цитата :-)

bormant ★★★★★
()
Ответ на: комментарий от intelfx

В общем, тема решена. Даже стыдно что я грешил на Лёню...

Перевел драйвер на отладку dev_err и dev_dbg, вместо printk, и увидел аналогичную проблему. Однако сообщения с уровнем ERR работают и в режиме printk и в режиме dev_err. Но в последовательный порт не попадают ни сообщения dev_dbg ни printk с DBG. Возможно, это какая-то оптимизация, спасающая от замедления системы при работе с выводом лога ядра в последовательный порт. Все сообщения видны в dmesg, а dev_dbg только при помощи debugfs.

Спасибо всем за подсказки и помощь, очень было важно разобраться с этой проблемой. Жаль сразу не попробовал ERR уровень сообщений просто при старте модуля...

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.