module.h wird nicht erkannt

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
hwursti
Beiträge: 6
Registriert: 13.07.2011 14:51:42

module.h wird nicht erkannt

Beitrag von hwursti » 13.07.2011 15:13:23

Hallo,

ich bin relativ neu im Bereich von Linux und würde mich deshalb über detailierte Hilfe sehr freuen.

Folgendes Problem: Ich habe ein debian kernel 2.6.33.7.2-rt30 mit RT_PREEMPT PATCH und wollte dafür ein einfaches hello_world modul schreiben. bereits beim compilieren werde ich darauf hingewiesen, dass #include <linux/module.h> nicht gefunden werden kann.
-> ich vermute mal einen Linkerfehler! weiss aber nicht genau wie ich diesen beheben kann

Mein Makefile sieht folgendermaßen aus (der kernel ist in /usr/src/linux enthalten)

Code: Alles auswählen

obj-m := hello_world.o
KDIR := /usr/src/linux
PWD := $(shell pwd)

all:
	make -C $(KDIR) M=$(PWD) modules
 
clean:
	make -C $(KDIR) M=$(PWD) clean
.

Der zugehörige SourceCode ist folgender

Code: Alles auswählen

#define MODULE
#include <linux/module.h>	/* Needed by all modules */
int init_module(void)
{
	printk(KERN_ALERT "Hello world 1.\n");
	/* 
	 * A non 0 return means init_module failed; module can't be loaded. 
	 */
	return 0;
}
void cleanup_module(void)
{
	printk(KERN_ALERT "Goodbye world 1.\n");
}
Die Verlinkung lt. http://www.hackerwiki.org/index.php/Ker ... einrichten
hat auch nicht wirklich eine Verbesserung mit sich gebracht

Wäre toll wenn mir jemand sagen könnte welche Links nun wirklich notwendig sind um eine Modul mit den notwendig Pfaden erzeugen zu können!!

mfg

uname
Beiträge: 12422
Registriert: 03.06.2008 09:33:02

Re: module.h wird nicht erkannt

Beitrag von uname » 13.07.2011 15:40:08

Nutze es selbst nicht. Denke aber es fehlt dir das zugehörige Header-Paket passend zu deinem Kernel. Beim Standard-Kernel von Squeeze wäre es Debianlinux-headers-2.6.32-5-common.

hwursti
Beiträge: 6
Registriert: 13.07.2011 14:51:42

Re: module.h wird nicht erkannt

Beitrag von hwursti » 13.07.2011 15:50:34

die headers hab ich schon heruntergeladen mit dem apt-get install befehl.
ich finde das module.h file ja auch aber wie kann ich da jetzt eine saubere verlinkung machen?
(bzw. auf welche pfade wird das grundsätzlich gesetzt)

mfg

hwursti
Beiträge: 6
Registriert: 13.07.2011 14:51:42

Re: module.h wird nicht erkannt

Beitrag von hwursti » 14.07.2011 11:07:22

habe leider noch keine konkrete Lösung für das Problem gefunden!
der make Befehl im Makefile sucht doch in einem Standardordner wie zum Beispiel /usr/src/linux-headers ..../include/linux nach den benötigten Header files. Ist diese nicht in diesem Ordner vorhanden bleibt einem nur der absolute Pfad anzugeben, was der Compiler aber in meinem Fall nicht macht oder irgendwie eine Verlinkung auf z.B.: usr/include herzustellen.
Nun nochmals meine Frage ist dies sinnvoll/hilfreich ?? oder wie kann man sonst weider header files einbinden ohne diese händisch zu kopieren??

mfg

Antworten