Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [kernel] dmesg в консоль ядра, как перенаправить 
V
    Опции темы
null56
Дата 18.9.2012, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



Всем привет

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

Консоль ядра - при старте системы, вы видите информацию о том, как поднимаются интерфейсы, загружаются модули и прочее и при выключении/перезагрузке
dmesg - юзерспейсная утилита, которая читает циклический лог ядра и выводит в текущую консоль

Задача: как сделать так, чтобы циклический буфер ядра выводился в консоль ядра.
Цитата

dmesg -n 8 // вывод на текущую консоль, но он не подходит


Цель: я хочу посмотреть вывод своих printk, в процессе перезагрузки системы. В функцию выгрузки модуля я добавляю отладочную печать, к примеру

Код

static void __exit my_exit(void)
{
    pr_info("!!!!!!!!!!!!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exit");
// прочее, не важно что
}

module_exit(my_exit);


rmmod <мой модуль> не интересен, важно увидеть отладочную печать в процессе перезагрузки

Надеюсь задача ясна, заранее благодарен всем откликнувшимся за помощь
PM MAIL   Вверх
xvr
Дата 18.9.2012, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Попробуйте посмотреть в /var/log/messages и /var/log/kernellog 
Если повезет, то может быть поймаете там свои печати

Добавлено через 3 минуты и 52 секунды
Кстати, в /proc/sys/kernel/printk можно управлять печатью кернельных логов на консоль. Может подойдет

Цитата

   /proc/sys/kernel/printk
              The  four values in this file are console_loglevel, default_mes-
              sage_loglevel,    minimum_console_level     and     default_con-
              sole_loglevel.   These  values  influence printk() behavior when
              printing or logging error messages. See syslog(2) for more  info
              on  the  different  loglevels.   Messages with a higher priority
              than console_loglevel will be printed to the console.   Messages
              without  an  explicit  priority  will  be  printed with priority
              default_message_level.  minimum_console_loglevel is the  minimum
              (highest)   value   to   which   console_loglevel  can  be  set.
              default_console_loglevel  is  the   default   value   for   con-
              sole_loglevel.


PM MAIL   Вверх
null56
Дата 18.9.2012, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



у меня сейчас значения
Цитата

 1(console_loglevel) 4(default_message_loglevel) 1(minimum_console_level) 7(default_console_loglevel)

я пытаюсь вывести сообщения с уровнем <6>, если речь о pr_info
если я правильно понял, мне хорошо бы поднять (уменьшить число) приоритета у сообщения, скажем, на KERN_ALERT.... или же изменить значение в proc, на console_loglevel и minimum_console_level выше 6... попробую первый вариант

к слову: отлаживаю на qemu, консоль остается даже после перезагрузки, поэтому если, напечатает, то всё увижу
PM MAIL   Вверх
null56
Дата 18.9.2012, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



Цитата

printk(KERN_ALERT "info");

не прокатило, поиграюсь со значениями
PM MAIL   Вверх
null56
Дата 19.9.2012, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



xvr, вы указали правильное направление, спасибо

Решение 1
Цитата

dmesg -n 8


Решение 2
Цитата

echo "8 4 1 7" > /proc/sys/kernel/printk

PM MAIL   Вверх
null56
Дата 19.9.2012, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



открыл для себя Америку: при перезагрузке, ядро не выгружает сама загруженные ранее модули, поэтому метод clean у модуля не вызывается, те кто не знал этого, имейте в виду
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.