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

Kerneltreiber programmierung

0 views
Skip to first unread message

Martin Freiberg

unread,
Jan 10, 2009, 12:04:22 PM1/10/09
to

Hallo,

Ich versuche mich nebenbei etwas in der Programmierung von
Kerneltreibern (Vanilla Kernel 2.6.23).

Beim Versuch zum Kompilieren fliegen mir die Fehlermeldungen nur
so um die Ohren (Ok, ich verwende alte Beispiele). Wie ich dann per
Google herausgefunden habe reduziert sich die Fehleranzahl sehr stark,
wenn ich linux/autoconf.h mit einbinde.

Vor Jahren als ich noch mit einer Kernelversion 2.2.xx probierte,
musste ich nichts dergleichen einbinden, außer dem Üblichen (init.h und
modules.h).

Liegt das evtl. darin, das ich mir das Makefile so wie in früheren
Zeiten üblich erstellt habe und kein GNUmake, autoconf, etc. verwende,
oder ist hier bei der Installation was schief gelaufen, oder mache
ich hier einen totalen Denkfehler und man muss jetzt linux/autoconf.h
mit einbinden?

Meine Literatur bezieht sich auch noch auf die alten Kernel.
(Was für Literatur - bevorzugt deutsch - könnt ihr mir hier
empfehlen?)

Gruß
Martin

Sven Geggus

unread,
Jan 10, 2009, 1:14:52 PM1/10/09
to
Martin Freiberg <ly...@web.de> wrote:

> Liegt das evtl. darin, das ich mir das Makefile so wie in früheren
> Zeiten üblich erstellt habe und kein GNUmake, autoconf, etc. verwende

Autoconf verwendet der Kernel nicht. Aber dieses kbuild ist seit
2.6.x neu!

> oder ist hier bei der Installation was schief gelaufen, oder mache
> ich hier einen totalen Denkfehler und man muss jetzt linux/autoconf.h
> mit einbinden?
>
> Meine Literatur bezieht sich auch noch auf die alten Kernel.
> (Was für Literatur - bevorzugt deutsch - könnt ihr mir hier
> empfehlen?)

Documentation/kbuild/makefiles.txt

http://www.linuxchix.org/content/courses/kernel_hacking/lesson8

Das Beispiel von dort dieser URL läuft hier einwandfrei mit 2.6.28

Allerdings muß
#include <linux/config.h>

durch
#include <linux/autoconf.h>

ersetzt werden.

Ansonsten ist das "Linux Device Drivers" Buch natürlich auch noch
interessant:
http://lwn.net/Kernel/LDD3/

Gruss

Sven

--
"Every time you use Google, you're using a Linux machine"
(Chris DiBona, a programs manager for Google)

/me is giggls@ircnet, http://sven.gegg.us/ on the Web

Martin Freiberg

unread,
Jan 11, 2009, 4:19:15 PM1/11/09
to
Sven Geggus schrieb:
> Martin Freiberg <ly...@web.de> wrote:

>> oder ist hier bei der Installation was schief gelaufen, oder mache
>> ich hier einen totalen Denkfehler und man muss jetzt linux/autoconf.h
>> mit einbinden?

>> Meine Literatur bezieht sich auch noch auf die alten Kernel.
>> (Was für Literatur - bevorzugt deutsch - könnt ihr mir hier
>> empfehlen?)

> http://www.linuxchix.org/content/courses/kernel_hacking/lesson8

Gut gemachte Seite. :)

> Das Beispiel von dort dieser URL läuft hier einwandfrei mit 2.6.28
> Allerdings muß
> #include <linux/config.h>
> durch
> #include <linux/autoconf.h>
> ersetzt werden.

Ab wann wurde die Änderung eingeführt?
Die Anleitung wurde wohl mit Kernel 2.6.9 gemacht. Von daher währe
bezüglich dieser Änderung jede Anleitung vor 2.6.10 obsolete.
Oder?

Ein Blick in linux/config.h (viel zu spät passiert) bringt den
aha-Effekt.

/* This file is no longer in use and kept only for backward
* compatibility. autoconf.h is now included via -imacros on
* the commandline
*/
#include <linux/autoconf.h>


Nur, warum greift die include-Zeile da drin nicht?


> Ansonsten ist das "Linux Device Drivers" Buch natürlich auch noch
> interessant:
> http://lwn.net/Kernel/LDD3/

Habe ich hier, allerdings eine wesentlich ältere Ausgabe die noch
keinen 2.6 Kernel kennt.
Allerdings gibt es von der 3.Version noch keine deutsche Ausgabe. :(


Danke für deine Tips.
Martin

H. S.

unread,
Apr 18, 2009, 10:04:16 AM4/18/09
to
Hi!

>> (Was für Literatur - bevorzugt deutsch - könnt ihr mir hier
>> empfehlen?)

Ich kann Dir http://ezs.kr.hsnr.de/TreiberBuch/html/ empfehlen.

--
H. S.
email: perl -le "print scalar reverse qq/ed.teneerf\100onim.od/"

Martin Freiberg

unread,
Jun 9, 2009, 6:17:42 AM6/9/09
to
H. S. schrieb:

Hi,

>>> (Was fᅵr Literatur - bevorzugt deutsch - kᅵnnt ihr mir hier


>>> empfehlen?)
> Ich kann Dir http://ezs.kr.hsnr.de/TreiberBuch/html/ empfehlen.

Super, das ist ja besser als ich erhofft hatte.

Vielen Dank fᅵr den Tip.

Gruᅵ
Martin


Sven Geggus

unread,
Jun 9, 2009, 6:28:27 AM6/9/09
to
Martin Freiberg <ly...@web.de> wrote:

>> Ich kann Dir http://ezs.kr.hsnr.de/TreiberBuch/html/ empfehlen.
>
> Super, das ist ja besser als ich erhofft hatte.

Das Standardwerk ist eigentlich das hier:
http://lwn.net/Kernel/LDD3/

Gruss

Sven

--
"Ich bin als Abgeordneter nicht dazu da, zu kontrollieren, ob die
Exekutive ihre Arbeit richtig macht" (Thomas Strobl, CDU)

0 new messages