Модули ядра (Кое-какие вопросы...)

Модератор: Модераторы разделов

MedVed
Сообщения: 112

Модули ядра

Сообщение MedVed »

Вопрос к ядерным гуру.
О системе:
ALT Linux 2.4 Master (ядро 2.4.26 пересобрано).
Симлинк /usr/include/linux -> /usr/include/linux-2.4.26 (в последний
свалены заголовочные файлы из каталога сборки ядра 2.4.26).
Код такой:
1) mod1tst.cpp

Код: Выделить всё

#define MODULE                                                                        
#define __KERNEL__                                                                    
#include <linux/module.h>                                                            
                                                                                      
int init_module(void) {                                                              
    printk(KERN_ALERT "Init module...");                                              
    return 0;                                                                        
}                                                                                    
                                                                                      
void cleanup_module(void) {                                                          
    printk(KERN_ALERT "Cleanup module...");                                          
}

2) Makefile

Код: Выделить всё

CC=gcc                                                                                
CFLAGS=-mcpu=i486 -Wall -Wstrict-prototypes -O2                                      
mod1tst.o: mod1tst.c /usr/include/linux/version.h                                    
           $(CC)  -c mod1tst.c                                                          
clean:                                                                                
           rm -rf ./*.o ./core*                                                          


Модуль благополучно собирается.
Далее
>> insmod mod1tst
>> rmmod mod1tst
Сообщения на консоль не падают (ни в голой консоли, ни в иксах).
syslogd и klogd включены в дефолтовой конфигурции (просто поднял через drakxservices).
Собственно, весь вопрос - как заставить сообщения от модуля выпадать на консоль? Потому что они точно туда падали, где-то в промежутке между 2-й и 5-й пересборками ядра (это я экспериментировал с modversion :) ).
Или может кто предложит более простой способ получения отладочных сообщений от модуля?
Еще буду очень признателен за толковую информацию о modversions (в ядрах 2.2.x-2.6.x).

Добавил 20:12
2flook:
Ой затянется это.... Инет на одной работе, глючный модуль на другой - бегаешь туда сюда весь день. Это я к тому, что проверить смогу только завтра. Спасибо.
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Модули ядра

Сообщение flook »

Покажи выводы
cat /proc/sys/kernel/printk
и
dmesg
сразу после загрузки и выгрузки твоего модуля.

И еще - чтобы описать функцию как инициализирующую/щистящую моуль надо к ней атрибут __init/__exit прибавить и описать ниже так

Код: Выделить всё

module_init(func);
module_exit(func);
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
MedVed
Сообщения: 112

Re: Модули ядра

Сообщение MedVed »

Последние новости.
Алилуйя, сообщения модуля нашлись в dmesg (а я то думал, это только лог загрузки, кстати man тоже так думает).
В /proc/sys/kernel/printk лежит какой-то мусор.
Код работает без модификаций, make-файл немного переколбасил, но радикальных изменений не вносил.
Пожалуй, тему закрываю. Хотя, если кто узнает, как направить вывод на консоль - милости просим.
flook,у - респект.
МСВС 3.0/Linux Mandrake 8.0
Спасибо сказали: