[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[OT] Linux Kernelmodul Programmierung



Hallo!

Um Linux etwas näher kennen zu lernen habe ich mir das Buch "Linux Treiber 
entwickeln" gekauft.

Beim Versuch ein Beispiel nachzubilden stoße ich auf einen Fehler. Soweit ich 
das verstanden habe, hat das Makefile selbst Probleme. Zur Sicherheit gebe 
ich einmal kurz die C-Datei und das Makefile an.

Das Beispiel:

Datei "mod1.c":

#include <linux/version.h>
#include <linux/module.h>

const int intNULL ( 0 );

static int __init mod_init( void ) {
        printk( "module_init called\n" );
        return intNULL;
}

static void __exit mod_exit( void ) {
        printk( "module_exit called\n" );
}

module_init( mod_init );
module_exit( mod_exit );

// Metainformationen
MODULE_AUTHER( "Mag. Leonhard Landrock" );
MODULE_LICENSE( "GPL" );
MODULE_DESCRIPTION( "Just a module template, without specific 
functionality." );
MODULE_SUPPORTED_DEVICE( "none" );


Datei "Makefile":

fneq ($/KERNELRELEASE),)
obj-m   := mod1.o

else
KDIR    := /lib/modules/$(shell uname -r)/build
PWD     := $(shell pwd)

default:
        $(MAKE) -C $(KDIR) M=$(PWD) modules

endif


Wenn ich nun im Verzeichnis des Makefile 
("/home/leo/EDV/Linux-Module_Programmierung") "make" aufrufe, erhalte ich 
folgendes Ergebnis:

make: *** Keine Targets.  Schluss.


"/lib/modules/$(uname -r)/build" zeigt bei mir im übrigen 
auf "/lib/modules/2.6.18-4-k7/build". Da gibt es auch ein Makefile. 
Ein "make" in diesem Verzeichnis liefert mir folgendes:

leo@veneto:/lib/modules/2.6.18-4-k7/build$ make modules
scripts/Makefile.build:17: /usr/src/linux-headers-2.6.18-4-k7/scripts/basic/Makefile: 
Datei oder Verzeichnis nicht gefunden
make[2]: *** Keine Regel, 
um »/usr/src/linux-headers-2.6.18-4-k7/scripts/basic/Makefile« zu erstellen.  
Schluss.
make[1]: *** [scripts_basic] Fehler 2
make: *** Keine Regel vorhanden, um das Target »include/config/auto.conf«,
  benötigt von »include/config/kernel.release«, zu erstellen.  Schluss.


Ich vermute, dass ich noch irgendwelche Kernel Dateien nachinstallieren muss. 
Hat jemand eine Idee?

Ach ja: OS = Debian Etch.

LG,
Leonhard.



Reply to: