LINUX.ORG.RU

Как увидеть предсмертные printk?

 ,


1

1

Вот раньше до systemd/journalctl было так, что printk кидались как-то сразу в файл /var/log/dmesg, и посмертный дамп можно было поглядеть.

Теперь, логи буферизуются в памяти за каким-то ((. В Ubuntu /var/log/dmesg все же пишется, но что там произошло непосредственно перед panic в лог не попадает.

Стенд удаленный, экрана его я не вижу, клавы тоже. Нашелся COM-порт на плате, но пока еще сделают выкидыш и подключение к другой машине. DKVM свитч вроде можно подключить.

А есть ли способ journalctl или вообще что там заставить делать как раньше?

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

Обычно любое I/O в этот момент мертвее некуда. В первом комментарии перечислено то, что будет работать. Ещё можно использовать консоль через COM-порт, если имеется.

anonymous
()

ramoops/pstore обычно не работает на многопроцессорных конфигурациях. Там только kexec спасает.

Для для бОльшей части случаев можно попробовать воспользоваться ramoops.

Задаём параметры ядру

memmap=256K$0xfc0000 ramoops.mem_address=0xfc0000  ramoops.mem_size=0x40000 ramoops.record_size=8192 ramoops.console_size=8192 ramoops.ftrace_size=8192 ramoops.dump_oops=1 pstore.backend=ramoops

Настройка

   MPS=/sys/fs/pstore
   grep -q pstore /proc/filesystems && ! grep -q pstore /proc/mounts && mount -t pstore none "$MPS"
   modprobe ramoops mem_address=0xfc0000 mem_size=0x40000 record_size=8192 console_size=8192 dump_oops=1
   D="`date +%Y%m%d%H%M%S`"
   for i in $MPS/console-ramoops* ; do
     [ -f "$i" ] && cp "$i" /var/log/ramoops.$D.console-ramoops${i##*console-ramoops}
   done
   for i in $MPS/dmesg-ramoops-* ; do
       [ -n "$i" -a -f "$i" ] || continue
       DF="/var/log/ramoops$D${i##*/}"
       cp "$i" "$DF" && rm "$i"
   done
   echo 3 >/proc/sys/kernel/panic
   echo 1 >/proc/sys/kernel/panic_on_oops
   echo 1 >/proc/sys/kernel/panic_on_io_nmi
   echo 0 >/proc/sys/vm/panic_on_oom
   echo 1 >/proc/sys/kernel/panic_on_unrecovered_nmi

При правильной настройке в логах видно сообщения при перезагрузке системы.

vel ★★★★★
()

Всем спасибо. Пока что на стенде настроили COM-порт. Но netconsole буду иметь ввиду, и кто-то с аналогичным вопросом почитает этот тред.

bugs-bunny
() автор топика