Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Kernel-Headers

  1. #1
    Foobie of the Universe Avatar von Corcovado
    Registriert seit
    Dec 2004
    Beiträge
    500

    Kernel-Headers

    Hallo,
    Ich hab mal als Anfaenger eine Frage:
    - Was sind denn eigentlich Kernel-Headers genau?
    - Ich habe einen Treiber fuer ein USB Modem, der unbedingt diese Kernel-Headers braucht. Wenn ich nun einen eigenen Kernel kompiliert hab, wo bekomm ich die entsprechenden Headers her ?
    Oder kann ich da einfach die von der "Basis-Version" nehmen zu den entspr. sources die ich halt da verwendet hab?
    Sucu Sucu is most complicated. If you comprende Sucu Sucu, you can feel it. But if you don't have Sucu Sucu, it is nothing!

  2. #2
    Registrierter Benutzer
    Registriert seit
    Aug 2004
    Ort
    Bad Wünnenberg
    Beiträge
    5.402
    Zitat Zitat von Corcovado
    - Was sind denn eigentlich Kernel-Headers genau?
    Die Kernel-Headers sind die Entwicklungsdateien des Linux Kernels.
    Zitat Zitat von Corcovado
    - Ich habe einen Treiber fuer ein USB Modem, der unbedingt diese Kernel-Headers braucht. Wenn ich nun einen eigenen Kernel kompiliert hab, wo bekomm ich die entsprechenden Headers her ?
    Oder kann ich da einfach die von der "Basis-Version" nehmen zu den entspr. sources die ich halt da verwendet hab?
    Die Kernel-Headers sind bei den Kernel Sourcen dabei.
    Gruß,
    Tomek

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jun 2002
    Beiträge
    565
    Man kann auch andere kernel-headers (standart sind immer noch soweit ich weis 2.4-xxx headers) benutzen allerdings müss dazu nacher zwingend die glibc angepasst werden (sowie in folge dessen den gcc aber das system abhängig),allerdings glibc anzupassen ist meiner meinung nach das gefährlichste was man tun kann .Im folge dessen das man glibc nicht abgleicht werden die meisten kernel-module nicht mehr geladen . Ausserdem ist es so wenn man strickt auf die kernel-headers 2.6-xxx wechselt kann es sein das veraltete module auch nicht mehr gealden werden , da ist mehr oder weniger probieren und abwiegen ,ob es ein muss ist die headers zu ändern und ob dann noch die für einen selber benötigten module noch funktionieren .Die Headers kriegste auch bei www.kernel.org

  4. #4
    @Debian Avatar von tictactux
    Registriert seit
    Oct 2004
    Beiträge
    2.872
    Zitat Zitat von WFlyer
    Man kann auch andere kernel-headers (standart sind immer noch soweit ich weis 2.4-xxx headers) benutzen
    in diesem Fall (kompilieren eines Kernel-Moduls) würde ich das nicht sagen.
    Einige Distributoren (z.B. Debian) bieten passende Pakete der Kernel-Header für
    jede Kernelversion an (bzw. Tools um diese zu erstellen), so daß gerade die
    glibc-Header nicht überschrieben werden.
    Kurz: Kernel-Module kompiliert man mit den installierten Kernel-Headern des
    Kernels, für den kompiliert wird. Vorzugsweise benutzt man dazu Pakete des
    Distributors (falls verfügbar), da in diesem Fall auch für korrektes Setzen von
    Symlinks für die Header gesorgt wird.
    Die Dokumentation des Header-Pakets sollte man auch lesen, dort wird hoffentlich
    (je nach Distribution) im Detail beschrieben, was das Paket macht.

    Gruss,
    Wolfgang

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jun 2002
    Beiträge
    565
    Hm ich benutze gentoo und habe nach wie vor die headers -2.4.22.r1 mit kernel 2.6.11 ohne probleme am laufen .Allerdings hatte ich damals eimal gewechselt auf die kernel header 2.6.xxx ,was bei mir grosse probleme verursacht hat ich müsste mein gesamtes system neu anpassen ,nachdem aber bestimmte kernel module immer noch gestreikt haben und ihren dienst verweigert haben bin ich wieder zurück auf die 2.4 reihe wobei ich keine probs mehr hatte(mit 2.6 kernel wohlgemerkt) . Hab gerade in der portage nachgeschaut hehe die 2.4 sind raus nur noch 2.6 headers da lol hast recht ist wohl an der zeit zu wechseln .
    Geändert von WFlyer (29.03.05 um 02:07 Uhr)

  6. #6
    Foobie of the Universe Avatar von Corcovado
    Registriert seit
    Dec 2004
    Beiträge
    500
    Hallo, jetz hab ich noch ein paar Fragen zu den Antworten:
    @Tomek
    Zitat Tomek: Die Kernel-Headers sind die Entwicklungsdateien des Linux Kernels.
    Was verstehst Du unter "Entwicklungsdateien des Linux Kernels"? Kennst Du vielleicht einen Link wo das einfach und kurz erklaert ist? Kernel-Sources sind doch auch Entwicklungsdateien des Linux Kernels oder irre ich mich?

    Zitat Tomek: Die Kernel-Headers sind bei den Kernel Sourcen dabei.
    In der Anleitung, wie ich das Modem installieren muss, hiess es, ich soll da nen Link auf Kernel-headers machen und dann damit blablabla - Dann muesste es eigentlich auch funktionieren, wenn ich zB den Link auf die Kernel-Sources mach (oder wo finde ich die headers in den sources )?

    @WFlyer
    Wenn ich zB ein Sarge/2.6 installiere und dann die Kernel-Headers/Sources dazu apt-gette, dann sollte ich doch aber schon die 2.6er Kernel-Headers nehmen oder reichen die 2.4er aus, bzw sind sogar noch stabiler - bin nun etwas verwirrt?
    Sucu Sucu is most complicated. If you comprende Sucu Sucu, you can feel it. But if you don't have Sucu Sucu, it is nothing!

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jun 2002
    Beiträge
    565
    Zitat @ tictactux
    Einige Distributoren (z.B. Debian) bieten passende Pakete der Kernel-Header für
    jede Kernelversion an (bzw. Tools um diese zu erstellen), so daß gerade die
    glibc-Header nicht überschrieben werden.

    Wenn das so ist und davon gehe ich aus (kenne mich mit Debian nicht so aus ) ist es relativ simpel nene musst nicht wieder auf 2.4 zurückgehen wollte dich nicht verwirren ,solange dein system gut läuft und du zufrieden bist würde ich da nichts machen , wenn du nur ein symlink setzten musst würde ich die kernel-headers auch nicht anruhren ,schau dir mal die doku an von deinen modem an müsste eigendlich drinne stehen bzw. die doku von deiner distri ,wie und wo du einen symlink auf die headers setzen sollst , denke kannst mitlerweile die 2.6 nehmen sind nicht mehr als dev gekenzeichnet sind auf standart

  8. #8
    @Debian Avatar von tictactux
    Registriert seit
    Oct 2004
    Beiträge
    2.872
    Zitat Zitat von Corcovado
    Wenn ich zB ein Sarge/2.6 installiere und dann die Kernel-Headers/Sources dazu apt-gette, dann sollte ich doch aber schon die 2.6er Kernel-Headers nehmen oder reichen die 2.4er aus, bzw sind sogar noch stabiler - bin nun etwas verwirrt?
    Was Du unter Debian brauchst:
    - Paket kernel-source-<Version> (das ist es, was Tomek meinte)
    - Paket kernel-headers-<Version>
    - Paket kernel-package (das ist nicht notwendig, erleichtert aber das Erstellen von allem Zubehör zu einem Kernel sehr (incl. kernel-paket, Pakete für externe Module, initrd, kernel-headers,...)
    Lies nach Installation davon "man make-kpkg" (und evtl. die Dokumente in /usr/share/doc/kernel-package).

    Benutze das Debian Paket kernel-package zum Estellen von:
    1. Paket kernel-image
    2. Pakete für externe module (z.b. Dein Modem)
    3. bei Bedarf auch das Paket kernel-headers für die verwendete Kernelversion.

    das geht z.B. so (auszuführen im Kernelverzeichnis):
    Code:
    make-kpkg clean
    make-kpkg --revision=.XX --append-to-version=.XX kernel-image modules-image
    eventuell als zusätzliches Argument --initrd (falls Du eine solche benutzt).

    Das Paket kernel-headers wäre nicht strikt notwendig, da die Header selber ja bereits im kernel-source-Paket enthalten sind. Durch Setzen von einigen Links könnte man also /usr/src/<linux>/include benutzen.
    Für einen Normal-User empfehle ich (persönliche Meinung) unter Debian die beschriebene Vorgehensweise, als eine weniger fehleranfällige.

    Für die Kompilierung einiger Kernel-Module kann es nötig sein, /usr/src/linux als Symlink auf das aktuelle Kernelquellverzeichnis anzulegen.
    Prüfe evtl. ob der Treiber für Kernel 2.6 geeignet ist (besonders wenn der Quellcode älter ist!).
    dann sollte ich doch aber schon die 2.6er Kernel-Headers nehmen oder reichen die 2.4er aus, bzw sind sogar noch stabiler
    das hat nichts mit Stabilität zu tun. Wenn Du ein Kernel-Modul kompilierst und dessen Hersteller extra betont, daß er die Kernel-Header braucht, mußt Du die Header zu dem Kernel benutzen, mit dem das Modul laufen soll. Aus meiner Sicht hat WFlyer nicht deutlich genug zwischen den glibc-Linux-Headern (in /usr/include/linux) und den Kernelheadern des *benutzten* Kernels (/usr/src/kernel-version/include) unterschieden.
    Diese beiden sind schon länger unabhängige Dinge, das Thema ist etwas komplexer.
    Bei Interesse, dazu z.B. diesen Thread (recht technisch Nov/Dez 2004, mit Linus T.'s Beteiligung)
    http://www.ussg.iu.edu/hypermail/lin...11.3/0533.html
    Auf der Debian-Website gibt es auch Statements zu dieser "header-policy".

    Das war nun aber genug
    Gruss,
    Wolfgang

  9. #9
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Um die Verwirrung zu vervollständigen: für das Übersetzen von externen Modulen ist es bei Linux 2.6 mit den Kernelheadern nicht mehr getan, es werden darüber hinaus noch einige weitere Komponenten der ursprünglichen Kernelquellen (genauer: einige Dateien/Werkzeuge, die auf Basis der Konfigurationsdatei und der Kernelquellen beim Übersetzen des Kernels erstellt wurden) benötigt. Die Fedora Core 3 Kernelpakete sind diesbezüglich recht gute Anhaltspunkte für interessierte.

  10. #10
    @Debian Avatar von tictactux
    Registriert seit
    Oct 2004
    Beiträge
    2.872
    Zitat Zitat von zander
    Um die Verwirrung zu vervollständigen: für das Übersetzen von externen Modulen ist es bei Linux 2.6 mit den Kernelheadern nicht mehr getan, es werden darüber hinaus noch einige weitere Komponenten der ursprünglichen Kernelquellen (genauer: einige Dateien/Werkzeuge, die auf Basis der Konfigurationsdatei und der Kernelquellen beim Übersetzen des Kernels erstellt wurden) benötigt
    und um uns der kritischen Masse weiter zu nähern :
    da Debian gefragt war: hier wäre das Paket kernel-kbuild-2.6-3 das Pendant zu obigem
    (welches als Abhängigkeit von dem kernel-headers Paketen mitinstalliert wird).

  11. #11
    Foobie of the Universe Avatar von Corcovado
    Registriert seit
    Dec 2004
    Beiträge
    500
    @Tictactux
    Ja danke. Das Kernel-package sagt mir schon was, da ich ja seit einiger Zeit versuche immer wieder mal einen Kernel zu backen (was aber leider recht zeitaufwendig sein kann...), aber ich glaube Du hast mir nun fast die Antwort gegeben, die mir Klarheit bringen koennte:
    ... Links könnte man also /usr/src/<linux>/include...
    Nun also die Frage: sind die "kernel-headers" also die include-Dateien (sprich die "headers") des Kernels, also das was man in C mit .h abspeichern wuerde (zB.: stdio.h), dann waers alles klar?
    Sucu Sucu is most complicated. If you comprende Sucu Sucu, you can feel it. But if you don't have Sucu Sucu, it is nothing!

  12. #12
    @Debian Avatar von tictactux
    Registriert seit
    Oct 2004
    Beiträge
    2.872
    Zitat Zitat von Corcovado
    Nun also die Frage: sind die "kernel-headers" also die include-Dateien (sprich die "headers") des Kernels, also das was man in C mit .h abspeichern wuerde (zB.: stdio.h), dann waers alles klar?
    Ja
    einerseits jene in /usr/src/<kernel-version>/include,
    und den Inhalt des Debian-Pakets kernel-headers-xxx kannst Du mit
    dpkg -L kernel-headers-2.6.x-x einsehen (sind noch ein paar Scripte/Doku dabei).
    Letztere werden bei Debian unter /usr/src/kernel-headers-2.6.x-x installiert.

Ähnliche Themen

  1. SCSI und IDE nicht zusammen unter Fedora Core 3
    Von obelix im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 28.11.04, 19:15
  2. Antworten: 2
    Letzter Beitrag: 27.05.04, 12:15
  3. Freeze..
    Von gast44 im Forum System installieren und konfigurieren
    Antworten: 9
    Letzter Beitrag: 01.04.04, 17:43
  4. Antworten: 10
    Letzter Beitrag: 21.01.04, 07:51
  5. Alcatel-USB Modem unter Debian
    Von tanity im Forum Anbindung an die Aussenwelt
    Antworten: 2
    Letzter Beitrag: 24.05.03, 15:39

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •