hi
ich versuche gerade einen kleinen test-treiber zu kompilieren.als distri hab ich suse, make und gcc sind installiert!hier mal der code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#define MODULE
#include <linux/module.h>
int init_module (void) /* Loads a module in the kernel */
{
printk("Hello kernel\n");
return 0;
}
void cleanup_module(void) /* Removes module from kernel */
{
printk("GoodBye Kernel\n");
}
|
ich habe main.c in /home/benutzer/Desktop/linux-source/linux-2.6.16.18 verschoben und habe im selben ordner ein Makefile erstellt in das ich obj-m := main.o geschrieben habe.danach oeffne ich das terminal in diesem ordner und gebe "make -C /home/benutzer/Desktop/linux-source/linux-2.6.16.18 M=`pwd` modules" ein.genau wie in
diesem buch beschrieben ist.das einzige was make mir dann aber sagt ist das hier:
make: Entering directory `/home/benutzer/Desktop/linux-source/linux-2.6.16.18'
make: *** Keine Regel, um »modules« zu erstellen. Schluss.
wenn ich "make -C /home/benutzer/Desktop/linux-source/linux-2.6.16.18 M=`pwd` main.o" eingebe bekomme ich jede menge fehler hier nur ein paar beispiele:
/usr/include/linux/ktime.h:213: error: ‘s32’ undeclared (first use in this function)
/usr/include/linux/ktime.h:213: error: expected ‘}’ before ‘ts’
/usr/include/linux/ktime.h:214: confused by earlier errors, bailing out
make: *** [main.o] Fehler 1
make: Leaving directory `/home/benutzer/Desktop/linux-source/linux-2.6.16.18'
ich habe den eigentlichen linux kernel kompiliert daran sollte es also nicht liegen.waere dankbar wenn mir einer sagen koennte wie ich den treiber kompilieren kann.
danke