Просмотр журналов ядра после сбоя - PullRequest
3 голосов
/ 26 апреля 2011

Я отлаживаю сбой системы.Я получил сообщение OOPS и нашел глючный кусок кода.Я хотел бы получить вывод dmesg непосредственно перед сбоем.Тем не менее, у меня есть файл System.map для ядра.Как я могу использовать его для просмотра последних сообщений, собранных кольцевым буфером, используемым dmesg.

Сообщения журнала, безусловно, добавляются в некоторый файл журнала в ОЗУ.Можете ли вы помочь мне найти адрес, по которому создается файл журнала, или как мне извлечь файл журнала?

~ Спасибо

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Amit,

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

Чтобы включить эту функцию, вам нужно сделать две вещи:

  • Включено SERIAL_8250_CONSOLE в вашем ядре. Если вы предпочитаете использовать make menuconfig, его можно найти под Device Drivers \--> Character devices \--> Serial drivers \--> Console on 8250/16550 and compatible serial port.

  • Также вам нужно загрузить ядро ​​со следующими параметрами, чтобы ваш обычный экран работал одновременно с последовательным выводом console=tty0 console=ttyS0,115200.

  • Подключите последовательный порт от вашей станции разработки к последовательному порту на другой станции (я обычно использую компьютер под управлением Windows с HyperTerm).

Опять же, это просто вариант, который я нашел бесценным при отладке Linux. Я надеюсь, что вы можете использовать его с пользой.

0 голосов
/ 12 февраля 2012

проще, чем найти последовательный кабель в наши дни (у моих 2 ноутбуков даже нет одного последовательного порта), но работает только при сбое после syslogd может записать на диск

загрузка, сбой, загрузка livecd, чтение / var / log / messages

если это произойдет до того, как у вас будет файловая система, вам может повезти, если вы также используете loghost через UDP. см. руководство по syslog / syslog-ng

...