[[Vorlage(getestet, general)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Paketinstallation_DEB: Ein einzelnes Paket installieren] }}} Seit Anfang März 2009 bietet das [ubuntu:KernelTeam:Ubuntu-Kernel-Team] zusätzlich zu den über die Paketquellen erhältlichen [:Kernel:] die ''Mainline-Kernel'' an. Hierbei handelt es sich um die unmodifizierten Linux-Kernel von [https://www.kernel.org kernel.org] {en}, welche lediglich mit der Ubuntu-Kernel-Konfiguration kompiliert wurden. Dies bedeutet (auch): * Der Kernel enthält "nur" die in ihm enthaltenen Treiber * Es gibt keine Ubuntu-spezifischen Kernel-Patches * Es gibt keine Restricted-Modules * Es kann sein, dass das System unter diesem Kernel nicht läuft * Es gibt nur amd64, arm64, armhf, ppc64el und s390x generic-Kernel, keine anderen Architekturen * Es gibt i386 nur bis Kernel Version 5.2 * Es gibt nur unsigned-Kernel, der im [:EFI_Grundlagen: UEFI Secure Boot] nicht startet. * Es gibt keinen Support für diese Kernel Der Mainline-Kernel kann in verschiedenen Situationen interessant sein, beispielsweise * wenn der original Ubuntu-Kernel Probleme macht, kann man den Mainline-Kernel zur Eingrenzung von Fehlern nutzen * wenn der original Ubuntu-Kernel einen Treiber (noch) nicht enthält, ein neuerer Kernel diesen aber beinhaltet = Installation = Der Mainline-Kernel ist nicht über die Paketquellen verfügbar, sondern muss als einzelnes Paket heruntergeladen werden. [[Vorlage(Fremd, Paket)]] Alle Kernel findet man unter [https://kernel.ubuntu.com/~kernel-ppa/mainline/] {dl}, grundsätzlich kann man jeden Kernel unter jeder Ubuntu-Version installieren [1]. Die dort angebotenen Varianten und die Anzahl der Kernelpakete unterscheiden sich je nach Erstellungsdatum der Pakete. Diese Beschreibung bezieht sich auf v3.18-vivid. Es reicht, das Paket '''linux-image-*-generic''' herunterzuladen. Für einige Kernelversionen werden auch andere Varianten neben '''generic''' angeboten, so gibt es etwa bei Kernel 3.18 die '''lowlatency'''-Variante für einen [:Kernel#Echtzeitkernel:Kernel mit Echtzeit-Eigenschaften]. Bis April 2013 wurde zusätzlich zu '''linux-image-*''' ein Paket '''linux-image-extra-*''' bereitgestellt, das zusätzliche Treiber (den Großteil der Kernelmodule) enthält und bei Bedarf immer zusammen mit dem dazugehörigen '''linux-image-*'''-Paket installiert werden muss. Seit April 2013 sind diese Treiber im '''linux-image-*'''-Paket enthalten. Sollen eigene Treiber/[:Kernelmodule:] gebaut werden, so wird auch das allgemeine '''linux-headers-*'''-Paket sowie das zur gewählten Kernelvariante passende '''linux-headers-*-{generic,lowlatency,…}'''-Paket benötigt. Falls von [:DKMS:] verwaltete Kernelmodule verwendet werden, sollten die '''linux-headers-*'''-Pakete unbedingt installiert werden, damit die Module für den neuen Kernel automatisch erstellt werden. Dies ist zum Beispiel beim proprietären Treiber für NVIDIA-Grafikkarten und bei VirtualBox der Fall. {{{#!vorlage Hinweis Das Paket `linux-headers-generic` zu neueren Kernel Versionen (>= 5.10.32) hat eine Abhängigkeit zu '''libc6 (>= 2.33)''', welche erst ab [https://packages.ubuntu.com/hirsute/libc6 Ubuntu hirsute (21.04)] {en} vorhanden ist. Da `linux-headers-generic` nur benötigt wird, um Kernel Module (z.B. mit [:DKMS:]) zu generieren, kann man die neueren Kernels auch ohne die `libc6 (>= 2.33)` benutzen. Allerdings muss man dann z.B. auf [:VirtualBox:] verzichten. }}} Der Kernel kommt dem originalen Ubuntu-Kernel nicht in die Quere und kann parallel installiert werden, genau so wie mehrere Mainline-Kernel möglich sind. Es wird dann auch der entsprechende Eintrag für [:GRUB_2:] erzeugt. Für die Installation können alle gewünschten Paketdateien in ein neu angelegtes und ansonsten leeres Verzeichnis heruntergeladen werden. Nachdem auf dem Terminal in dieses Verzeichnis gewechselt wurde, lassen sich die Pakete mittels {{{#!vorlage Befehl sudo dpkg -i *.deb }}} installieren. {{{#!vorlage Hinweis Möglicherweise benötigt ein neuerer Kernel, bzw. die neueren Module zusätzliche Linux-Firmware Dateien. Die neusten Firmware Dateien, die vom Linux-Kernel Team gesammelt werden, findet man in diesem Git Repository: [https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/about/] Diese kann man herunterladen und in '''/lib/firmware''' ablegen. Allerdings könnten diese durch ein Update überschrieben werden oder ein Update durcheinanderbringen, was im schlimmsten Fall das automatische Updaten aller Pakete stoppt! }}} {{{#!vorlage Hinweis Neuere Kernel Pakete werden mit der ZSTD Komprimierung gepackt und lassen sich daher nur auf Systemen installieren, welches ein kompatibles [https://packages.ubuntu.com/bionic/dpkg `dpkg (>= 1.18)`] {en} haben. Glücklicherweise ist das für bionic und neuere gegeben. }}} = Deinstallation = Der Mainline-Kernel kann wie jedes andere Paket auch über die [:Pakete installieren:Paketverwaltung] deinstalliert werden. = Links = * [ubuntu:Kernel/MainlineBuilds:Eintrag] im englischen Wiki * [ubuntu:Bugs/Upstream/kernel: Fehlerbericht erstellen] für den Upstream-/Mainline-Kernel * [ikhaya:2009/03/03/offizielle-kernel-als-pakete/:Ikhaya-Meldung] zum Mainline-Kernel * [https://www.kernel.org kernel.org] {en} - Start- und Übersichtsseite * [https://www.kernel.org/feeds/kdist.xml Kernel-Aktualisierungen] {en} – als [[Bild(Wiki/Icons/RSS.png,20,)]]-Feed zum Betrachten oder abonnieren * [https://kernelnewbies.org/ Linux Kernel Newbies] {en} * [https://kernelnewbies.org/LinuxChanges Linux Changes] {en} #tag: System, Kernel