Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: printk не работает  (Прочитано 10382 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maaaaaad
Гость
« : 29-11-2003 21:06 » 

не нашет printk (Mandrake linux 8.3  2.4.18)
при загрузке модумя выводится что то о license
загружается и выгружается модуль нормально - /proc/modules прописывается.
может под X printk не работает? Как тогда его включить?
замучался уже - помогите кто может...
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 29-11-2003 21:30 » 

А по подробней? Ага
Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 29-11-2003 22:05 » 

#include <linux/kernel.h>

int printk(const char*fmt, ...)  
DESCRIPTION
Print a formatted message to the kernel console, much like the printf function of the stdio library. Normally, the message is written to the physical console device of the computer, although this behavior can be changed with the register_console function. Messages are also stored in a message log book.

The generated string may also start with a message priority code, which sets the priority of the message. The priority code strings are of the form <n> where n is a number from 0 - 7. The following macros are defined in the <linux/kernel.h> header file:

KERN_EMERG
    System is unuseable
KERN_ALERT
    Action must be taken immediately
KERN_CRIT
    Critical conditions
KERN_ERR
    Error conditions
KERN_WARNING
    Warning conditions
KERN_NOTICE
    Normal but significant condition
KERN_INFO
    Informational
KERN_DEBUG
    Debug-level messages

For example

        printk(KERN_NOTICE "Hello, world.\n");


does the expected thing.  

Т.е. выставляется уровень важности сообщения. Или так.
        printk("<5>Hello, world.\n");
Записан

Странно всё это....
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-11-2003 22:25 » 

CrashMaker, вывод ядра, обычно, настраивают на устройство /dev/console, которое не имеет ни какого отношения к псевдотерминалам (pty), которые используются в графических терминалках. По этому в текстовой консоли вывод виден, а в графической нет.
Существуют демоны логов (syslogd и klogd), которые позволяют выбирать нужные логи и выводить в указанный файл или терминал.
См. man syslog.conf
Например: в файл /etc/syslog.conf занеси строку "kernel.=debug  /tmp/debug.log", а после сделай killall -HUP syslogd.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
maaaaaad
Гость
« Ответ #4 : 30-11-2003 10:01 » 

Спасибо, ща попробую
Записан
maaaaaad
Гость
« Ответ #5 : 30-11-2003 15:36 » 

Цитата

которые позволяют выбирать нужные логи и выводить в указанный файл или терминал


ну хорошо, лог работает. Это неудобно. А как выводить не в лог, а на терминал (в том, котором я делаю insmod или во все)? Писать в kernel.=debug /dev/tty1? что то так не выходит....да и какой tty выбрать в /dev их море.

И еще вопросик....в mandrake не работае терминал по alt+f1, в котором под шапкой выводятся принтки, как запустить терминал в котором будут отображаться принтки под иксами?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 30-11-2003 19:40 » 

Цитата
И еще вопросик....в mandrake не работае терминал по alt+f1, в котором под шапкой выводятся принтки, как запустить терминал в котором будут отображаться принтки под иксами?
Опять же - смотри в сторону syslogd. Само ни чего не происходит - это не виндовс.

Настроить вывод в псевдотерминалы ни как нельзя - они создаются программно и до их создания syslogd не сможет открыть их для записи.

В Linux-е существуют разные устройства терминалов.
Немного разъяснений:
/dev/console - физический терминал VGA+клава
/dev/tty1 и подобные - логические терминалы на базе /dev/console
/dev/ttyS1 и подобные - последовательные порты
/dev/pts/* - Unix98 PTY slaves

Что такое "pty": псевдотерминал. Создается программно, как канал связывающий два процесса. Имеет два конца: master и slave. Master достается создавщему его процессу, а slave передают вновь созданному процессу. Конец slave имитирует "обычный" терминал, но связан с программой его создавшей, а не с физическим устройством.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
maaaaaad
Гость
« Ответ #7 : 30-11-2003 21:18 » 

да ясно, что пингвинус не виндовс....=)
лан, надеюсь cat /proc/kmsg заработает при положенных лог-демонах..
видно я уже надоел со своими вопросами=)
валерьяночки бы....


----------------------------------------------------------------------------------------
Hear my cries
Hear my calls
Lend me your ears (Uh huh You ready now? Come on check this out)
Hear my cries
Hear my calls
Lend me your ears, Uhh (Oh yeah that's right, Oh yeah that's right)
Come with me, yeah
Come with me
Come with me, ahhhhhhhhhhhhoooooooowww
Yeah, like this
Come on, Come on
Yeah turn me up, turn me up
Yeah yeah yeah, come on now, Yeah
yyyaaaaaahhhhhhhhhhhhwwwwwwwwwwwwwwww!!!!!
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 02-12-2003 09:14 » new

Посмотри еще man dmesg
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines