Kerneltreiber programmierung

10/01/2009 - 18:04 von Martin Freiberg | Report spam
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
 

Lesen sie die antworten

#1 Sven Geggus
10/01/2009 - 19:14 | Warnen spam
Martin Freiberg 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/co...ng/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 , http://sven.gegg.us/ on the Web

Ähnliche fragen