Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

printk bei Modulen + X server

10 views
Skip to first unread message

Daniel Nöthen

unread,
Apr 7, 2002, 8:55:40 AM4/7/02
to
Hi,
ich habe da ein kleines Problem.
Ich wollte mir mal ein wenig Moduleprogrammierung ansehen und schon am
Anfang scheiter ich bei einem kleinem simplem "Hello World Module".
Hier ist der source:


/*******************************/
#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

Felix von Leitner

unread,
Apr 7, 2002, 3:08:05 PM4/7/02
to
Thus spake Daniel Nöthen (d.no...@my-mail.ch):

> ich habe da ein kleines Problem.
> Ich wollte mir mal ein wenig Moduleprogrammierung ansehen und schon am
> Anfang scheiter ich bei einem kleinem simplem "Hello World Module".
> Hier ist der source:

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.

Patrick Kilian

unread,
Apr 7, 2002, 4:07:58 PM4/7/02
to
Hallo alle zusammen,

> 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


Daniel Nöthen

unread,
Apr 8, 2002, 7:49:49 AM4/8/02
to
Ups sorry, es muss natuerlich heissen:

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.

Daniel Nöthen

unread,
Apr 8, 2002, 7:56:26 AM4/8/02
to
Ups sorry, es muss natuerlich heissen:

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 ?

Felix von Leitner

unread,
Apr 8, 2002, 6:57:37 AM4/8/02
to
Thus spake Daniel Nöthen (d.no...@my-mail.ch):
> @ 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!

Klaus von der Heyde

unread,
Apr 8, 2002, 8:34:50 AM4/8/02
to
Daniel Nöthen <d.no...@my-mail.ch> wrote:
>
> Wo steht das ich einen Kernel programmieren will ?

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

Felix von Leitner

unread,
Apr 8, 2002, 8:14:51 AM4/8/02
to
Thus spake Klaus von der Heyde (uzs...@uni-bonn.de):

> > @ 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

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

Patrick Kilian

unread,
Apr 8, 2002, 11:05:29 AM4/8/02
to
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.

> 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


Andreas Ferber

unread,
Apr 8, 2002, 3:01:28 PM4/8/02
to
* Patrick Kilian <Pets...@gmx.de> schrieb:

>
> 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.

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

Daniel Nöthen

unread,
Apr 8, 2002, 3:21:53 PM4/8/02
to
Patrick Kilian wrote:

> 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

unread,
Apr 8, 2002, 3:24:26 PM4/8/02
to
Klaus von der Heyde wrote:

> 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.


Klaus von der Heyde

unread,
Apr 8, 2002, 3:58:38 PM4/8/02
to
Daniel Nöthen <d.no...@my-mail.ch> wrote:

>> 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 Nöthen

unread,
Apr 8, 2002, 4:44:49 PM4/8/02
to

> 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
>
Ging ja eigentlich nur darum das ich das printk irgendwie zum laufen
bekomme.
Weil ich ein Tut gefunden hab um kleine netfilter module zu schreiben und
ich halt einfach nur mit printk die debug messages ausgeben will.
Mehr moechte ich zur Zeit ja gar nicht mit modulen zu tun haben, deshalb
direkt ein dickes fettes Buch lesen habe ich nicht gerade fuer noetig
gehalten.
Und jetzt geh ich mal gucken was ich so darueber in den Buch finde ;)
Danke fuer den Tip.

Daniel

Felix von Leitner

unread,
Apr 8, 2002, 5:40:46 PM4/8/02
to
Thus spake Andreas Ferber (afe...@techfak.uni-bielefeld.de):
> Es ist zum heulen.

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.

Patrick Kilian

unread,
Apr 8, 2002, 6:03:02 PM4/8/02
to
Hallo alle zusammen,

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


Patrick Kilian

unread,
Apr 8, 2002, 6:00:30 PM4/8/02
to
Hallo alle zusammen,

> *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


h-peter recktenwald

unread,
Apr 14, 2002, 3:53:42 AM4/14/02
to

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

Felix von Leitner

unread,
Apr 14, 2002, 6:19:09 AM4/14/02
to
Thus spake h-peter recktenwald (ph...@snafu.de):

> besser waere deine diktion wohl kaum beschrieben worden.
> bitte, verdunste!

Wenn du willst, daß sich jemand mit deinem Geschreibsel
auseinandersetzt, dann halte dich an die übliche Rechtschreibung.

*plonk*

0 new messages