У меня то же с начало не выходило.
Здесь эта проблема уже обсуждалась
http://www.opennet.ru/openforum/vsluhforumID9/2164.htmlТут на соседней ветке форума у когото проблема с printk.
Лечится так же.
Вот работающий пример.
Обрати внимание на Makefile.
В файле version.h прописывается версия ядра для которой компилиркется модуль.
В результате у меня для моего ASPLinux 7.3 получился следующий рабочий вариант. hello.c:
#include <asm/atomic.h>
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("(C) by ... Inc, 2003");
MODULE_DESCRIPTION("Hello module.");
int init_module() { printk("Hello modele instaled.\n"); return (0); }
void cleanup_module(){ printk("Hello module uninstalled.\n"); return; }
Makefile:
CC=gcc
MODFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX -I/usr/src/linux-2.4/include/
hello.o : hello.c /usr/src/linux-2.4/include/linux/version.h
$(CC) $(MODFLAGS) -c hello.c