Linux Kernel Release 5.x (2/4)

https://www.kernel.org/doc/html/latest/admin-guide/README.html

Docs » The Linux kernel user’s and administrator’s guide » Linux kernel release 5.x < http://kernel.org/ >

Installing the kernel source

If you install the full sources, put the kernel tarball in a directory where you have permissions (e.g. your home directory) and unpack it:

Um den vollständigen Quellcode zu installieren, platzieren Sie den Kernel-Tarball in einem Verzeichnis, für das Sie Berechtigungen haben (z. B. Ihrem Home-Verzeichnis), und entpacken Sie ihn.

xz -cd linux-5.x.tar.xz | tar xvf -

Replace “X” with the version number of the latest kernel.

Ersetzen Sie "X" durch die neueste Kernelversion.

Do NOT use the /usr/src/linux area! This area has a (usually incomplete) set of kernel headers that are used by the library header files. They should match the library, and not get messed up by whatever the kernel-du-jour happens to be.

bestimmt! Verwenden Sie nicht den Bereich / usr / src / linux. Dieser Bereich enthält den (im Allgemeinen unvollständigen) Kernel-Header und wird von der Bibliotheks-Header-Datei verwendet. Dies sollte mit der Bibliothek übereinstimmen und nicht durch die neuesten Funktionen des Kernels verwechselt werden.

You can also upgrade between 5.x releases by patching. Patches are distributed in the xz format. To install by patching, get all the newer patch files, enter the top level directory of the kernel source (linux-5.x) and execute:

Sie können auch per Patch von Version 5.x aktualisieren. Patch wird im xz-Format verteilt. Um den Patch zu installieren, rufen Sie die akribische Patch-Datei ab und führen Sie die folgenden Schritte im obersten Verzeichnis (Linux-5.x) der Kernelquelle aus.

xz -cd ../patch-5.x.xz | patch -p1

Replace “x” for all versions bigger than the version “x” of your current source tree, in_order, and you should be ok. You may want to remove the backup files (some-file-name~ or some-file-name.orig), and make sure that there are no failed patches (some-file-name# or some-file-name.rej). If there are, either you or I have made a mistake.

Bitte geben Sie alle "x" an, die größer als die "x" -Version des aktuell verwendeten Quellcodes sind, und zwar in der Reihenfolge, in der Sie sie benötigen. Dateien, in denen Sie die Sicherungsdatei gelöscht haben (Dateien erhalten "~" oder ".orig") und den Patch nicht anwenden konnten (Dateien erhalten "#" oder ".rej"). Stellen Sie sicher, dass es keine gibt. Wenn ja, machen Sie einen Fehler in mir.

Unlike patches for the 5.x kernels, patches for the 5.x.y kernels (also known as the -stable kernels) are not incremental but instead apply directly to the base 5.x kernel. For example, if your base kernel is 5.0 and you want to apply the 5.0.3 patch, you must not first apply the 5.0.1 and 5.0.2 patches. Similarly, if you are running kernel version 5.0.2 and want to jump to 5.0.3, you must first reverse the 5.0.2 patch (that is, patch -R) before applying the 5.0.3 patch. You can read more on this in Documentation/process/applying-patches.rst.

Im Gegensatz zu Patches für den 5.x-Kernel werden Patches für den 5.x.y-Kernel (auch als -stable-Kernel bezeichnet) nicht inkrementell direkt auf den 5.x-Basiskernel angewendet. Wenn Ihr Basiskernel beispielsweise 5.0 ist und Sie den Patch 5.0.3 anwenden möchten, wenden Sie die Patches 5.0.1 und 5.0.2 nicht zuerst an. Wenn Sie die Kernel-Version 5.0.2 ausführen und zu 5.0.3 springen möchten, müssen Sie zuerst den 5.0.2-Patch (dh Patch-R) zurücksetzen, bevor Sie den 5.0.3-Patch anwenden. .. Weitere Informationen hierzu finden Sie unter Dokumentation / Prozess / Anwenden von Patches.rst.

Alternatively, the script patch-kernel can be used to automate this process. It determines the current kernel version and applies any patches found:

Alternativ kann ein Patch-Kernel-Skript verwendet werden, um diesen Prozess zu automatisieren. Bestimmen Sie die aktuelle Kernelversion und wenden Sie den entsprechenden Patch an.

linux/scripts/patch-kernel linux

The first argument in the command above is the location of the kernel source. Patches are applied from the current directory, but an alternative directory can be specified as the second argument.

Das erste Argument für den Befehl ist der Speicherort der Kernelquelle. Der Patch wird aus dem aktuellen Verzeichnis angewendet, Sie können jedoch ein alternatives Verzeichnis als zweites Argument angeben.

Make sure you have no stale .o files and dependencies lying around:

Stellen Sie sicher, dass keine Abhängigkeiten von der alten O-Datei bestehen.

cd linux
make mrproper

You should now have the sources correctly installed.

Der Quellcode sollte jetzt korrekt installiert sein.

Software requirements

Compiling and running the 5.x kernels requires up-to-date versions of various software packages. Consult Documentation/process/changes.rst for the minimum version numbers required and how to get updates for these packages. Beware that using excessively old versions of these packages can cause indirect errors that are very difficult to track down, so don’t assume that you can just update packages when obvious problems arise during build or operation.

Zum Kompilieren und Ausführen des 5.x-Kernels sind neue Versionen verschiedener Softwarepakete erforderlich. Unter Dokumentation / Prozess / Änderungen.rst finden Sie die erforderlichen Mindestversionen und Informationen zum Aktualisieren dieser Pakete. Beachten Sie, dass die Verwendung sehr alter Versionen dieser Pakete indirekte Bildfehler verursachen kann, die sehr schwer zu verfolgen sind. Es ist auch nicht immer möglich, ein Paket zu aktualisieren, wenn beim Erstellen oder Betrieb ein offensichtliches Problem auftritt.

Build directory for the kernel

When compiling the kernel, all output files will per default be stored together with the kernel source code. Using the option make O=output/dir allows you to specify an alternate place for the output files (including .config). Example:

Beim Kompilieren des Kernels werden standardmäßig alle Produkte mit dem Kernel-Quellcode gespeichert. Sie können das Dateiprodukt (einschließlich .config) auch als einen anderen Speicherort angeben, indem Sie die Option make O = output / dir angeben. Zum Beispiel;

cd /usr/src/linux-5.x
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install

Please note: If the O=output/dir option is used, then it must be used for all invocations of make.

Hinweis: Wenn Sie die Option O = output / dir verwenden, muss sie auf alle Anrufe angewendet werden.

Configuring the kernel

Do not skip this step even if you are only upgrading one minor version. New configuration options are added in each release, and odd problems will turn up if the configuration files are not set up as expected. If you want to carry your existing configuration to a new version with minimal work, use make oldconfig, which will only ask you for the answers to new questions.

Überspringen Sie diesen Schritt nicht, auch wenn Sie eine Nebenversion angeben. Jede Version fügt eine neue Konfigurationsoption hinzu. Und wenn die Konfigurationsdatei nicht wie erwartet eingerichtet ist, treten seltsame Probleme auf. Wenn Sie auf eine neuere Version mit der kleinsten Konfiguration migrieren möchten, verwenden Sie make oldconfig. Dies wird nach Antworten auf neue Fragen fragen.

Alternative configuration commands are:

Andere Befehle zum Einstellen sind wie folgt.

"make config"      Plain text interface.
Nur-Text-Schnittstelle.
"make menuconfig"  Text based color menus, radiolists & dialogs.
Textmenü mit Farbe, Optionsfeldern und Dialogen
"make nconfig"     Enhanced text based color menus.
Erweiterter Text mit Farbmenü
"make xconfig"     Qt based configuration tool.
Einstellungsmenü in Qt
"make gconfig"     GTK+ based configuration tool.
                   GTK+Menü einstellen in
"make oldconfig"   Default all questions based on the contents of
                   your existing ./.config file and asking about
                   new config symbols.
Aktuell./Basierend auf dem Inhalt der Konfigurationsdatei
Eine Einstellung, die alle Symbole in der neuen Einstellung abfragt.
"make olddefconfig"
                   Like above, but sets new symbols to their default
                   values without prompting.
Ähnlich wie oben, jedoch ohne Bestätigung des neuen Symbols
Wenden Sie den Standardwert an.
"make defconfig"   Create a ./.config file by using the default
                   symbol values from either arch/$ARCH/defconfig
                   or arch/$ARCH/configs/${PLATFORM}_defconfig,
                   depending on the architecture.
                   ,Generieren Sie eine Konfigurationsdatei mit Standardeinstellungen.
Es ist notwendig, Architektur, Bogen anzugeben/$ARCH/defconfig
Oder Bogen/$ARCH/configs/${PLATFORM}_defconfig,
Wird genutzt.
"make ${PLATFORM}_defconfig"
                   Create a ./.config file by using the default
                   symbol values from
                   arch/$ARCH/configs/${PLATFORM}_defconfig.
                   Use "make help" to get a list of all available
                   platforms of your architecture.
                   arch/$ARCH/configs/${PLATFORM}_defconfig.Zurücksenden an
                   .Generieren Sie eine Konfigurationsdatei mit Standardwerten.
Welche Plattform in der Zielarchitektur gültig ist, ist
                   "make help"Sie können es bei bekommen.
"make allyesconfig"
                   Create a ./.config file by setting symbol
                   values to 'y' as much as possible.
Stellen Sie so viel wie möglich ein"y"Und dann.Generieren Sie eine Konfigurationsdatei.
"make allmodconfig"
                   Create a ./.config file by setting symbol
                   values to 'm' as much as possible.
Stellen Sie so viel wie möglich ein"m"Und dann.Generieren Sie eine Konfigurationsdatei.
"make allnoconfig" Create a ./.config file by setting symbol
                   values to 'n' as much as possible.
Stellen Sie so viel wie möglich ein"n"Und dann.Generieren Sie eine Konfigurationsdatei.
"make randconfig"  Create a ./.config file by setting symbol
                   values to random values.
Zufällige Einstellungen.Generieren Sie eine Konfigurationsdatei.
"make localmodconfig" Create a config based on current config and
                      loaded modules (lsmod). Disables any module
                      option that is not needed for the loaded modules.

Aktuelle Konfiguration und geladene Module(lsmod)Auf der Grundlage der
Andere werden nicht benötigt, damit das geladene Modul die Konfiguration generiert
Moduloption deaktivieren.

                      To create a localmodconfig for another machine,
                      store the lsmod of that machine into a file
                      and pass it in as a LSMOD parameter.

So erstellen Sie eine localmodconfig auf einem anderen Computer
Speichern Sie als lsmod, das auf einem anderen Computer generiert wurde
Bitte übergeben Sie es als LSMOD-Parameter.

              target$ lsmod > /tmp/mylsmod
              target$ scp /tmp/mylsmod host:/tmp

              host$ make LSMOD=/tmp/mylsmod localmodconfig

                      The above also works when cross compiling.

Es wird mit Cross Compiling funktionieren.

"make localyesconfig" Similar to localmodconfig, except it will convert
                      all module options to built in (=y) options.

Ähnlich wie localmodconfig, aber
Alle konvertierten Module sind eingebaut(=y)Option ist
Wird angegeben.
"make kvmconfig"   Enable additional options for kvm guest kernel support.
Aktivieren Sie zusätzliche Optionen für die Unterstützung von kvm-Gastkernen.
"make xenconfig"   Enable additional options for xen dom0 guest kernel
                   support.
dom0 Aktivieren Sie zusätzliche Optionen für die Unterstützung des Gastkerns.
"make tinyconfig"  Configure the tiniest possible kernel.
Auf die minimal mögliche Einstellung einstellen.

You can find more information on using the Linux kernel config tools in Documentation/kbuild/kconfig.rst.

Weitere Informationen zur Verwendung der Linux-Kernel-Konfigurationstools finden Sie in der Dokumentation / kbuild / kconfig.rst.

NOTES on make config:

  • Having unnecessary drivers will make the kernel bigger, and can under some circumstances lead to problems: probing for a nonexistent controller card may confuse your other controllers.

Ursprünglich ist es Teil des Quellcodes des Linux-Kernels, daher wird es als GPLv2 behandelt (Anerkennung, dass es sein sollte).

https://www.kernel.org/doc/html/latest/index.html

Licensing documentation

The following describes the license of the Linux kernel source code (GPLv2), how to properly mark the license of individual files in the source tree, as well as links to the full license text.

https://www.kernel.org/doc/html/latest/process/license-rules.html#kernel-licensing

Recommended Posts

Linux Kernel Release 5.x (2/4)
Linux Kernel Release 5.x (3/4)
Linux Kernel Release 5.x (4/4)
Linux Kernel Release 5.x (1/4)
Inu x Memo
Kompilieren des Linux-Kernels (Linux 5.x unter Ubuntu 20.04)
Informationen zu Linux-Kernelparametern
Überprüfen Sie die Linux-Kernelversion
Über den Prozess, den der Linux-Kernel mit x86-Mikrocode verarbeitet
Linux Kernel Build für DE10nano
Selbst erstellter Linux-Kernel mit Clang
[LINUX-Kernel neu erstellen] Upgrade (4.18.0 → 5.8.8)
Dokumentation zum Linux-Kernel-Speichermodell
Linux-Kernel, sein 29-jähriger Verlaufsbericht
Probieren Sie den Linux-Kernel-Sperrmechanismus aus
[Linux] [Kernelmodul] Erstellen Sie kthread im Kernelmodul
Linux
Quellanalyse von Linux (Kernel): Systemaufruf
X86 Assembler unter Linux (Verknüpfung mit C)