Hi,
wie der Titel besagt verstehe ich nicht was genau Kernel-Header sind und wozu man diese braucht. Bei bin ich nicht wirklich fündig geworden.
Danke schon mal
Was machen die Kernel-Header Pakete?
-
- Beiträge: 48
- Registriert: 06.03.2017 14:51:18
Re: Was machen die Kernel-Header Pakete?
"Machen" tun die Pakete zunächst gar nicht, denn sie bestehen nur aus den in der Programmiersprache C nötigen Dateien, in denen Funktionsprototypen deklariert sind, und zwar die, mit denen der Linuxkernel gebaut wird.ricksanchez hat geschrieben:wie der Titel besagt verstehe ich nicht was genau Kernel-Header sind und wozu man diese braucht.
Benötigt werden die Header nur dann, wenn du aus Fremdquellen Gerätetreiber selbst kompilieren willst/mußt. Das gilt z.B. für Graphiktreiber von Nvidia und AMD/ATI oder auch einige WLAN-Karten.
Wenn der Rechner ohne Fremdtreiber funktioniert, belegen die Kernelheader nur Plattenplatz ohne jemals zum Einsatz zu kommen.
-
- Beiträge: 48
- Registriert: 06.03.2017 14:51:18
Re: Was machen die Kernel-Header Pakete?
Vielen Dank für die schnelle Antwort.
Also brauche ich die Header wirklich nur fürs Kompilieren? Fremdtreiber sind in Form von Modulen auf dem System. Diese sind demnach nicht davon betroffen?
Habe mir vor kurzem den 4.9er Kernel kompiliert. Hätte ich dafür die Kernel-Header Pakete benötigt?
Also brauche ich die Header wirklich nur fürs Kompilieren? Fremdtreiber sind in Form von Modulen auf dem System. Diese sind demnach nicht davon betroffen?
Habe mir vor kurzem den 4.9er Kernel kompiliert. Hätte ich dafür die Kernel-Header Pakete benötigt?
-
- Beiträge: 3022
- Registriert: 03.11.2009 13:45:23
- Lizenz eigener Beiträge: Artistic Lizenz
-
Kontaktdaten:
Re: Was machen die Kernel-Header Pakete?
Ja
dann putze ich hier mal nur...
Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie
auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main
Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie
auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main
-
- Beiträge: 31
- Registriert: 30.10.2013 11:13:19
Re: Was machen die Kernel-Header Pakete?
Nein. Für's Kompilieren eines neuen/anderen Kernels brauchst du die Header-Pakete erst mal nicht. Aber wenn du Treiber oder Module nutzen willst, die in den Kernel-Quellen nicht mit drin sind, dann brauchst du sie.ricksanchez hat geschrieben:Habe mir vor kurzem den 4.9er Kernel kompiliert. Hätte ich dafür die Kernel-Header Pakete benötigt?
Ein Beispiel: Der ZFS-Dateisystem-Treiber für Linux ist aus Lizenzgründen nicht im Linux Kernel enthalten. Möchtest du ihn installieren, musst du das benötigte Kernel-Modul selbst kompilieren, da jedes Modul zunächst mal zum verwendeten Kernel passen muss. Hierfür werden die Kernel-Header benötigt. Mit jedem Kernel Update müssen das Kernel-Modul für den ZFS-Treiber dann neu kompiliert werden, auch wenn der Quellcode des ZFS-Treibers sich gar nicht geändert hat. In der Regel erfolgt das Neukompilieren der zusätzlichen Module nach einem Kernel-Update dann über automatische Mechanismen wie z.B. DKMS. Damit das funktioniert müssen mit jedem Kernel-Update auch die Kernel-Header aktualisiert werden, denn, wie gesagt, die sind ja nötig, um das Kernel-Modul so zu bauen, dass es zu deinem installierten Kernel passt.
Grafiktreiber sind ein bekanntes Beispiel für zusätzliche Treiber, die nicht im Kernel enthalten sind, die man sich aber als Kernel-Modul nachinstallieren kann.
Also, willst du einfach nur einen neuen Kernel kompilieren, nutzt aber keine Treiber, die der Kernel ohnehin nicht schon mitbringt, brauchst du zum Kompilieren keine Kernel-Header. Wenn du aber einen zusätlichen Treiber wie einen Grafik- oder den ZFS-Treiber benötigst, dann brauchst du Kernel-Header Pakete, und zwar für den Kernel, den du gerade verwenden möchstest.
Re: Was machen die Kernel-Header Pakete?
Wobei man sagen muß, daß die Kernelheader eine Teilmenge des Kernelquelltextes sind.stillebucht hat geschrieben:Nein. Für's Kompilieren eines neuen/anderen Kernels brauchst du die Header-Pakete erst mal nicht. Aber wenn du Treiber oder Module nutzen willst, die in den Kernel-Quellen nicht mit drin sind, dann brauchst du sie.
Um den Kernel zu kompilieren, braucht man die Quellen von kernel.org und diese beinhalten auch gleichzeitig die Kernelheader.
Will man dann Fremdmodule für den selbst kompilierten Kernel kompilieren, braucht man die Kernelheader nicht extra installieren, die sind ja schon da.
Nimmt man den Standard Debiankernel und will Fremdmodule kompilieren, dann braucht man entweder die Kernelheader oder man installiert den kompletten Quelltext. Die Header benötigen halt viel weniger Plattenplatz.
-
- Beiträge: 48
- Registriert: 06.03.2017 14:51:18
Re: Was machen die Kernel-Header Pakete?
Das macht Sinn. Bei mir waren es NVIDIA-Treiber, die über einen .run-Installer ausgeführt wurden. Wäre sowas ein DKMS-Modul? Wie erkennt man eigentlich ob eine Modul DMKS ist oder nicht?