Hi!
Ich habe ein Debian Etch 4.0, installiert von DVD, läuft rund.
Möchte virtualbox installieren und es werden fehlende kernel headers moniert.
Und da hackt ´s bei mir: Wie werden kernelheaders installiert? Kann ja nicht so schwer sein, aber ....
Verweis auf ein Howto oder ein wiki wäre ideal.
vielen dank! Peter
Linux 15.070 Themen, 107.540 Beiträge
Headerdateien sind ein Teile vom Programmcode eines C oder C++ Programmes. In diesem Fall ist es ein Teil des Programcodes vom Linux Betriebsystemkern.
Im Programmcode sind Präprozessoranweisungen wie "include stdio.h" und dadurch wird vom Präprozessor diese Headerdatei in den Programmtext hineinkopiert .
Deshalb muß man auch diese Headerdateien installieren.
Du gibst in der Konsole den Befehl "uname -r" ein:
uname -r
2.6.18
Danach wird die Version des laufenden Linuxkernels angezeigt. Ich habe hier auch etch und da wird ein 2.6.18er Kernel installiert.
Dann startest du aptitude oder synaptic und sucht nach kernel-headers. Du kannst aber auch apt nutzen:
apt-cache search kernel-headers
linux-kernel-headers - Linux Kernel Headers for development
und dann mit:
"apt-get install linux-kernel-headers" diese Headerdateien
installieren.
Wenn du später mal einen eigenen Betriebsystemkern übersetzt, dann sind beim Programmcodes des Betriebsystemkerns (linux-source-2.6.18 - Linux kernel source for version 2.6.18 with Debian patches) schon die passenden Headerdateien dabei und brauchen nicht noch extra installiert zu werden.
Die Headerdateien werden automatisch unter /usr/src/ installiert.
Ich würde VMware Workstation bevorzugen.
Hi Karsten!
Vielen Dank für Deine schnelle Antwort! Ich werde es sogleich probieren.
Nochmals ganz vielen Dank! Peter
Ich habe gerade bei synaptic noch mal nach linux-headers gesucht. Da gibt es mehrere Versionen von den 2.6.18er Headerdateien:
Wie lautet denn die genaue Bezeichnung des verwendeten Kernels vmlinuz????.
Ich brauche die Headerdateien nicht zu installieren, da ich immer einen eigenen Betriebsystemkern übersetze und den kompletten linux-source-2.6.18 installieren. Da sind dann immer die passenden Headerdateien als Teil des Programmcodes dabei.
Immer wenn du einen Treiber oder ein Programm installieren willst, das irgendwelche Funktionen des Betriebsystemkerns verwendet müssen diese Headerdateien installiert sein.
Außer wenn du einen eigenen Betriebsystemnkern übersetzen willst und den kompletten Programmcode des Linuxkernels installiert hast.
Hi Carsten,
bei uname -r erscheint: 2.6.18-4-k7 und so steht es auch im GRUB.
Im Verzeichnis /usr/src sind keine headers enthalten; öffnet man die README der headers (gefunden mit locate), dann steht da sinngemäß, daß sie nur Platzhalter sind.
Woran könnte das liegen? vielen Dank für deine Mühe Peter
Es gibt bei Linux zwei verschiedene Headerdateien. Einmal dieses Paket:
linux-kernel-headers 2.6.18-7
Linux Kernel Headers for development
This package provides headers from the Linux kernel. These headers
are used by the installed headers for GNU glibc and other system libraries.
Und dann gibt es verschiedene linux-headers-2.6???
Diese Headerdateien werden unter /usr/src automatisch installiert.
Du verwendest eine Linux Kernel 2.6.18 der für einen K7 Athlon vom Compiler gcc schon optimiert wurde (zwecks Performancesteigerung)
Linuxkernelversion
2.6.18-4-k7
Deshalb würde ich dieses Paket installieren:
linux-headers-2.6.18-4-k7
Header files for Linux 2.6.18 on AMD K7
This package provides the architecture-specific kernel header files for
Linux kernel 2.6.18 on 32bit AMD Duron/Athlon/AthlonXP machines, generally
used for building out-of-tree kernel modules. These files are going to be
installed into /usr/src/linux-headers-2.6.18-4-k7, and can be used for
building modules that load into the kernel provided by the
linux-image-2.6.18-4-k7 package.
Die entsprechenden Headerdateien werden unter /usr/src automatisch installiert.
Entschuldige , ich habe da wohl was verwechselt .
Nimm am besten synaptic und such mal nach linux-headers.
Da wird dann auch diese Paket linux-headers-2.6.18-4-k7 mit angezeigt.
Wie schon gesagt solche Probleme habe ich nicht, weil ich immer einen eigenen Betriebsystemkern übersetze und bei linux-source-2.6.18 die passenden Headerdateien dabei sind.
PS: Ich glaube ich habe mal gelesen warum es zwei verschiedene Kernelheaders bei Linux momentan gibt. Die einen sind für Programme gedacht die im userspace laufen und die anderen für Programme (Treiber) die im Kernelspace laufen.
Das hatte ich ganz vergessen.
Der Kernelspace ist praktisch der betriebsystemkern und der userspace ist der Speicherbereich wo die normalen Anwendungesprogramme laufen. Man will das irgendwann mal ändern und die zwei Headerdateien zusammenführen.
Vielen Dank - ich probiere es mal!
Aber auch in synaptic werden die headers als installiert ausgewiesen. Vermutlich sind meine Probleme, alldieweil Etch out-of-the-box installiert, doch ungewönlich.
Du würdes wmware bevorzugen? Das teste ich auch mal, falls ich virtualbox nicht bald zum Laufen bekomme.
Viele Grüße! Peter
Hast du denn den Compiler gcc , make und das Paket binutils installiert?
Weißt du ungefährt was ein Compiler wie der gcc macht ?
Bei VMware Workstation müssen diverse Treiber übersetzt werden und da Treiber Kernelmodule sind die zur Laufzeit in den Betriebsystmekern geladen werden, muß eine Kernelschnittstelle übersetzt werden .
Diese Kernelschnitstelle ändert sich so bald man ein Update des Linuxkernel durchführt. Dann müssen wieder die Treiber neu kompiliert werden.
Hi Karsten - ich sehe schon, das ist was Größeres.
Nachdem ich eher ein Newbie bin, werde ich erst mal die Finger von wmware lassen und noch etwa Grundlagenarbeit machen. Also mich einlesen. Dann sehen wir weiter.
Vielleicht gibt es mal ein .deb direkt von debian für virtualbox, daß relativ problemlos aufgespielt werden kann. Ooo 2.3 fand ich im Netz fix und fertig zum installieren - genial. Bis dahin wird halt verschieden gebootet werden müssen je nach Bedarf (XP oder Debian).
Ich bedanke mich ganz herzlich für Deine Hilfe; es scheitert einfach noch an meinem mangelndem Wissen.
Viele liebe Grüße! Peter
Wenn dir Debian als Distribution gefällt, dann mußt du dir eben mal ein paar Handbücher besorgen:
http://debiananwenderhandbuch.de/
und besonders hat mr das Buch von Martin F. Kraft gefallen:
https://www.opensourcepress.de/index.php?26&backPID=15&tt_products=52
Hier gibt es ein paar Open Books zum Online Lesen:
http://www.galileocomputing.de/katalog/openbook?GalileoSession=42512447A3.3f6c-y88
Hi Karsten!
vielen Dank für die Buchverweise! Ich werde mich einlesen.
viele Grüße Peter
Die sorgenfreie Variante:
aptitude install build-essential
