2015-01-10 2 views
0

Я новичок в разработке драйверов. Я сконфигурировал свое ядро ​​Linux в соответствии с драйвером устройства Linux chaper 4, включил много конфигурации отладки. Когда я пытаюсь проверить драйвер, написанный мной, ядро ​​выдает oops. Это, однако, сразу же сбрасывается кусками другой отладочной информации. Итак, где я могу узнать информацию oops, которая произошла во вспышке.Где я могу найти информацию oops из журналов ядра

Кстати, может ли кто-нибудь объяснить значение отладочной информации ниже?

[ 1698.129712] evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0 

Этот тип сообщений покраснел от экрана, и я даже не могу их остановить.

ответ

1

Чтобы избежать много бесполезной информации (в вашем случае), вам нужно включить только то, что вам действительно нужно, чтобы отлаживать ваш модуль. Я настоятельно рекомендую отключить все, что вы включили. Тогда в каждом случае вы можете включить функции отладки.

Далее, в ядре под названием Dynamic Debug есть хорошая структура. Он позволяет во время выполнения включать или отключать определенные отладочные сообщения (убедитесь, что у вас есть CONFIG_DYNAMIC_DEBUG=y в конфигурации ядра Linux). Более подробное описание доступно в Documentation/dynamic-debug-howto.txt.

evbug - это модуль для мониторинга событий ввода в ядре. Есть одно сообщение, которое он может выдать. Это очень просто, что вы можете проверить на драйверах/вводе/evbug.c. К сожалению, он напрямую использует вызовы printk(), и вы не можете управлять его выходом с помощью динамической отладки.

В заключение ответ на ваш вопрос - это результат проверки команды dmesg. Но имейте в виду, что буфер ядра для вывода достаточно мал, и если у вас много журналов, вы можете пропустить некоторые из них.

+0

Ваш ответ мне очень помогает. Я нахожу, что 'evbug' скомпилирован как модуль не в ядре, поэтому я могу выгрузить его вручную из своей системы, если я его не буду использовать. –

Смежные вопросы