printk не работает для отладки ядра - PullRequest
3 голосов
/ 11 ноября 2011

Я поместил несколько отладочных сообщений в коде ядра. проверил / var / log / messages, dmesg и там нет такого дампа. syslogd работает на компьютере

я также изменил / proc / sys / kernel / printk на 8 4 1 7

есть идеи, в чем может быть проблема?

Ответы [ 2 ]

3 голосов
/ 16 января 2013

Я сталкивался с той же проблемой до вчерашнего дня, когда нашел что-то интересное. В последнее время ядро ​​Linux приняло pr_ ** вместо printk (версия 3.5 и выше).

Я попытался запустить программу базового модуля с printk на версии ядра 3.3 и на версии 3.7 и выше.

Бывший работает отлично. Позже просто не появляется printk на dmesg или /var/log/messages. Однако заменив printk макросом pr_info, выполнил задание. (есть и другие варианты pr_err, pr_notice и т. Д., Найденные в include / linux / kernel.h ранее, теперь перемещены в включать / Linux / printk.h )

Хотя макросы pr_ ** довольно старые, благодаря кампании Джо Перчеса, которая инициировала вышеупомянутое изменение, мы лучше изучим способы ядра! (Ссылка: pr_info () )

1 голос
/ 11 ноября 2011

Самое простое объяснение в том, что ваш printk() не вызывается.

Сохраняйте это простым и придерживайтесь проверки dmesg(1) вывода во время отладки этой проблемы - все syslog(3) /var/log/messagesи вывод на основе консоли отделен от выдачи сообщений, даже не отображаемых в буфере сообщений ядра.

...