linux-l: printk
Dennis Schneider
sdans at web.de
Mi Jul 18 12:46:10 CEST 2001
Sascha Knapp wrote on 17.07.2001 at 11:19:59 +0200:
>#define __KERNEL__
>#define MODULE
>
>#include <linux/kernel.h>
>
>int main()
>{
> printk(KERNEL_NOTICE "Hallo Welt!");
> return 0;
>}
Hm. Das ist alles, aber kein Code für ein richtiges Kernelmodul. ;)
Bei einem Kernelmodul gibt es 2 Funktionen: eine zum Initialisieren und
eine, die vor dem entfernen ausgeführt wird.
Außerdem musst du solche Module dann mit -c übersetzen, damit das
entstehende Objekt nicht gelinkt wird.
Ich habe den Code mal so modifiziert, damit er funktioniert:
------------------- 8< -------------------
#define __KERNEL__
#define MODULE
#include <linux/kernel.h>
#include <linux/module.h>
int init_module(void)
{
printk(KERN_NOTICE "Hallo Welt!\n");
return 0;
}
int cleanup_module(void)
{
printk(KERN_NOTICE "Have a nice day.\n");
return 0;
}
------------------- 8< -------------------
Das ganze dann noch mit gcc -c -o testmodul.o testmodul.c übersetzen,
laden und es erscheint im Log "Hallo Welt!". :)
Wenn du Module programmieren möchtest, dann schau dir mal ein paar
Module im Kernelbaum an, da ist das sozusagen praktisch kommentiert.
dan"Juchu! Ferien!"s
--
> Irgendwann kommen sie wenn du auf dem Clo hockst durch den Kanal
> um dir ihren Schotter anzudrehen =;o))
Hey Mann! Das ist Deine grosse Chance, da kannst Du sie einfach
bescheissen. Immerhin sitzt Du in dem Moment sozusagen am Druecker ...
Mehr Informationen über die Mailingliste linux-l