Was sind Kernel Headers?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Meal
Beiträge: 84
Registriert: 18.08.2003 15:32:14
Wohnort: Köln

Was sind Kernel Headers?

Beitrag von Meal » 15.02.2005 12:34:33

Grundsatzfrage eines Kernel-Newbies:

Was sind eigentlich Kernel Headers? Was auch immer sie sind, muss ich sie ja wohl installieren, um Module kompilieren zu können, sofern ich einen kernel-image installiert habe. Muss ich sie auch installieren, wenn ich einen eigenen Kernel via Debian-Methode gebacken habe?

Ich habe im Ronnenburg-Buch und im Forum gesucht, aber keine passenden Informationen gefunden, daher besten Dank für die Nachhilfe.

Meal
Debian Sarge - Kernel 2.6.14 aus Debian Source
IBM Thinkpad R51

Benutzeravatar
thorben
Beiträge: 722
Registriert: 14.09.2003 23:23:49

Beitrag von thorben » 15.02.2005 14:04:00

moin,
kernel headers sind der sourcecode des kernel, gibts auf kernel.org oder auch über apt-get passend mit debian patches versehen

gruß
thorben

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 15.02.2005 14:20:51

Nein, die Kernel Headers sind eben nicht der Source-Code des Kernels.
Es sind nur die .h-Dateien, in denen Konstanten, Funktionen und dergleichen deklariert werden. Der Quellcode selbst ist was anderes ;)
Kleines Beispiel:

Code: Alles auswählen

/*
 *      Access to VGA videoram
 *
 *      (c) 1998 Martin Mares <mj@ucw.cz>
 */

#ifndef _LINUX_ASM_VGA_H_
#define _LINUX_ASM_VGA_H_

/*
 *      On the PC, we can just recalculate addresses and then
 *      access the videoram directly without any black magic.
 */

#define VGA_MAP_MEM(x) (unsigned long)phys_to_virt(x)

#define vga_readb(x) (*(x))
#define vga_writeb(x,y) (*(y) = (x))

#endif
Das ist z.B. ne Headerfile aus den Kernel-Headers.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22355
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 15.02.2005 14:23:52

Der komplette Sourcecode hat rund 30 - 40 MB (Kernel-2.6.xx) umfang gepackt als tar.bz2 bzw tar.gz. Kernel-headers sind nur die include Dateien. Die hat man auch wenn man den kompletten Sourcecode hat. Werden also nicht zusätzlich gebraucht.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.02.2005 14:57:37

Vereinfacht gesagt, enthalten kernel-headers alle Dateien, die notwending sind, um Kernel-Module zu kompilieren. So brauchst du nicht die ganzen Sourcen, nur um den NVidia-Treiber zu aktualisieren.

Meal
Beiträge: 84
Registriert: 18.08.2003 15:32:14
Wohnort: Köln

Beitrag von Meal » 15.02.2005 15:08:35

Wenn ich das also richtig verstanden habe, brauch ich die Kernel Headers, wenn ich mein System mit einem Kernel-Image fahre und nun mit möglichst geringem Aufwand Module (wlan, Grafikkarte, etc.) kompilieren und installieren möchte. Die .h Dateien werden im Rahmen der Kompilierung erstellt und liegen dann unter /usr/src/xxx? D. h. wenn ich mir die Mühe gemacht habe, einen Kernel zu backen, brauche ich kein Kernel-Header-Paket installieren.

Schön. Ich werde wohl heute Abend meinen ersten Versuch zum Kernel-Backen starten. Wenn ich die config vom Debian-Kernel-Image nehme, siehts ja gar nicht so schwierig aus. Am meisten fürchte ich, dass mein lahmer PC (450Mhz, 512 MB Billig-RAM) erstmal für ein Stündchen oder zwei beschäftigt ist, bevor ich einen evtl. Fehler korrigieren kann ....

Vielen Dank

Meal
Debian Sarge - Kernel 2.6.14 aus Debian Source
IBM Thinkpad R51

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 15.02.2005 16:35:55

Solange wird er auch wieder nicht brauchen ;)

Meal
Beiträge: 84
Registriert: 18.08.2003 15:32:14
Wohnort: Köln

Beitrag von Meal » 16.02.2005 10:24:26

nepos hat geschrieben:Solange wird er auch wieder nicht brauchen ;)
Du hattest recht. Allerdings wohl anders als du gedacht hast: make-kpkg hat 2 h 25 min gebraucht. 8O

Obwohl ich die config vom Kernel-Image unverändert eingelesen habe, funktioniert der framebuffer nicht. Jedenfalls bleibt der Bildschirm beim booten schwarz bis X-Window gestartet ist. Auch dann ist ein Einloggen auf der Konsole nicht möglich. Unter meiner alten Grafikkarte (ATI 128 rage Fury) war es bislang nicht erforderlich, besondere Module zu kompilieren. Aufgrund des erheblichen Zeitbedarfs (ist ja kaum an einem Feierabend zu schaffen) wird mein nächster Versuch wohl noch auf sich warten lassen müssen ....

:evil:

Hautpsache ich weiß, wie es im Prinzip funktioniert und das normale Kernel-Image tut seine Dienste. Der Rest ist Kür. :D

Grüße

Meal
Debian Sarge - Kernel 2.6.14 aus Debian Source
IBM Thinkpad R51

Antworten