/*******************************/
#define __KERNEL__
#define MODULE
#include <linux/kernel.h>
#include <linux/module.h>
printk("Hello world \n");
{
printk("Hello world \n");
return 0;
}
void cleanup_module()
{
printk("Bye world\n");
}
/*****************************/
Das Problem ist nun das er Das Hello world nicht in d
er console ausgibt, sondern lediglich in die /var/log/messages
schreibt.
Lad ich ich das Module ohne X server, dann funktioniert es.
Kann mir jemand sagen woran das liegt
und wie ich es unter X "vernuenftig" zum laufen bekomme ?
Bekomme das Module allerdings auch nicht mehr entladen.
rmmod sagt das das module nicht geladen ist, obwohl lsmod es anzeigt.
OS: Mandrake Linux 8.1
X: XFree86 4.1.0
Danke,
Daniel
Vergiß es. Wenn du schon so triviale Hallo-Welt Probleme nicht
verstehst, solltest du keine Kernel-Programmierung machen. Das steht
in jedem noch so billigen El-Cheapo Text zur Kernelprogrammierung
erklärt.
> Das Problem ist nun das er Das Hello world nicht in d
> er console ausgibt, sondern lediglich in die /var/log/messages
> schreibt.
Wie kannst du einen Kernel programmieren wollen, von dem du noch nicht
mal die User Space Konzepte wie "Was ist eine Konsole" verstanden hast?
Unglaublich.
> printk("Hello world \n");
> {
> printk("Hello world \n");
> return 0;
> }
Ich glaub das muß in einem init_module() verpackt
werden. Bin mir aber nicht wirklich sicher. Hast du dir
schonmal den Linux-Kernel-Programming-Guide
angeschaut? Müßte irgendwo unter /usr/doc/Books liegen
> Das Problem ist nun das er Das Hello world nicht in d
> er console ausgibt, sondern lediglich in die /var/log/messages
> schreibt. Lad ich das Module ohne X server, dann
> funktioniert es.
Hast du xconsole oder etwas vergleichbares offen?
Hoffe nicht zu falsch zu liegen,
Patrick "Petschge" Kilian
int init_module()
{
printk("Hello world \n");
return 0;
}
Hab mich da beim Copy Past was vertan
@ Felix: Vielen dank fuer Deine Vorwuerfe.
Sowas braucht die Welt. Unglaublich !
Aber du hast ja recht, kann ja nicht jeder mit so einem Wissen
geboren werden.
@ Patrick: Ob xconsole an oder aus, da is leider kein Unterschied.
Danke.
int init_module()
{
printk("Hello world \n");
return 0;
}
Hab mich da beim Copy Past was vertan
@ Felix: Vielen Dank fuer Deine Vorwuerfe.
Sowas braucht die Welt. Unglaublich !
Aber du hast ja recht, kann ja nicht jeder mit so einem Wissen
geboren werden.
> Wie kannst du einen Kernel programmieren wollen, von dem du
> noch nicht mal die User Space Konzepte wie
> "Was ist eine Konsole" verstanden hast?
Wo steht das ich einen Kernel programmieren will ?
Na was denkst du Knallkopp denn, was das Programmieren eines Kernel
Moduls ist?
Posten hier eigentlich _nur_ noch Vollidioten oder was? Mann, Ey!
Hoppla, ein _kernel_-modul?!
> @ Patrick: Ob xconsole an oder aus, da is leider kein Unterschied.
Manpages zu klogd und syslogd ansehen.
Ausserdem: "Writing device drivers" von A. Rubini[1]
[1] das steht bei FvL bestimmt auf der abschussliste, weil es fuer
einsteiger geeignet ist, erklaert aber einiges zum thema
K.
--
Klaus von der Heyde -- he...@informatik.uni-bonn.de
> [1] das steht bei FvL bestimmt auf der abschussliste, weil es fuer
> einsteiger geeignet ist, erklaert aber einiges zum thema
Wieso sollte ich Einsteiger-Dokumentation nicht mögen?
Abgesehen davon, daß das Buch sich nicht an Einsteiger richtet, ist die
Existenz von Dokumentation besser als die Nicht-Existenz. Schlecht ist
nur, wenn es zu viel Dokumentation gibt, und die teilweise falsch ist.
Felix
bis du sicher, daß das auf der Konsole etwas ausgibt? Folgender
Standardschnipsel aus dem Linux-Kernel-Module-Programming-Guide schreibt
nämlich egal wie nur ins syslog.
> int init_module() {
> printk("Hello, world - this is the kernel speaking\n");
> return 0;
> }
> void cleanup_module() {
> printk("Short is the life of a kernel module\n");
> return 0;
> }
HTH,
Patrick "Petschge" Kilian
Es ist zum heulen.
*Bitte*, lest doch *einfach* die Doku. Dann fallen einem nämlich auch
Dinge wie der Console Log Level, die Möglichkeiten von /etc/syslog.conf
u.ä. auf.
Und irgendwann kommt man dann auch dahinter, was "provide mechanism, not
policy" eigentlich im Klartext bedeutet.
Andreas
--
Andreas Ferber - dev/consulting GmbH - Bielefeld, FRG
---------------------------------------------------------
+49 521 1365800 - a...@devcon.net - www.devcon.net
> Hallo alle zusammen,
>
> bis du sicher, daß das auf der Konsole etwas ausgibt? Folgender
> Standardschnipsel aus dem Linux-Kernel-Module-Programming-Guide schreibt
> nämlich egal wie nur ins syslog.
Ja, ohne X funktioniert wunderbar.
> Daniel Nöthen <d.no...@my-mail.ch> wrote:
>>
>> Wo steht das ich einen Kernel programmieren will ?
>
> Hoppla, ein _kernel_-modul?!
Hmm wusste nicht das ein Modul auch eine Art Kernel ist. Dachte es gibt nur
_den_ Kernel.
>> @ Patrick: Ob xconsole an oder aus, da is leider kein Unterschied.
>
> Manpages zu klogd und syslogd ansehen.
> Ausserdem: "Writing device drivers" von A. Rubini[1]
>
> [1] das steht bei FvL bestimmt auf der abschussliste, weil es fuer
> einsteiger geeignet ist, erklaert aber einiges zum thema
Werds mir mal ansehen, danke.
>> Hoppla, ein _kernel_-modul?!
>
> Hmm wusste nicht das ein Modul auch eine Art Kernel ist. Dachte es gibt nur
> _den_ Kernel.
<scnr> Warum bindet man wohl die kernel-header ein? </scnr>
Eigentlich sind alle treiber bei Linux im kernel. Die module sind nur
ein system, um nicht benoetigte kernel-teile (die module eben) nur dann
in den speicher zu holen, wenn sie gebraucht werden. Die module laufen
mit allen rechten des kernels.
>> Ausserdem: "Writing device drivers" von A. Rubini[1]
>
> Werds mir mal ansehen, danke.
Dort findest du das konzept lang und breit erklaert. Sollte eigentlich
in _jeder_ doku ueber module drin stehen. Wie kann man anfangen, so was
zu schreiben, ohne das gelesen zu haben?
wundert sich
Klaus
[1] Verlag O'Reilly, Pferd vorne drauf.
Daniel
In der Tat.
So langsam gehen auch dem gutwilligsten Regular die Argumente aus, warum
er sich diesen Exkrementhaufen hier würde antun wollen. Lernwillige
Fragesteller, die vor der Frage das Problem selber zu lösen versucht
haben, sind im deutschen Usenet jedenfalls seit Jahren nicht mehr
gesichtet worden.
Bist du dir sicher, das das nicht vom syslogd kommt? Schau doch mal in
der /etc/syslogd.conf nach, ob und was syslogd alles auf welche Konsolen
schreibt.
HTH,
Patrick "Petschge" Kilian
> *Bitte*, lest doch *einfach* die Doku. Dann fallen einem nämlich auch
> Dinge wie der Console Log Level, die Möglichkeiten von
> /etc/syslog.conf u.ä. auf.
Klar weiß ich, daß syslogd auf die Konsole schreiben kann, mir ging es
aber darum, das printk ins syslog schreibt. Das syslogd das dann auf
/dev/tty10 oder je nach Priorität und Konfiguration sonst noch wohin
pusten kann ist mir schon klar. Und zum Thema Docu lesen ich hab den
lkmpg zweimal gelesen , bevor ich vi gestartet habe, als tu nicht so
falls ich mal falsch liege, weil das ich schon über ein Jahr her und ich
programmiere halt nicht regelmäßig Kernelmodule.
mfg,
Patrick "Petschge" Kilian
besser waere deine diktion wohl kaum beschrieben worden.
bitte, verdunste!
>
--
mailto:ph...@snafu.de - h.-peter recktenwald, berlin - +49 30 85967858
Linux,Assembly,Forth: http://home.snafu.de/phpr/index-lx.shtml (en,de)
fight abusive software patents
http://petition.eurolinux.org/pr/pr17.html
Wenn du willst, daß sich jemand mit deinem Geschreibsel
auseinandersetzt, dann halte dich an die übliche Rechtschreibung.
*plonk*