From 28696a08a46203a821df27c414330777038fcc0a Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Wed, 7 Feb 2024 21:37:51 +0100 Subject: [PATCH] CHG structuring sources --- documentation/linux_configuration.pdf | 4 +- documentation/linux_configuration.tex | 10934 +--------------- .../linux_configuration_01_general_setup.tex | 1351 ++ .../linux_configuration_02_64-bit_kernel.tex | 4 + ...uration_03_processor_type_and_features.tex | 879 ++ ..._speculative_execution_vulnerabilities.tex | 74 + ...n_05_power_management_and_acpi_options.tex | 679 + .../linux_configuration_06_bus_options.tex | 7 + ...nux_configuration_07_binary_emulations.tex | 14 + .../linux_configuration_08_virtualization.tex | 53 + ...general_architecture-dependent_options.tex | 164 + ...tion_10_enable_loadable_module_support.tex | 158 + ...onfiguration_11_enable_the_block_layer.tex | 293 + ...nfiguration_12_executable_file_formats.tex | 64 + ...iguration_13_memory_management_options.tex | 492 + ...ux_configuration_14_networking_support.tex | 5157 ++++++++ .../linux_configuration_15_device_drivers.tex | 1500 +++ 17 files changed, 10924 insertions(+), 10903 deletions(-) create mode 100644 documentation/linux_configuration_01_general_setup.tex create mode 100644 documentation/linux_configuration_02_64-bit_kernel.tex create mode 100644 documentation/linux_configuration_03_processor_type_and_features.tex create mode 100644 documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex create mode 100644 documentation/linux_configuration_05_power_management_and_acpi_options.tex create mode 100644 documentation/linux_configuration_06_bus_options.tex create mode 100644 documentation/linux_configuration_07_binary_emulations.tex create mode 100644 documentation/linux_configuration_08_virtualization.tex create mode 100644 documentation/linux_configuration_09_general_architecture-dependent_options.tex create mode 100644 documentation/linux_configuration_10_enable_loadable_module_support.tex create mode 100644 documentation/linux_configuration_11_enable_the_block_layer.tex create mode 100644 documentation/linux_configuration_12_executable_file_formats.tex create mode 100644 documentation/linux_configuration_13_memory_management_options.tex create mode 100644 documentation/linux_configuration_14_networking_support.tex create mode 100644 documentation/linux_configuration_15_device_drivers.tex diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index 167eead..812872f 100644 --- a/documentation/linux_configuration.pdf +++ b/documentation/linux_configuration.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:301ce743a1da7b6fb2861bad67e349f700eedff69ccb68d069f709f2d1e7cb4b -size 951587 +oid sha256:24cbec42a594c8600ef9d336f31e1c3bd77d446b344f6d9a6c987a185be8c421 +size 951596 diff --git a/documentation/linux_configuration.tex b/documentation/linux_configuration.tex index 927d067..14abb80 100644 --- a/documentation/linux_configuration.tex +++ b/documentation/linux_configuration.tex @@ -7,6 +7,7 @@ % pacman -S texlive-binextra % pacman -S texlive-langgerman % pacman -S hyphen hyphen-de +% pacman -S texlive-mathscience \documentclass[10pt,a4paper]{article} %\documentclass[12pt,a4paper]{report} @@ -65,7 +66,7 @@ \makeatother \begin{document} - +%0.x \section*{Linux Configuration \version} \subsection{Einführung} Dieses Dokument dient zur Beschreibung von diversen Einstellungen @@ -81,7 +82,7 @@ Hier ist der Standarwert ein Nein [n], meine persönliche Einstellung ein Ja [Y] dann schicken Sie dies mit Erläuterungen und dem Hinweis auf die obenstehende Version \version ~an: \href{mailto:oe1tkt@gmail.com}{oe1tkt@gmail.com}} -%\section{General setup \( \rightarrow \) } + \subsection{Konfiguration für ein verteiltes Kompilieren auf mehreren Rechnern} Sie sollten schon einiges an Erfahrung mit dem Kompilieren unter Linux mitbringen. Wenn Sie mit Linux Arch arbeiten, muss auf jedem Rechner das Programm \texttt{distcc} installiert sein. @@ -89,10904 +90,35 @@ Man unterscheidet nun den \textbf{Client} auf dem üblicherweise das Kompilat er die weiteren beteiligten Rechner als \textbf{Volunteers}.\\ Nähere Informationen siehe \url{https://wiki.archlinux.org/title/Distcc}. -\section{General setup \texorpdfstring{$\rightarrow$}{->}} - -\subsection{Compile also drivers which will not load} -CONFIG\_COMPILE\_TEST [=n] \textbf{[~]}\\ -\textit{Kompilieren Sie auch Treiber, die nicht geladen werden können}\\ -Einige Treiber können auf einer anderen Plattform kompiliert werden als -auf der, für die sie gedacht sind. Obwohl sie dort nicht geladen werden -können (oder selbst wenn sie geladen werden können, können sie aufgrund -fehlender Hardware-Unterstützung nicht verwendet werden), möchten -Entwickler, im Gegensatz zu Distributoren, solche Treiber vielleicht -trotzdem kompilieren und testen. - -\subsection{Compile the kernel with warnings as errors} -CONFIG\_WERROR \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ -\textit{Den Kernel mit Fehlermeldungen bei Warnungen kompilieren}\\ -Ein Build sollte keine Compiler-Warnungen ausgeben, dies aktiviert die -Flags '-Werror' (für C) und '-Dwarnings' (für Rust) um diese Regel -standardmäßig zu setzen. Bestimmte Warnungen von anderen Tools z.~B. der -Linker könnte mit dieser Option Fehler generieren. Deaktivieren ist -sinnvoll, wenn Sie einen neuen (oder sehr alten) Compiler bzw. Linker -mit seltenen, ungewöhnlichen Warnungen haben. Haben Sie auf Ihrer -Architektur Probleme, dann müssen Sie diese Konfiguration deaktivieren, -um den Kernel erfolgreich zu bauen. Im Zweifelsfall sagen sie Y für Ja. -\\\begin{scriptsize} -Für den Laptop wird der Kernel ohne Warnungen kompiliert, ansonsten wird ein Fehler generiert. -\end{scriptsize} - -\subsection{Local version -- append to kernel release} -CONFIG\_LOCALVERSION [=] \textbf{[~]}\\ -\textit{Lokale Version -- an die Kernelversion anhängen}\\ -Type: string\\ -Hängen Sie eine zusätzliche Zeichenkette an das Ende Ihrer Kernelversion -an.\\ -Dies wird angezeigt, wenn Sie z.\,B. \texttt{uname} eingeben. Die hier -angegebene Zeichenfolge wird an den Inhalt von einem Dateinamen mit -\texttt{localverion*} als Objekt und im Quellbaum, in dieser Reihenfolge -angezeigt. Die Zeichenkette darf maximal 64 Zeichen lang sein. - -\subsection{Automatically append version information to the version string} -CONFIG\_LOCALVERSION\_AUTO [=y] \textbf{[Y]}\\ -Dies versucht automatisch festzustellen, ob der aktuelle Baum ein -Release-Tree ist, indem es nach \textbf{Git}-Tags sucht, die zur aktuellen -Top-of-Tree-Revision gehören.\\ -Eine Zeichenkette des Formats \texttt{-gxxxxxxxx} wird der lokalen Version -hinzugefügt, wenn ein git-basierter Baum gefunden wird. Die so erzeugte -Zeichenkette wird nach allen passenden \glqq localversion*\grqq -Dateien -und nach dem in CONFIG\_LOCALVERSION eingestellten Wert angehängt. (Die hier -tatsächlich verwendete Zeichenkette sind die ersten 12 Zeichen, die durch -die Ausführung des Befehls erzeugt werden:\\ -\indent\texttt{\$ git rev-parse --verify HEAD}\\ -der innerhalb des Skripts \glqq scripts/setlocalversion\grqq{} ausgeführt wird.) -\subsection{Build ID Salt} -CONFIG\_BUILD\_SALT [=] \textbf{[~]}\\ -Type: string\\ -Dies wird verwendet, um die Binaries und ihre Debug-Infos zu verknüpfen. -Wenn diese Option gesetzt ist, dann wird dieser Wert in die Berechnung der -Build-ID einbezogen. Wird von Distributionen verwendet, die sicherstellen -wollen, dass es eineindeutige IDs zwischen verschiedenen Builds gibt. -Üblicherweise brauchen wir das nicht. - -\subsection{Kernel compression mode \texorpdfstring{$\rightarrow$}{->}} -Der Linux-Kernel ist eine Art selbstextrahierende, ausführbare Datei. -Es stehen mehrere Kompressionsalgorithmen zur Verfügung, die sich in -Effizienz, Kompressions- und Dekompressionsgeschwindigkeit unterscheiden. -Die Komprimierungsgeschwindigkeit ist nur bei der Erstellung eines Kernels -relevant. Die Dekomprimierungsgeschwindigkeit ist bei jedem Systemstart -von Bedeutung. (Eine ältere Version dieser Funktionalität (nur bzip2) -für 2.4 wurde von Christian Ludwig bereitgestellt) -Hohe Komprimierungsoptionen sind vor allem für Benutzer nützlich, die -wenig Festplattenplatz zur Verfügung haben (embedded systems), für die -aber die Ram-Größe weniger wichtig ist.\\ -Überblick: Gzip werden von den älteren Kernelversionen unterstützt,\\ -Arch Linux (since Linux/x86 5.9.0) Standard: ZSTD (former: XZ since 4.14.4, predecessor GZIP,XZ)\\ -Debian 11.6: XZ\\ -@TODO Weitere Linux Distributionen -\subsubsection{Gzip} -CONFIG\_KERNEL\_GZIP [=n] \textbf{[~]}\\ -Die alte und bewährte gzip-Kompression. Sie bietet ein gutes -Gleichgewicht zwischen Kompressionsrate und -Dekompressionsgeschwindigkeit. -\subsubsection{Bzip2} -CONFIG\_KERNEL\_BZIP2 [=n] \textbf{[~]}\\ -Die Kompressionsrate und auch die Geschwindigkeit der ist durchschnittlich. Die Geschwindigkeit -der Dekomprimierung ist die langsamste. Größe des Kernels ist etwa 10~\% kleiner -im Vergleich zu GZIP. Es benötigt auch einen großen Speicherbereich, bei -modernen Kerneln benötigt man zumindest 8~MB~RAM oder mehr beim Booten. -\subsubsection{LZMA} -CONFIG\_KERNEL\_LZMA [=n] \textbf{[~]}\\ -Dieser Kompressionsalgorithmus hat die höchste Komprimierung. Die Geschwindigkeit der -Dekomprimierung liegt zwischen GZIP und BZIP2. -Komprimierung ist die langsamste. Kernelgröße beträgt etwa 33~\% weniger als mit GZIP. -\subsubsection{XZ} -CONFIG\_KERNEL\_XZ [=n] \textbf{[~]}\\ -XZ verwendet den LZMA2-Algorithmus und befehlssatzspezifische -BCJ-Filter, die das Komprimierungsverhältnis des ausführbaren -Codes verbessern können. Die Größe des Kernels ist mit XZ im -Vergleich zu GZIP etwa 30~\% kleiner. Auf Architekturen, für die -es einen BCJ-Filter gibt (i386, x86\_64, ARM, IA-64, PowerPC und -SPARC), erzeugt XZ einen um einige Prozent kleineren Kernel als -einfaches LZMA. -Die Geschwindigkeit ist in etwa die gleiche wie bei LZMA: Die Dekomprimierungsgeschwindigkeit von -XZ ist besser als die von bzip2, aber schlechter als die von gzip und LZO. -Die Komprimierung ist langsam. -\subsubsection{LZO} -CONFIG\_KERNEL\_LZO [=n] \textbf{[~]}\\ -Kompressionsrate ist die schlechteste aller anderen. Kernelgröße ist etwa 10~\% größer als GZIP. -Jedoch ist die Geschwindigkeit beim Komprimieren und Dekomprimieren die höchste. - -\subsubsection{LZ4} -CONFIG\_KERNEL\_LZ4 [=n] \textbf{[~]}\\ -LZ4 ist eine LZ77-Typ-Komprimierung mit einer festen, byte-orientierten Enkodierung.\\ -Siehe auch \url{http://code.google.com/p/lz4}.\\ -Komprimierungsverhältnis ist noch schlechter als LZO. 8~\% größere Kernelgröße als bei LZO. -Dekomprimierung ist jedoch von der Geschwindigkeit her schneller als LZO. - -\subsubsection{ZSTD} -CONFIG\_KERNEL\_ZSTD [=y] \textbf{[Y]}\\ -ZSTD ist ein Komprimierungsalgorithmus, der auf eine Zwischenkomprimierung -mit schneller Dekomprimierungsgeschwindigkeit abzielt. Er -komprimiert besser als GZIP und dekomprimiert etwa so schnell wie -LZO, ist aber langsamer als LZ4. Sie benötigen mindestens -192~KB~RAM oder mehr zum Booten. Das Kommandozeilenprogramm \texttt{zstd} -ist für die Komprimierung erforderlich. - -\subsection{Default init path} -CONFIG\_DEFAULT\_INIT [=] \textbf{[~]}\\ -Diese Option legt den Standard-Init-Pfad für das System fest, -wenn in der Kernel-Befehlszeile keine solche init=-Option übergeben wird. -Wenn der angeforderte Pfad nicht vorhanden ist, wird trotzdem versucht, -weitere Orte zu finden (z.~B. /sbin/init usw.). Wenn dieser Pfad leer ist, -wird einfach die Fallback-Liste verwendet, wenn init= nicht übergeben wird. - -\subsection{Default hostname} -CONFIG\_DEFAULT\_HOSTNAME [=archlinux] \textbf{[=archlinux]}\\ -Diese Option legt den Standard-Hostnamen des Systems fest, -noch bevor der Userspace das Kommando sethostname(2) aufruft. -Der Kernel verwendet hier traditionell ''(none)'', Sie möchten -vielleicht eine andere Voreinstellung verwenden, um ein minimales -System mit weniger Konfiguration benutzbar zu machen. - -\subsection{System V IPC} -CONFIG\_SYSVIPC [=y] \textbf{[Y]}\\ -Die Inter-Prozess-Kommunikation IPC ist eine Zusammenstellung -aus Bibliotheksfunktionen (libraries) und Systemaufrufen die Prozesse (laufende Programme) -synchronisiert und Daten untereinander austauschen kann. Generell ist das eine gute Sache, -einige Programme würden auch nicht funktionieren wenn Sie hier kein Y (ja) setzen. - -\subsection{POSIX Message Queues} -CONFIG\_POSIX\_MQUEUE [=y] \textbf{[Y]}\\ -Die POSIX-Variante der Nachrichtenwarteschlangen (message queues) ist ein Teil der IPC. -In POSIX-Nachrichtenwarteschlangen hat jede Nachricht eine Priorität, die über die Reihenfolge -des Empfangs durch einen Prozess entscheidet. Wenn Sie Programme kompilieren und ausführen wollen, -die z.~B. für Solaris geschrieben wurden und die POSIX-Warteschlangen (Funktionen mq\_\*) verwenden, -sagen Sie hier Y. -POSIX-Nachrichtenwarteschlangen sind via Dateisystem als \glqq mqueue\grqq{} sichtbar und können irgendwo -eingehängt werden, wenn Sie Dateisystemoperationen auf Nachrichtenwarteschlangen durchführen wollen. - -\subsection{General notification queue} -CONFIG\_WATCH\_QUEUE [=y] \textbf{[Y]}\\ -Dies ist eine allgemeine Benachrichtigungswarteschlange für den Kernel, -um Ereignisse an den Userspace weiterzuleiten, indem sie in Pipes gesplittet werden. -Sie kann in Verbindung mit Watches für Schlüssel-/Schlüsseländerungsbenachrichtigungen (key/keyring) und -Gerätebenachrichtigungen verwendet werden.\\ -Bemerkung: Bei Debian Bullseye ist dies nicht gesetzt (N). - -\subsection{Enable process\_vm\_readv/writev\ syscalls} -CONFIG\_CROSS\_MEMORY\_ATTACH [=y] \textbf{[Y]}\\ -Die Aktivierung dieser Option fügt die Systemaufrufe process\_vm\_readv und -process\_vm\_writev hinzu, die es einem Prozess mit den richtigen Rechten ermöglichen, -direkt aus dem Adressraum eines anderen Prozesses zu lesen oder in diesen zu schreiben. -Weitere Einzelheiten finden Sie in der Manpage. - -\subsection{uselib syscall (for libc5 and earlier)} -CONFIG\_USELIB [=n] \textbf{[N]}\\ -Diese Option schaltet den uselib-Systemaufruf ein, der im dynamic-Linker von libc5 und früher verwendet wird. -Das aktuelle glibc verwendet diesen Systemaufruf nicht mehr, deshalb kann man diese Option -ausschalten wenn sie -keine Programme mehr verwenden, die auf libc5 (oder früher) compiliert wurden.\\ -Bemerkung: Debian Bullseye verwendet dies noch (Y). - -\subsection{Auditing support} -CONFIG\_AUDIT [=y] \textbf{[Y]}\\ -Aktivieren Sie eine Überwachungsinfrastruktur, die mit einem anderen Kernel-Subsystem -verwendet werden kann, wie z.~B. SELinux (das dies für die Protokollierung der Ausgabe -von avc-Nachrichten benötigt). Die Systemaufrufüberprüfung ist auf Architekturen, -die sie unterstützen, enthalten. - -\subsection{IRQ subsystem \texorpdfstring{$\rightarrow$}{->}} -Über diese Schnittstelle kann man Funktionen und Parameter für den -Kernelbau auswählen. -Merkmale können entweder eingebaut, modularisiert oder ignoriert werden. -Parameter müssen als dezimale oder hexadezimale Zahlen oder als Text eingegeben -werden. - -\subsubsection{Expose irq internals in debugfs} -CONFIG\_GENERIC\_IRQ\_DEBUGFS [=n] \textbf{[N]}\\ -Legt interne Zustandsinformationen über debugfs offen. -Hauptsächlich für Entwickler und zur Fehlersuche bei schwer -zu diagnostizierenden Interrupt-Problemen. - -\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}} -\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}} -Sie müssen aus den folgenden drei Möglichkeiten eine wählen: -\paragraph{Periodic timer ticks (constant rate, no dynticks)} $~$ \\ -CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\ -Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft, -auch wenn die CPU ihn nicht braucht. -\paragraph{Idle dynticks system (tickless idle)} $~$ \\ -CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\ -Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem): -Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im -Leerlauf ist. Dies ist v.a. zum Energiesparen interessant. -\paragraph{Full dynticks system (tickless)} $~$ \\ -CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\ -Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem): -Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im -Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.\\ -Wird bei Linux-Distributionen ausgewählt. - -\subsubsection{Force user context tracking} -CONFIG\_CONTEXT\_TRACKING\_USER\_FORCE [=n] \textbf{[N]}\\ -Die wichtigste Voraussetzung für das Funktionieren von Full-Dynticks ist die -Unterstützung des Subsystems zur Verfolgung des Benutzerkontextes. -Es gibt aber auch noch andere Abhängigkeiten, die erfüllt werden müssen, damit -die vollständigen Dynticks funktionieren.\\ -Diese Option dient zum Testen, wenn eine Systemarchitektur das Backend für die -Benutzerkontextverfolgung implementiert, aber noch nicht alle Anforderungen erfüllt, -um die volle Dynticks-Funktion zu ermöglichen. -Ohne die vollständigen Dynticks gibt es keine Möglichkeit, -die Unterstützung für die Benutzerkontextverfolgung und die Teilsysteme, -die darauf angewiesen sind, zu testen: RCU Userspace extended quiescent state -und tickless cputime accounting. Diese Option kommt mit dem Fehlen des vollständigen -dynticks-Subsystems zurecht, indem sie die Benutzerkontextverfolgung auf -allen CPUs im System erzwingt. - -Sagen Sie nur dann ja (Y), wenn Sie an der Entwicklung eines Architektur-Backends -für die Benutzerkontextverfolgung arbeiten. -Sagen Sie ansonsten N, da diese Option einen Overhead mit sich bringt, den Sie in -der Praxis nicht haben wollen. - -\subsubsection{Old Idle dynticks config} -CONFIG\_NO\_HZ \colorbox{yellow!80}{[=y] \textbf{[N]}}\\* -\textit{Alte Leerlauf-Dynticks-Konfiguration}\\ -Dies ist der alte Konfigurationseintrag, der Dynticks im Leerlauf aktiviert. -\sout{Wir behalten ihn noch eine Weile bei, um die Abwärtskompatiblität mit älteren -Konfigurations\-dateien zu gewähr\-leisten.} -\\\begin{scriptsize} - Alte Dynticks-Konfiguration wird nicht mehr unterstützt. -\end{scriptsize} - -\subsubsection{High Resolution Timer Support} -CONFIG\_HIGH\_RES\_TIMERS [=y] \textbf{[Y]}\\ -\textit{Unterstützung von Timern mit hoher Auflösung}\\ -Diese Option aktiviert die Unterstützung hochauflösender Timer. -Wenn ihre Hardware dazu nicht in der Lage ist, erhöht diese -Option nur die Größe des Kernel-Images. - -\subsubsection{Clocksource watchdog maximum allowable skew} -CONFIG\_CLOCKSOURCE\_WATCHDOG\_MAX\_SKEW\_US [=100] \textbf{[100]}\\ -\textit{Maximal zulässige Abweichung der Watchdog-Taktquelle}\\ -Geben Sie den maximal zulässigen Wert für den Watchdog-Versatz -in Mikrosekunden an, bevor die Clocksource als instabil gemeldet wird. -Der Standardwert basiert auf einem Watchdog-Intervall von einer halben -Sekunde und der maximalen Frequenzdrift von NTP von 500 Teilen pro Million. -Wenn die Clocksource gut genug für NTP ist, ist sie auch gut genug -für den Watchdog der Clocksource!\\ -Bereich (Range): 50 -- 1000 - -\subsection{BPF subsystem \texorpdfstring{$\rightarrow$}{->}} -Berkeley Packet Filter, Firewall-Filtertechnik im Kernel - -\subsubsection{Enable bpf() system call} -CONFIG\_BPF\_SYSCALL [=y] \textbf{[Y]}\\ -Aktivieren Sie den Systemaufruf bpf(), der es ermöglicht, -BPF-Programme und -Maps über Dateideskriptoren zu manipulieren. - -\subsubsection{Enable BPF Just In Time compiler} -CONFIG\_BPF\_JIT [=y] \textbf{[Y]}\\ -BPF-Programme werden normalerweise von einem BPF-Interpreter verarbeitet. -Diese Option ermöglicht es dem Kernel, nativen Code zu erzeugen, -wenn ein Programm in den Kernel geladen wird. Dadurch wird die Verarbeitung -von BPF-Programmen erheblich beschleunigt.\\ -Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em] -\indent\texttt{/proc/sys/net/core/bpf\_jit\_enable}\\ -\indent\texttt{/proc/sys/net/core/bpf\_jit\_harden (optional)}\\ -\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)} - -\paragraph{Permanently enable BPF JIT and remove BPF interpreter}$~$\\ -CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\ -Aktiviert BPF JIT und entfernt den BPF-Interpreter um spekulative Ausführungen -von BPF-An\-wei\-sun\-gen durch den Interpreter zu verhindern. -Wenn CONFIG\_BPF\_JIT\_ALWAYS\_ON eingeschaltet ist, dann wird -\texttt{/proc/sys/net/core/bpf\_jit\_enable} permanent auf 1 gesetzt, alle -Versuche diese Einstellung auf andere Werte zu legen wird mit einem Fehler -zurückgewiesen. -\subsubsection{Disable unprivileged BPF by default} -CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF [=y] \textbf{[Y]}\\ -Deaktiviert die unprivilegierte BPF standardmäßig, indem der entsprechende Eintrag\\ -\texttt{/proc/sys/kernel/unprivileged\_bpf\_disabled} auf 2 gesetzt wird. -Ein Administrator kann sie immer noch wieder aktivieren, -indem er sie später auf 0 setzt, oder sie dauerhaft deaktiviert, indem -er sie auf 1 setzt (von wo aus kein weiterer Übergang auf 0 mehr möglich ist).\\ -Unprivilegierte BPF könnte verwendet werden, um bestimmte potenzielle Seitenkanalschwachstellen -für spekulative Ausführung auf nicht gemilderter betroffener Hardware auszunutzen. -Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y. -\subsubsection{Preload BPF file system with kernel specific program - and map iterators \texorpdfstring{$\rightarrow$}{->}} -BPF\_PRELOAD [=n] \textbf{[N]}\\ -Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen erstellt, -die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt -eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF-Programmen -und -Maps nützlich ist. -\paragraph{bpf\_preload kernel module\\} $~$ \\ -\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\ -CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[~]}\\ -Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen -erstellt, die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt eingefügt werden, -was bei der Fehlersuche und der Untersuchung von BPF-Programmen und -Maps nützlich ist. -\subsubsection{Enable BPF LSM Instrumentation} -CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\ -Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Implementierung dynamischer -MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten -sollten, antworten Sie mit N. -\subsection{Preemption Model (Preemptible Kernel (Low-Latency Desktop)) \texorpdfstring{$\rightarrow$}{->}} - -Eingestellt auf : Low-Latency, d.~h. nur kleine Verzögerungen beim Modell des Multitaskings. -Es gibt drei Einstellungen: -\subsubsection{No Forced Preemption (Server)} -CONFIG\_PREEMPT\_NONE [=n] \textbf{[N]}\\ -Das war das traditionelle Linux Modell der Unterbrechungen, das sich auf den Durchsatz konzentrierte. -Wird vor allem für den Server-Einsatz verwendet. Es gibt durchaus gute Performance für die Latenz, jedoch -keine Garantie dafür und es kann zu zufälligen, längeren Verzögerungszeiten kommen. - -Für einen Serverbetrieb wird diese Einstellung empfohlen, damit der maximale Durchsatz an Rechenleistung -entsteht. -\subsubsection{Voluntary Kernel Preemption (Desktop)} -CONFIG\_PREEMPT\_VOLUNTARY [=n] \textbf{[N]}\\ -Diese Einstellung reduziert die Latenz des Kernels durch zusätzliche \glqq explizite Unterbrechungspunkte\glqq{} -im Kernel. -Diese neuen Unterbrechungspunkte wurden ausgewählt, um die maximale Latenz beim neuerlichen Zuordnen -des Schedulers zu reduzieren und dadurch schnelle Reaktionszeiten der Applikationen zu gewährleisten. -- -Auf Kosten eines geringeren Durchsatzes wird dies erreicht. -\subsubsection{Preemptible Kernel (Low-Latency Desktop)} -CONFIG\_PREEMPT [=y] \textbf{[Y]}\\ -Bei dieser Einstellung wird die Latenz des Kernels weiter erniedrigt indem der gesamte Code des Kernels -(keine kritischen, geschützten Bereiche) unterbrechbar gemacht wird. Dadurch wird ein reibungsloses -Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast. -Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit einer Latenz im -Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an -Rechenleistung einher. -\subsection{Preemtion behaviour defined on boot} -CONFIG\_PREEMPT\_DYNAMIC [=y] \textbf{[Y]}\\ -Diese Option ermöglicht es, das Präemptionsmodell über den -Kernel-Kommandozeilenparameter zu definieren und damit das -während der Kompilierung definierte Standard-Präemptionsmodell -außer Kraft zu setzen. -Diese Funktion ist vor allem für Linux-Distributionen -interessant, die eine vorgefertigte Kernel-Binärdatei -bereitstellen, um die Anzahl der angebotenen Kernel-Varianten -zu reduzieren und dennoch verschiedene Anwendungsfälle zu -ermöglichen. - -Der Laufzeit-Overhead ist vernachlässigbar, wenn -HAVE\_STATIC\_CALL\_INLINE aktiviert ist, aber wenn Laufzeit-Patching -für die spezifische Architektur nicht verfügbar ist, -sollte der potenzielle Overhead in Betracht gezogen werden. -Interessant wird es, wenn derselbe vorgefertigte Kernel -sowohl für Server- als auch für Desktop-Workloads verwendet -werden soll. -\subsection{Core Scheduling for SMT} -CONFIG\_SCHED\_CORE [=y] \textbf{[Y]}\\ -Kern-Scheduling für SMT - -Diese Option ermöglicht Core Scheduling, ein Mittel zur -koordinierten Auswahl von Aufgaben zwischen SMT-Geschwistern. -Wenn diese Option aktiviert ist - siehe prctl -(PR\_SCHED\_CORE) - - stellt die Aufgabenauswahl sicher, dass alle SMT-Geschwister -eine Aufgabe aus der gleichen \glqq Kerngruppe\grqq{} ausführen und -den Leerlauf erzwingen, wenn keine passende Aufgabe gefunden -wird. -Diese Funktion wird unter anderem verwendet: - -- Entschärfung einiger (nicht aller) SMT-Seitenkanäle; - -- Begrenzung der SMT-Interferenz zur Verbesserung des Determinismus und/oder der Leistung.\\ -SCHED\_CORE ist standardmäßig deaktiviert. Wenn es aktiviert und unbenutzt ist, was -bei Linux-Distributionen wahrscheinlich der Fall ist, -sollte es keine messbaren Auswirkungen auf die Leistung -haben. - -\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}} - -\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}} -\paragraph{Full dynticks CPU time accounting} $~$\\ -CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um die Berechnung der Task- und CPU-Zeit auf -Full-Dynticks-Systemen zu aktivieren. -Diese Berechnung wird durch die Überwachung aller Kernel-Benutzer-Grenzen mithilfe des -Kontextverfolgungs-Subsystems implementiert.\\ -Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\ -Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen -Dynticks-Subsystems arbeiten. - -\subsubsection{Fine granularity task level IRQ time accounting} -CONFIG\_IRQ\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\ -Wählen Sie diese Option aus, um eine fein granulare Berechnung der -Task-Irq-Zeit zu aktivieren. -Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang -zwischen dem softirq- und dem hardirq-Zustand, so dass es zu geringen -Leistungseinbußen kommen kann.\\ -Im Zweifelsfall sagen Sie hier N für Nein. - -\subsubsection{BSD Process Accounting} -CONFIG\_BSD\_PROCESS\_ACCT [=y] \textbf{[Y]}\\ -Wenn Sie hier Y (für Ja) angeben, kann ein Programm auf Benutzerebene den Kernel -(über einen speziellen Systemaufruf) anweisen, Prozessabrechnungsinformationen -in eine Datei zu schreiben: Jedes Mal, wenn ein Prozess beendet wird, werden -Informationen über diesen Prozess vom Kernel an die Datei angehängt. -Die Informationen beinhalten Dinge wie die Erstellungszeit, den besitzenden -Benutzer, den Befehlsnamen, den Speicherverbrauch, das kontrollierende Terminal -usw. (die vollständige Liste kann in der acct-Struktur in -\textless{}file:include/linux/acct.h\textgreater{} gefunden werden). -Es obliegt dem Programm auf Benutzerebene, nützliche Dinge mit diesen -Informationen zu tun. Dies ist im Allgemeinen eine gute Idee, also sagen -Sie Y für Ja. - -\paragraph{BSD Process Accounting version 3 file format} $~$\\ -CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\ -Wenn Sie hier Y (für Ja) angeben, werden die Prozessabrechnungsinformationen -in ein neues Dateiformat geschrieben, das auch die Prozess-IDs der einzelnen -Prozesse und ihrer Eltern protokolliert. Beachten Sie, dass dieses -Dateiformat nicht mit den früheren v0/v1/v2-Dateiformaten kompatibel ist, -so dass Sie aktualisierte Werkzeuge für die Verarbeitung benötigen. -Eine vorläufige Version dieser Werkzeuge ist unter -\url{http://www.gnu.org/software/acct/} verfügbar. - -\subsubsection{Export task/process statistics through netlink} -CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\ -Export ausgewählter Statistiken für Aufgaben/Prozesse über die generische -Netlink-Schnittstelle. Im Gegensatz zur BSD-Prozessabrechnung sind die -Statistiken während der Lebensdauer von Auf\-gaben/Pro\-zes\-sen als Antwort auf -Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in -den Benutzerbereich gesendet.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\paragraph{Enable per-task delay accounting} $~$\\ -CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\ -Sammeln Sie Informationen über die Zeit, die eine Task für das Warten auf -Systemressourcen wie CPU, synchrone Block-E/A-Abwicklung und Auslagerung -von Seiten aufwendet. Solche Statistiken können bei der Festlegung der -Prioritäten eines Tasks im Verhältnis zu anderen Tasks für CPU-, IO-, -RSS-Limits usw. helfen.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\paragraph{Enable extended accounting over taskstats}$~$\\ -CONFIG\_TASK\_XACCT [=y] \textbf{[Y]}\\ -Sammeln von erweiterten Task-Accounting-Daten und Senden der Daten an -das Userland zur Verarbeitung über die Taskstats-Schnittstelle.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subparagraph{Enable per-task storage I/O accounting}$~$\\ -CONFIG\_TASK\_IO\_ACCOUNTING [=y] \textbf{[Y]}\\ -Sammeln von Informationen über die Anzahl -der Bytes an Speicher-E/A, die dieser Task verursacht hat.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Pressure stall information tracking} -CONFIG\_PSI [=y] \textbf{[Y]}\\ -Sammeln Sie Metriken, die anzeigen, wie überlastet die CPU-, Speicher- -und IO-Ka\-pa\-zi\-tät im System sind. - -Wenn Sie hier Y angeben, erstellt der Kernel /proc/pressure/ mit die -Druckstatistikdateien cpu, memory und io. Diese zeigen den Anteil der -Walltime an, in dem einige oder alle Tasks im System aufgrund der -Beanspruchung der jeweiligen Ressource verzögert sind. - -In Kerneln mit cgroup-Unterstützung verfügen cgroups (nur cgroup2) über -cpu.pressure-,\\* -memory.pressure- und io.pressure-Dateien, die nur die -Druckstaus für die gruppierten Aufgaben zusammenfassen.\\ -Weitere Einzelheiten finden Sie unter Documentation/accounting/psi.rst.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\ -CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\ -Wenn diese Option gesetzt ist, ist die Verfolgung von Druck\-stau\-informationen -standardmäßig deaktiviert, kann aber durch die Übergabe von psi=1 auf der -Kernel-Befehlszeile beim Booten aktiviert werden.\\ -Diese Funktion fügt dem Task-Wakeup- und Sleep-Pfad des Schedulers etwas Code hinzu. -Der Overhead ist zu gering, um gängige planungsintensive Arbeitslasten in der Praxis -zu beeinträchtigen (z.~B. Web\-server, Memcache), aber es zeigt sich in künstlichen -Scheduler-Stresstests, wie z.~B. Hackbench.\\ -Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird, -sagen Sie Y für Ja.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsection{CPU isolation} -CONFIG\_CPU\_ISOLATION [=y] \textbf{[Y]}\\ -Stellen Sie sicher, dass CPUs, auf denen kritische Aufgaben laufen, -nicht durch irgendwelche \glqq Störquellen\grqq{} wie ungebundene Workqueues, Timers, -kthreads usw. gestört werden.\\ -Ungebundene Aufgaben werden auf Housekeeping-CPUs verlagert. -Dies wird durch den Boot-Parameter \glqq isolcpus=\grqq{} gesteuert.\\ -Sagen Sie Y für ja, wenn Sie unsicher sind. - -\subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}} -Read -- Copy -- Update (Lesen, Kopieren, Aktualisieren) -\subsubsection{Make expert-level adjustments to RCU configuration} -CONFIG\_RCU\_EXPERT [=y] \textbf{[Y]}\\ -Diese Option muss aktiviert werden, wenn Sie Anpassungen der RCU-Konfiguration -auf Expertenebene vornehmen möchten. -Standardmäßig können solche Anpassungen nicht vorgenommen werden, -was den oft vorteilhaften Nebeneffekt hat, dass \glqq make oldconfig\grqq{} Sie -davon abhält, alle möglichen detaillierten Fragen darüber zu stellen, -wie Sie zahlreiche obskure RCU-Optionen eingerichtet haben möchten.\\ -Sagen Sie Y, wenn Sie Anpassungen an RCU auf Expertenebene vornehmen müssen.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Force selection of TASKS\_RCU} -CONFIG\_FORCE\_TASKS\_RCU [=n] \textbf{[N]}\\ -Diese Option erzwingt eine aufgabenbasierte RCU-Implementierung die nur -freiwillige Kontextwechsel verwendet (keine Preemption!), Leerlauf und -Benutzermodus-Ausführung als Ruhezustände verwendet. -Nicht für manuelle Auswahl in den meisten Fällen. - -\subsubsection{Force selection of Tasks Rude RCU} -CONFIG\_FORCE\_TASKS\_RUDE\_RCU [=n] \textbf{[N]}\\ -Diese Option erzwingt eine Task-basierte RCU-Implementierung, die nur -Kontextwechsel (einschließlich Preemption) und die Ausführung im -Benutzermodus als Ruhezustand verwendet. Sie erzwingt IPIs und -Kontextwechsel auf allen Online-CPUs, auch auf den Idle-CPUs, also -mit Vorsicht verwenden. -In den meisten Fällen nicht für die manuelle Auswahl geeignet. - -\subsubsection{Force selection of Tasks Trace RCU} -CONFIG\_FORCE\_TASKS\_TRACE\_RCU [=n] \textbf{[N]}\\ -Diese Option ermöglicht eine Task-basierte RCU-Implementierung, die -explizite rcu\_read\_lock\_trace()-Lesemarker verwendet und es ermöglicht, -dass diese Leser sowohl in der Leerlaufschleife als auch in den -CPU-Hotplug-Codepfaden erscheinen. Es kann IPIs auf Online-CPUs erzwingen, -auch auf Idle-CPUs, also mit Vorsicht verwenden. -In den meisten Fällen nicht für die manuelle Auswahl geeignet. - -\subsubsection{Tree-based hierarchical RCU fanout value} -CONFIG\_RCU\_FANOUT [=64] \textbf{[64]}\\ -Diese Option steuert den Fanout von hierarchischen Implementierungen von -RCU, so dass RCU auf Maschinen mit einer großen Anzahl von CPUs effizient -arbeiten kann. Dieser Wert muss mindestens die vierte Wurzel von NR\_CPUS -sein, wodurch NR\_CPUS wahnsinnig groß werden kann. Der Standardwert von -RCU\_FANOUT sollte für Produktionssysteme verwendet werden, aber wenn Sie -die RCU-Implementierung selbst einem Stresstest unterziehen, ermöglichen -kleine RCU\_FANOUT-Werte das Testen von Codepfaden für große Systeme auf -kleinen (kleineren) Systemen.\\ -Wählen Sie eine bestimmte Zahl, wenn Sie RCU selbst testen. -Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ -Symbol: RCU\_FANOUT [=64]\\ -Type : integer (Ganzzahl)\\ -Bereich (range) : [2 64] - -\subsubsection{Tree-based hierarchical RCU leaf-level fanout value} -CONFIG\_RCU\_FANOUT\_LEAF [=16] \textbf{[16]}\\ -Diese Option steuert das Fanout auf Blattebene bei hierarchischen -Implementierungen von RCU und ermöglicht es, Cache-Misses gegen -Sperrkonflikte abzuwägen. Systeme, die ihre Scheduling"=Clock"=Interrupts -aus Gründen der Energieeffizienz synchronisieren, werden die -Standardeinstellung bevorzugen, da der kleinere Leaf-Level-Fanout die -Lock-Contention-Level akzeptabel niedrig hält. Sehr große Systeme -(Hunderte oder Tausende von CPUs) werden stattdessen diesen Wert auf den -maximal möglichen Wert setzen wollen, um die Anzahl der Cache-Misses zu -reduzieren, die während der Initialisierung der RCU-Grace-Periode auftreten. -Diese Systeme neigen dazu, CPU-gebunden zu laufen, und werden daher nicht -von synchronisierten Interrupts unterstützt, und neigen daher dazu, sie zu -verzerren, was den Sperrkonflikt so weit reduziert, dass große Fanouts auf -Blattebene gut funktionieren. Das heißt, wenn Sie den Fanout auf Blattebene -auf eine große Zahl setzen, wird dies wahrscheinlich zu problematischen -Sperrkonflikten auf den rcu\_node-Strukturen auf Blattebene führen, es sei -denn, Sie booten mit dem Kernelparameter skew\_tick.\\ -Wählen Sie eine bestimmte Zahl, wenn Sie die RCU selbst testen.\\ -Wählen Sie den maximal zulässigen Wert für große Systeme, aber bedenken Sie, -dass Sie möglicherweise auch den Kernel-Boot-Parameter skew\_tick setzen -müssen, um Konflikte bei den Sperren der rcu\_node-Strukturen zu vermeiden. -Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ -Symbol: RCU\_FANOUT\_LEAF [=64]\\ -Type : integer (Ganzzahl)\\ -Bereich (range) : [2 64] - -\subsubsection{Enable RCU priority boosting} -CONFIG\_RCU\_BOOST [=y] \textbf{[Y]}\\ -Diese Option erhöht die Priorität von preemptierten RCU-Lesern, die -die aktuelle preemptible RCU-Schonfrist zu lange blockieren. -Diese Option verhindert auch, dass schwere Lasten den Aufruf von RCU-Callbacks -blockieren.\\ -Geben Sie hier Y an, wenn Sie mit Echtzeitanwendungen oder großen Lasten arbeiten.\\ -Sagen Sie hier N ein, wenn Sie unsicher sind. - -\paragraph{Milliseconds to delay boosting after RCU grace-period start}$~$\\ -CONFIG\_RCU\_BOOST\_DELAY [=500] \textbf{[500]}\\ -Diese Option gibt die Zeit an, die nach dem Beginn einer bestimmten Karenzzeit -gewartet werden soll, bevor die Priorität von RCU-Lesern, die diese Karenzzeit -blockieren, erhöht wird.\\ -Beachten Sie, dass jeder RCU-Leser, der eine beschleunigte RCU-Schonfrist -blockiert, sofort hochgestuft wird.\\ -Akzeptieren Sie die Standardeinstellung, wenn Sie unsicher sind.\\ -Symbol: RCU\_BOOST\_DELAY [=500]\\ -Typ : Integer (Ganzzahl)\\ -Bereich : [0 3000] - -\paragraph{Perform RCU expedited work in a real-time kthread}$~$\\ -CONFIG\_RCU\_EXP\_KTHREAD [=n] \textbf{[N]}\\ -Verwenden Sie diese Option, um die Latenzzeiten der beschleunigten Neuheitsschonfristen -weiter zu reduzieren, was allerdings mit mehr Störungen verbunden ist. -Diese Option ist standardmäßig auf PREEMPT\_RT=y-Kerneln deaktiviert, -die beschleunigte Neuheitsschonfristen nach dem Booten durch die bedingungslose -Einstellung rcupdate.rcu\_normal\_after\_boot=1 deaktivieren.\\ -Akzeptieren Sie die Voreinstellung, wenn Sie unsicher sind. - -\subsubsection{Offload RCU callback processing from boot-selected CPUs} -CONFIG\_RCU\_NOCB\_CPU [=y] \textbf{[Y]}\\ -Verwenden Sie diese Option, um den Jitter des Betriebssystems für aggressive HPC- oder -Echtzeit-Workloads zu reduzieren. -Sie kann auch verwendet werden, um RCU-Callback-Aufrufe auf energieeffiziente CPUs in -batteriebetriebenen asymmetrischen Multiprozessoren auszulagern. Der Preis für diesen -reduzierten Jitter ist, dass der Overhead von call\_rcu() ansteigt und dass bei einigen -Workloads ein erheblicher Anstieg der Kontextwechselraten zu verzeichnen ist.\\ -Diese Option entlastet den Aufruf von Callbacks von der Gruppe von CPUs, die zur -Boot-Zeit durch den rcu\_nocbs-Parameter angegeben wird. Für jede dieser CPUs wird ein -kthread (\glqq rcuox/N\grqq{}) erstellt, um Callbacks aufzurufen, wobei \glqq N\grqq{} die CPU ist, die -entlastet wird, und wobei \glqq x\grqq{} \glqq p\grqq{} für RCU-preempt -(PREEMPTION-Kernel) und \glqq s\grqq{} für -RCU-sched (!PREEMPTION-Kernel) ist. Nichts hindert diesen kthread daran, auf den -angegebenen CPUs zu laufen, aber (1) die kthreads können zwischen jedem Callback -preempted werden, und (2) Affinität oder cgroups können verwendet werden, um die -kthreads zu zwingen, auf jeder gewünschten Gruppe von CPUs zu laufen.\\ -Sagen Sie hier Y, wenn Sie trotz des zusätzlichen Overheads ein geringeres -OS-Jitter benötigen.\\ -Sagen Sie hier N, wenn Sie unsicher sind. - -\paragraph{Offload RCU callback processing from all CPUs by default}$~$\\ -CONFIG\_RCU\_NOCB\_CPU\_DEFAULT\_ALL [=n] \textbf{[N]}\\ -Verwenden Sie diese Option, um die Callback-Verarbeitung standardmäßig von allen -CPUs zu entlasten, wenn der Boot-Parameter rcu\_nocbs oder nohz\_full nicht vorhanden -ist. Dadurch wird auch die Notwendigkeit vermieden, Boot-Parameter zu verwenden, um -den Effekt der Entlastung aller CPUs beim Booten zu erreichen.\\ -Geben Sie hier Y an, wenn Sie alle CPUs standardmäßig beim Booten entlasten wollen.\\ -Sagen Sie hier N, wenn Sie sich nicht sicher sind. - -\paragraph{Offload RCU callback from real-time kthread}$~$\\ -CONFIG\_RCU\_NOCB\_CPU\_CB\_BOOST [=n] \textbf{[N]}\\ -Verwenden Sie diese Option, um ausgelagerte Rückrufe als SCHED\_FIFO aufzurufen, um -ein Aushungern durch schwere SCHED\_OTHER-Hintergrundlast zu vermeiden. Natürlich -führt die Ausführung als SCHED\_FIFO während Callback Floods dazu, dass die rcuo[ps] -kthreads die CPU für Hunderte von Millisekunden oder mehr monopolisieren. -Wenn Sie diese Option aktivieren, müssen Sie daher sicherstellen, dass -latenzempfindliche Aufgaben entweder mit höherer Priorität oder auf einer anderen CPU -ausgeführt werden.\\ -Geben Sie hier Y an, wenn Sie die RT-Priorität für die Auslagerung von kthreads -festlegen möchten.\\ -Sagen Sie hier N, wenn Sie einen !PREEMPT\_RT-Kernel bauen und sich unsicher sind. - -\subsubsection{Tasks Trace RCU readers use memory barriers in user and idle} -CONFIG\_TASKS\_TRACE\_RCU\_READ\_MB [=n] \textbf{[N]}\\ -Verwenden Sie diese Option, um die Anzahl der IPIs (inter-processor interrupts), -die an CPUs gesendet werden, -die im Benutzerraum ausgeführt werden oder sich im Leerlauf befinden, während Tasks -RCU-Tilgungsfristen verfolgen, weiter zu reduzieren. -Da eine vernünftige Einstellung des Kernel-Boot-Parameters -rcupdate.rcu\_task\_ipi\_delay solche IPIs für viele Arbeitslasten eliminiert, ist -die richtige Einstellung dieser Kconfig-Option vor allem für aggressive -Echtzeitinstallationen und für batteriebetriebene Geräte wichtig, daher die oben -gewählte Standardeinstellung.\\ -Sagen Sie hier Y, wenn Sie IPIs hassen.\\ -Sagen Sie hier N, wenn Sie leseseitige Speicherbarrieren hassen.\\ -Nehmen Sie die Standardeinstellung, wenn Sie unsicher sind. - -\subsubsection{RCU callback lazy invocation functionality} -CONFIG\_RCU\_LAZY [=y] \textbf{[Y]}\\ -Um Strom zu sparen, sollten Sie RCU-Rückrufe stapeln und nach einer Verzögerung, -einem Speicherdruck oder einer zu großen Rückrufliste flushen. - -\subsubsection{RCU callback-batch backup time check} -CONFIG\_RCU\_DOUBLE\_CHECK\_CB\_TIME [=y] \textbf{[Y]}\\ -Verwenden Sie diese Option, um eine präzisere Durchsetzung des Modulparameters -rcutree.rcu\_resched\_ns in Situationen zu ermöglichen, in denen ein einziger -RCU-Callback Hunderte von Mikrosekunden lang laufen könnte, wodurch die -32-Callback-Batching-Funktion, die verwendet wird, um die Kosten der feinkörnigen, -aber teuren local\_clock()-Funktion zu amortisieren, unterlaufen wird.\\ -Diese Option rundet rcutree.rcu\_resched\_ns auf den nächsten Jiffy auf und setzt -die 32-Callback-Batching-Funktion außer Kraft, wenn diese Grenze überschritten wird.\\ -Sagen Sie hier Y, wenn Sie eine strengere Durchsetzung des Rückruflimits benötigen.\\ -Sagen Sie hier N, wenn Sie unsicher sind. - -\subsection{Kernel .config support} -CONFIG\_IKCONFIG [=y] \textbf{[Y]}\\ -Mit dieser Option kann der gesamte Inhalt der \glqq .config\grqq{}-Datei des Linux-Kernels im -Kernel gespeichert werden. Sie dokumentiert, welche Kernel-Optionen in einem -laufenden Kernel oder in einem On-Disk-Kernel verwendet werden. -Diese Informationen können mit dem Skript scripts/extract-ikconfig aus der -Kernel-Image-Datei extrahiert und als Eingabe verwendet werden, um den aktuellen -Kernel neu zu erstellen oder einen anderen Kernel zu bauen. -Sie können auch aus einem laufenden Kernel extrahiert werden, indem -/proc/config.gz gelesen wird, falls dies aktiviert ist (siehe unten).\\ -Definiert mit init/Kconfig:686 - -\subsubsection{Enable access to .config through /proc/config.gz} -CONFIG\_IKCONFIG\_PROC [=y] \textbf{[Y]}\\ -Diese Option ermöglicht den Zugriff auf die Kernelkonfigurationsdatei über -/proc/config.gz. - -\subsection{Enable kernel headers through /sys/kernel/kheaders.tar.xz} -CONFIG\_IKHEADERS [=m] \textbf{[M]}\\ -Diese Option ermöglicht den Zugriff auf die In-Kernel-Header, die während des -Build-Prozesses erzeugt werden. Diese können verwendet werden, um -eBPF-Tracing-Programme oder ähnliche Programme zu erstellen. Wenn Sie die Header -als Modul erstellen, wird ein Modul namens kheaders.ko erstellt, das bei Bedarf -geladen werden kann, um Zugriff auf die Header zu erhalten. - -\subsection{Kernel log buffer size (16 \texorpdfstring{$\Rightarrow$}{=>} 64KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} -CONFIG\_LOG\_BUF\_SHIFT [=17] \textbf{[17]}\\ -Wählen Sie die minimale Größe des Kernel-Protokollpuffers als eine Potenz von 2 aus. -Die endgültige Größe wird durch den Konfigurationsparameter LOG\_CPU\_MAX\_BUF\_SHIFT -beeinflusst, siehe unten. Eine höhere Größe kann auch durch den Boot-Parameter -\glqq log\_buf\_len\grqq{} erzwungen werden.\\ -Beispiele:\\ -\indent 17 $\Rightarrow$ 128 KB\\ -\indent 16 $\Rightarrow$ 64 KB\\ -\indent 15 $\Rightarrow$ 32 KB\\ -\indent 14 $\Rightarrow$ 16 KB\\ -\indent 13 $\Rightarrow$ 8 KB\\ -\indent 12 $\Rightarrow$ 4 KB\\ -Symbol: LOG\_BUF\_SHIFT\\ -Type: Integer (Ganzzahl)\\ -Bereich (range): [12 25] -\subsection{CPU kernel log buffer size contribution (13 \texorpdfstring{$\Rightarrow$}{=>} 8 KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} -CONFIG\_LOG\_BUF\_SHIFT [=12] \textbf{[12]}\\ -Diese Option ermöglicht es, die Standardgröße des Ringpuffers entsprechend der Anzahl -der CPUs zu erhöhen. Der Wert definiert den Beitrag jeder CPU als eine Potenz von 2. -Der beanspruchte Speicherplatz beträgt in der Regel nur wenige Zeilen, kann aber viel -mehr sein, wenn Probleme gemeldet werden, z.~B. bei Rückverfolgungen. -Die erhöhte Größe bedeutet, dass ein neuer Puffer zugewiesen werden muss und der -ursprüngliche statische Puffer ungenutzt ist. Dies ist nur auf Systemen mit mehr CPUs -sinnvoll. Daher wird dieser Wert nur verwendet, wenn die Summe der Beiträge größer ist -als die Hälfte des Standard-Kernel-Ringpuffers, wie durch \texttt{LOG\_BUF\_SHIFT} definiert. -Die Standardwerte sind so eingestellt, dass mehr als 16 CPUs erforderlich sind, um die -Zuweisung auszulösen. Diese Option wird auch ignoriert, wenn der Kernelparameter -\glqq log\_buf\_len\grqq{} verwendet wird, da er eine exakte (Zweierpotenz) Größe des -Ringpuffers erzwingt. Die Anzahl der möglichen CPUs wird für diese Berechnung verwendet, -wobei Hotplugging ignoriert wird, so dass die Berechnung für das Worst-Case-Szenario -optimal ist und gleichzeitig ein einfacher Algorithmus ab dem Hochfahren verwendet -werden kann. Beispiele für Verschiebungswerte und ihre Bedeutung:\\ -\indent 17 $\Rightarrow$ 128 KB für jede CPU\\ -\indent 16 $\Rightarrow$ 64 KB für jede CPU\\ -\indent 15 $\Rightarrow$ 32 KB für jede CPU\\ -\indent 14 $\Rightarrow$ 16 KB für jede CPU\\ -\indent 13 $\Rightarrow$ 8 KB für jede CPU\\ -\indent 12 $\Rightarrow$ 4 KB für jede CPU\\ -Symbol: LOG\_CPU\_MAX\_BUF\_SHIFT\\ -Type: Integer (Ganzzahl)\\ -Bereich (range): [0 21] - -\subsection{Printk indexing debugfs interface)} -CONFIG\_PRINTK\_INDEX [=y] \textbf{[Y]}\\ -Unterstützung für die Indizierung aller zur Kompilierzeit bekannten -printk-Formate unter\\ -$<$debugfs$>$/printk/index/$<$module$>$ hinzufügen. -Dies kann als Teil der Wartung von Daemonen, die /dev/kmsg überwachen, -verwendet werden, da es die Überprüfung der in einem Kernel vorhandenen -printk-Formate erlaubt, was die Erkennung von Fällen ermöglicht, -in denen überwachte printks geändert oder nicht mehr vorhanden sind.\\ -Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist. - -\subsection{Scheduler features \texorpdfstring{$\rightarrow$}{->}} -Scheduler-Funktionen - -\subsubsection{Enable utilization clamping for RT/FAIR tasks} -CONFIG\_UCLAMP\_TASK [=y] \textbf{[Y]}\\ -Diese Funktion ermöglicht es dem Scheduler, die geklemmte Auslastung jeder CPU -auf der Grundlage der auf dieser CPU geplanten RUNNABLE-Tasks zu verfolgen. -Mit dieser Option kann der Benutzer die minimale und maximale CPU-Auslastung -angeben, die für RUNNABLE-Aufgaben zulässig ist. Die maximale Auslastung -definiert die maximale Häufigkeit, mit der ein Task laufen soll, während die -minimale Auslastung die minimale Häufigkeit definiert, mit der er laufen soll.\\ -Sowohl die Minimal- als auch die Maximalwerte für die Auslastung sind Hinweise -für den Scheduler, um seine Frequenzauswahl zu verbessern, aber sie erzwingen -oder gewähren keine bestimmte Bandbreite für Tasks.\\ -Im Zweifelsfall sagen Sie N für Nein. - -\paragraph{Number of supported utilization clamp buckets}$~$\\ -CONFIG\_UCLAMP\_BUCKETS\_COUNT [=5] \textbf{[5]}\\ -Legt die Anzahl der zu verwendenden Klammerbereiche fest. Der Bereich der -einzelnen Buckets ist SCHED\_CAPACITY\_SCALE/UCLAMP\_BUCKETS\_COUNT. -Je höher die Anzahl der Clamp-Buckets, desto feiner die Granularität und -desto höher die Präzision der Clamp-Aggregation und -Verfolgung während der -Laufzeit. -Mit dem minimalen Konfigurationswert haben wir beispielsweise 5 Clamp-Buckets, -die jeweils 20 \% Auslastung verfolgen. Eine um 25 \% gesteigerte Aufgabe -wird im Bucket [20..39]\% gezählt und setzt den effektiven Wert der -Bucketklemme auf 25 \%. -Wenn eine zweite, um 30 \% erhöhte Aufgabe auf derselben CPU eingeplant wird, -wird diese Aufgabe im selben Bucket wie die erste Aufgabe gezählt und erhöht -den effektiven Bucket-Clamp-Wert auf 30 \%. -Der effektive Klemmwert eines Bereichs wird auf seinen Nennwert (20 \% im -obigen Beispiel) zurückgesetzt, wenn keine weiteren Aufgaben mehr in diesem -Bereich gezählt werden. Bei einigen Aufgaben kann eine zusätzliche -Verstärkungs-/Kappungsmarge hinzugefügt werden. Im obigen Beispiel wird -die 25 \%-Aufgabe auf 30 \% angehoben, bis sie die CPU verlässt. -Sollte dies auf bestimmten Systemen nicht akzeptabel sein, ist es immer -möglich, den Spielraum zu verringern, indem die Anzahl der Clamp-Buckets -erhöht wird, um den verbrauchten Speicher gegen die Genauigkeit der -Laufzeitverfolgung einzutauschen.\\ -Im Zweifelsfall sollten Sie den Standardwert verwenden. - -\subsection{Memory placement aware NUMA scheduler} -CONFIG\_NUMA\_BALANCING [=y] \textbf{[Y]}\\ -Diese Option bietet Unterstützung für die automatische -NUMA-kompatible Speicher-/Task-Platzierung. -Der Mechanismus ist recht primitiv und basiert darauf, dass Speicher -migriert wird, wenn er Referenzen auf den Knoten hat, auf dem die Aufgabe läuft.\\ -Dieses System ist auf UMA-Systemen inaktiv. - -\subsubsection{Automatically enable NUMA aware memory/task placemnent} -CONFIG\_NUMA\_BALANCING\_DEFAULT\_ENABLED [=y] \textbf{[Y]}\\ -Wenn diese Option gesetzt ist, wird der automatische NUMA-Ausgleich aktiviert, -wenn das System auf einem NUMA-Rechner läuft. - -\subsection{Control Group support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CGROUPS [=y] \textbf{[Y]}\\ -(Unterstützung der Kontrollgruppe)\\ -Diese Option bietet Unterstützung für die Gruppierung von Prozessgruppen zur Verwendung mit Prozesskontrollsubsystemen wie Cpusets, CFS, Speicherkontrolle oder Geräteisolierung. -\\Siehe -\begin{itemize} -\item Dokumentation/scheduler/sched-design-CFS.rst (CFS) -\item Documentation/admin-guide/cgroup-v1/ (Funktionen für Gruppierung, - Isolierung und Ressourcenkontrolle) -\end{itemize} -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Favor dynamic modification latency reduction by default} -CONFIG\_CGROUP\_FAVOR\_DYNMODS [=n] \textbf{[N]}\\ -Diese Option aktiviert standardmäßig die Einhängeoption -\glqq favordynmods\grqq{}, die die Latenzzeiten dynamischer C-Gruppen-Änderungen -wie Task-Migrationen und Controller-Ein-/Ausschaltungen -auf Kosten von Hot-Path-Operationen wie Forks und Exits -verteuert.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Memory controller} -CONFIG\_MEMCG [=y] \textbf{[Y]}\\ -Ermöglicht die Kontrolle über den Speicherbedarf von Tasks in einer cgroup. - -\subsubsection{IO controller} -CONFIG\_BLK\_CGROUP [=y] \textbf{[Y]}\\ -Generische Block IO Controller cgroup Schnittstelle. Dies ist die gemeinsame -cgroup-Schnittstelle, die von verschiedenen IO-Kontrollstrategien verwendet -werden sollte.\\ -Derzeit wird sie vom CFQ IO Scheduler zur Erkennung von Task-Gruppen und zur -Steuerung der Zuweisung von Festplattenbandbreite (proportionale -Zeitscheibenzuweisung) an solche Task-Gruppen verwendet. Sie wird auch von -der Bio-Throttling-Logik in der Blockschicht verwendet, um eine Obergrenze -für die IO-Raten auf einem Gerät einzuführen.\\ -Diese Option aktiviert nur die generische Infrastruktur des Block-IO-Controllers. -Man muss auch die tatsächliche IO-Kontrolllogik/-Politik aktivieren. -Um die proportionale Aufteilung der Festplattenbandbreite in CFQ zu aktivieren, -setzen Sie -CONFIG\_BFQ\_GROUP\_IOSCHED=y; für die Aktivierung der Drosselungspolitik -setzen Sie CONFIG\_BLK\_DEV\_THROTTLING=y.\\ -Weitere Informationen finden Sie unter -Documentation/admin-guide/cgroup-v1/blkio-controller.rst. - -\subsubsection{CPU controller \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CGROUP\_SCHED [=y] \textbf{[Y]}\\ -Diese Funktion ermöglicht es dem CPU-Scheduler, Task-Gruppen zu erkennen und -die Zuweisung von CPU-Bandbreite an solche Task-Gruppen zu steuern. -Er verwendet cgroups, um Tasks zu gruppieren. - -\paragraph{Group scheduling for SCHED\_OTHER}$~$\\ -CONFIG\_FAIR\_GROUP\_SCHED [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{CPU bandwidth provisioning for FAIR\_GROUP\_SCHED}$~$\\ -CONFIG\_CFS\_BANDWIDTH [=y] \textbf{[Y]}\\ -Mit dieser Option können Benutzer CPU-Bandbreitenraten (Limits) für Aufgaben -festlegen, die innerhalb des Fair Group Schedulers laufen. -Gruppen, für die kein Limit festgelegt wurde, gelten als uneingeschränkt -und werden ohne Einschränkung ausgeführt.\\ -Weitere Informationen finden Sie unter Documentation/scheduler/sched-bwc.rst. - -\paragraph{Group scheduling for SCHED\_RR/FIFO}$~$\\ -CONFIG\_RT\_GROUP\_SCHED [=n] \textbf{[N]}\\ -Mit dieser Funktion können Sie den Task-Gruppen explizit echte CPU-Bandbreite -zuweisen. Wenn sie aktiviert ist, wird es auch unmöglich, Echtzeitaufgaben -für Nicht-Root-Benutzer zu planen, bis Sie ihnen Echtzeitbandbreite zuweisen.\\ -Weitere Informationen finden Sie unter Documentation/scheduler/sched-rt-group.rst. - -\subsubsection{Utilization clamping per group of tasks} -CONFIG\_UCLAMP\_TASK\_GROUP [=y] \textbf{[Y]}\\ -Mit dieser Funktion kann der Scheduler die geklemmte Auslastung jeder CPU auf der -Grundlage der RUNNABLE-Tasks, die derzeit auf dieser CPU geplant sind, verfolgen. -Wenn diese Option aktiviert ist, kann der Benutzer eine minimale und maximale -CPU-Bandbreite angeben, die für jede einzelne Aufgabe in einer Gruppe zulässig ist. -Mit der maximalen Bandbreite kann die maximale Frequenz, die ein Task verwenden kann, -festgelegt werden, während mit der minimalen Bandbreite eine minimale Frequenz -festgelegt werden kann, die ein Task immer verwenden wird. -Bei aktivierter aufgabengruppenbasierter Auslastungsbegrenzung wird ein eventuell -angegebener aufgabenspezifischer Begrenzungswert durch den von cgroup angegebenen -Begrenzungswert eingeschränkt. Sowohl die minimale als auch die maximale Task-Klemmung -kann nicht größer sein als die entsprechende auf Task-Gruppen-Ebene definierte Klemmung.\\ -Im Zweifelsfall sagen Sie N. - -\subsubsection{PIDs controller} -CONFIG\_CGROUP\_PIDS [=y] \textbf{[Y]}\\ -Erzwingt die Begrenzung der Prozessanzahl im Bereich einer cgroup. Jeder Versuch, mehr -Prozesse zu forken, als in der cgroup erlaubt sind, schlägt fehl. -PIDs sind grundsätzlich eine globale Ressource, da es ziemlich trivial ist, eine -PID-Erschöpfung zu erreichen, bevor man auch nur eine konservative kmemcg-Grenze erreicht. -Infolgedessen ist es möglich, ein System zum Stillstand zu bringen, ohne durch andere -cgroup-Richtlinien eingeschränkt zu werden. Der PID-Regler ist dafür ausgelegt, dies zu verhindern. -Es sollte beachtet werden, dass organisatorische Operationen (wie z.~B. das Anhängen an -eine cgroup-Hierarchie) *nicht* durch den PIDs-Controller blockiert werden, da das PIDs-Limit -nur die Fähigkeit eines Prozesses zum Forking, nicht aber zum Anhängen an eine cgroup beeinflusst. - -\subsubsection{RDMA controller} -CONFIG\_CGROUP\_RDMA [=y] \textbf{[Y]}\\ -Ermöglicht die Durchsetzung der vom IB-Stack definierten RDMA-Ressourcen. Es ist relativ -einfach für Verbraucher, RDMA-Ressourcen zu erschöpfen, was dazu führen kann, dass Ressourcen -für andere Verbraucher nicht mehr verfügbar sind. Der RDMA-Controller ist dafür ausgelegt, -dies zu verhindern. Das Anhängen von Prozessen mit aktiven RDMA-Ressourcen an die -cgroup-Hierarchie ist erlaubt, auch wenn die Grenze der Hierarchie überschritten werden kann. - -\subsubsection{Freezer controller} -CONFIG\_CGROUP\_FREEZER [=y] \textbf{[Y]}\\ -Ermöglicht das Einfrieren und Aufheben des Einfrierens aller Aufgaben in einer C-Group. -Diese Option betrifft die ORIGINAL cgroup-Schnittstelle. Der cgroup2-Speicher-Controller -enthält standardmäßig wichtige In-Kernel-Speicherverbraucher.\\ -Wenn Sie cgroup2 verwenden, sagen Sie N. - -\subsubsection{HugeTLB controller} -CONFIG\_CGROUP\_HUGETLB [=y] \textbf{[Y]}\\ -Bietet eine cgroup-Steuerung für HugeTLB-Seiten. Wenn Sie dies aktivieren, können Sie die -HugeTLB-Nutzung pro cgroup begrenzen. Die Begrenzung wird während eines Seitenfehlers -durchgesetzt. Da HugeTLB keine Seitenrückforderung unterstützt, bedeutet die Durchsetzung -des Limits zum Zeitpunkt des Seitenfehlers, dass die Anwendung ein SIGBUS-Signal erhält, -wenn sie versucht, über das Limit hinaus auf HugeTLB-Seiten zuzugreifen. Dies setzt voraus, -dass die Anwendung im Voraus weiß, wie viele HugeTLB-Seiten sie für ihre Nutzung benötigt. -Die Kontrollgruppe wird im dritten Page-lru-Zeiger verfolgt. Dies bedeutet, dass wir die -Steuergruppe nicht mit einer riesigen Seite von weniger als 3 Seiten verwenden können. - -\subsubsection{Cpuset controller} -CONFIG\_CPUSETS [=y] \textbf{[Y]}\\ -Mit dieser Option können Sie CPUSETs erstellen und verwalten, die es ermöglichen, ein System -dynamisch in Gruppen von CPUs und Speicherknoten zu partitionieren und Aufgaben zuzuweisen, -die nur innerhalb dieser Gruppen ausgeführt werden. -Dies ist vor allem auf großen SMP- oder NUMA-Systemen nützlich.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\paragraph{Include legacy /proc/$<$pid$>$/cpuset file}$~$\\ -CONFIG\_PROC\_PID\_CPUSET [=y] \textbf{[Y]}\\ -This option will let you create and manage CPUSETs which allow dynamically partitioning a -system into sets of CPUs and Memory Nodes and assigning tasks to run only within those sets. -This is primarily useful on large SMP or NUMA systems.\\ -Say N if unsure. - -\subsubsection{Device controller} -CONFIG\_CGROUP\_DEVICE [=y] \textbf{[Y]}\\ -Bietet einen cgroup-Controller an, der Whitelists für Geräte implementiert, -die ein Prozess in der cgroup mknod oder öffnen kann. - -\subsubsection{Simple CPU accounting controller} -CONFIG\_CGROUP\_CPUACCT [=y] \textbf{[Y]}\\* -(Einfacher CPU-Accounting-Controller)\\ -Bietet einen einfachen Controller für die Überwachung des gesamten -CPU-Verbrauchs der Tasks in einer cgroup an. - -\subsubsection{Perf controller} -CONFIG\_CGROUP\_PERF [=y] \textbf{[Y]}\\ -Diese Option erweitert den Modus perf per-cpu, um die Überwachung auf Threads zu beschränken, -die zu der angegebenen cgroup gehören und auf der angegebenen CPU laufen. -Sie kann auch verwendet werden, um die cgroup ID in Stichproben zu haben, -so dass sie Leistungsereignisse zwischen cgroups überwachen kann.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Support for eBPF programs attached to cgroups} -CONFIG\_CGROUP\_BPF [=y] \textbf{[Y]}\\ -Erlaubt das Anhängen von eBPF-Programmen an eine cgroup mit dem -bpf(2)-Syscall-Befehl\\ -\texttt{BPF\_PROG\_ATTACH}.\\ -In welchem Kontext auf diese Programme zugegriffen wird, hängt von der Art des Attachments ab. -Zum Beispiel werden Programme, die mit BPF\_CGROUP\_INET\_INGRESS angehängt werden, -auf dem Ingress-Pfad von inet-Sockets ausgeführt. - -\subsubsection{Misc resource controller} -CONFIG\_CGROUP\_MISC [=y] \textbf{[Y]}\\ -Bietet einen Controller für verschiedene Ressourcen auf einem Host. -Verschiedene skalare Ressourcen sind die Ressourcen auf dem Host-System, die nicht wie die -anderen cgroups abstrahiert werden können. Dieser Controller verfolgt und begrenzt die -verschiedenen Ressourcen, die von einem Prozess verwendet werden, der an eine -cgroup-Hierarchie angeschlossen ist.\\ -Weitere Informationen finden Sie im Abschnitt misc cgroup in /Documentation/admin-guide/cgroup-v2.rst. - -\subsubsection{Debug controller} -CONFIG\_CGROUP\_DEBUG [=n] \textbf{[N]}\\ -Diese Option aktiviert einen einfachen Controller, der Debugging"=Informationen über das -cgroups"=Frame\-work exportiert. Dieser Controller ist nur für das Debugging von Kontroll-C-Gruppen gedacht. -Seine Schnitt\-stellen sind nicht stabil.\\ -Sagen Sie N. - -\subsection{Namespaces support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NAMESPACES [=y] \textbf{[Y]}\\ -(Unterstützung von Namensräumen, namespaces)\\ -Bietet die Möglichkeit, Aufgaben mit verschiedenen Objekten unter Verwendung derselben Kennung -arbeiten zu lassen. Zum Beispiel kann sich dieselbe IPC-ID auf verschiedene Objekte beziehen oder -dieselbe Benutzer-ID oder pid kann sich auf verschiedene Aufgaben beziehen, wenn sie in verschiedenen -Namensräumen verwendet werden. - -\subsubsection{UTS namespace} -CONFIG\_UTS\_NS [=y] \textbf{[Y]}\\ -In diesem Namensraum sehen Aufgaben verschiedene Informationen, die mit dem Systemaufruf uname() -bereitgestellt werden - -\subsubsection{TIME namespace} -CONFIG\_TIME\_NS [=y] \textbf{[Y]}\\ -In diesem Namespace können boottime und monotone Uhren eingestellt werden. -Die Zeit läuft dann mit der gleichen Geschwindigkeit weiter. - -\subsubsection{IPC namespace} -CONFIG\_IPC\_NS [=y] \textbf{[Y]}\\ -In diesem Namensraum arbeiten Aufgaben mit IPC-IDs (Interprozess-IDs), die jeweils -verschiedenen IPC-Objekten in verschiedenen Namensräumen entsprechen. - -\subsubsection{User namespace} -CONFIG\_USER\_NS [=y] \textbf{[Y]}\\ -Dies ermöglicht es Containern, d.~h. V-Servern, Benutzernamensräume zu verwenden, -um verschiedene Benutzerinformationen für verschiedene Server bereitzustellen. -Wenn Benutzernamensräume im Kernel aktiviert sind, wird empfohlen, dass die Option \texttt{MEMCG} ebenfalls -aktiviert wird und dass der Benutzerbereich die Speicherkontrollgruppen verwendet, -um die Speichermenge zu begrenzen, die nicht privilegierte Benutzer verwenden können. - -\paragraph{Allow unprivileged users to create namespaces}$~$\\ -CONFIG\_USERS\_NS\_UNPRIVILEGED [=y] \textbf{[Y]}\\ -Wenn diese Funktion deaktiviert ist, können unprivilegierte Benutzer keine neuen Namensräume -erstellen. Die Möglichkeit, dass Benutzer ihre eigenen Namespaces erstellen können, war Teil mehrerer -kürzlich erfolgter lokaler Privilegienerweiterungen. Wenn Sie also Benutzernamespaces benötigen, -aber paranoid bzw. sicherheitsbewusst sind, sollten Sie diese Funktion deaktivieren. -Diese Einstellung kann zur Laufzeit mit dem -\texttt{kernel.unprivileged\_userns\_clone sysctl} -außer Kraft gesetzt werden.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{PID namespace} -CONFIG\_PID\_NS [=y] \textbf{[Y]}\\ -Unterstützung von Prozess-ID-Namensräumen. Dies ermöglicht es, mehrere Prozesse mit der gleichen pid -zu haben, solange sie sich in verschiedenen pid-Namensräumen befinden. Dies ist ein Baustein von Containern. - -\subsubsection{Network namespace} -CONFIG\_NET\_NS [=y] \textbf{[Y]}\\ -Ermöglicht es dem Benutzer, scheinbar mehrere Instanzen des Netzwerkstapels zu erstellen. - -\subsection{Checkpoint/restore support} -CONFIG\_CHECKPOINT\_RESTORE [=y] \textbf{[Y]}\\ -Ermöglicht zusätzliche Kernel-Funktionen in einer Art Checkpoint/Restore. -Insbesondere fügt es zu\-sätz\-liche prctl-Codes zum Einrichten von Prozesstext, Daten- und Heap-Segmentgrößen -sowie einige zusätzliche /proc-Dateisystemeinträge hinzu.\\ -Wenn Sie unsicher sind, geben Sie hier N an. - - -\subsection{Automatic process group scheduling} -CONFIG\_SCHED\_AUTOGROUP [=y] \textbf{[Y]}\\ -Mit dieser Option wird der Scheduler für gängige Desktop-Workloads optimiert, -indem automatisch Aufgabengruppen erstellt und aufgefüllt werden. -Diese Trennung von Arbeitslasten isoliert aggressive CPU-Brenner (wie Build-Jobs) von Desktop-Anwendungen. -Die automatische Erstellung von Aufgabengruppen basiert derzeit auf der Aufgabensitzung. - -\subsection{Kernel\texorpdfstring{$\rightarrow$}{->}user space relay support (formerly relayfs)} -CONFIG\_RELAY [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung für die Relaisschnittstelle in bestimmten Dateisystemen -(wie debugfs). Sie wurde entwickelt, um einen effizienten Mechanismus für Werkzeuge und Einrichtungen -zur Weiterleitung großer Datenmengen aus dem Kernelbereich in den Benutzerbereich bereitzustellen.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Initial RAM filesystem and RAM disk (initramfs/initrd) support} -CONFIG\_BLK\_DEV\_INITRD [=y] \textbf{[Y]}\\ -Das anfängliche RAM-Dateisystem ist ein ramfs, das vom Bootloader (loadlin oder lilo) geladen und vor -dem normalen Bootvorgang als root eingehängt wird. Es wird typischerweise verwendet, um Module zu laden, -die zum Einhängen des \glqq echten\grqq{} Root-Dateisystems benötigt werden, usw.\\ -Siehe $<$file:Documentation/admin-guide/initrd.rst$>$ für Details. -Wenn die RAM-Disk-Unter\-stützung\\ -(BLK\_DEV\_RAM) eben\-falls enthalten ist, aktiviert dies auch die anfängliche -RAM-Disk-Unterstützung (initrd) und fügt 15 KByte (auf einigen anderen Architekturen mehr) zur Kernelgröße hinzu.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Initramfs source file(s)} -CONFIG\_INITRAMFS\_SOURCE [=] \textbf{[~]}\\ -Dies kann entweder ein einzelnes cpio-Archiv mit der Endung .cpio oder eine durch Leerzeichen getrennte -Liste von Verzeichnissen und Dateien zur Erstellung des initramfs-Abbilds sein. -Ein cpio-Archiv sollte ein Dateisystemarchiv enthalten, das als initramfs-Abbild verwendet werden soll. -Verzeichnisse sollten ein Dateisystem-Layout enthalten, das in das initramfs-Abbild aufgenommen werden -soll. Die Dateien sollten Einträge in dem Format enthalten, das vom -Programm \texttt{usr/gen\_init\_cpio} im Kernelbaum beschrieben wird. -Wenn mehrere Verzeichnisse und Dateien angegeben werden, wird das initramfs-Abbild die Summe aller -dieser Verzeichnisse und Dateien sein.\\ -Siehe $<$file:Documentation/driver-api/early-userspace/early\_userspace\_support.rst$>$ -für weitere Details.\\ -Wenn Sie sich nicht sicher sind, lassen Sie das Feld leer.\\ -Symbol: INITRAMFS\_SOURCE [=]\\ -Type : string (Zeichenkette) - -\subsubsection{Support initial ramdisk/ramfs compressed using gzip} -CONFIG\_RD\_GZIP [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines gzip-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using bzip2} -CONFIG\_RD\_BZIP2 [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines bzip2-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using LZMA} -CONFIG\_RD\_LZMA [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines LZMA-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using XZ} -CONFIG\_RD\_XZ [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines XZ-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using LZO} -CONFIG\_RD\_LZO [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines LZO-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using LZ4} -CONFIG\_RD\_LZ4 [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines LZ4-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Support initial ramdisk/ramfs compressed using ZSTD} -CONFIG\_RD\_ZSTD [=y] \textbf{[Y]}\\ -Unterstützung des Ladens eines ZSTD-kodierten Anfangs-Ramdisk- -oder Cpio-Puffers.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Boot config support} -CONFIG\_BOOT\_CONFIG [=y] \textbf{[Y]}\\ -Extra boot config ermöglicht es dem Systemadministrator, eine Konfigurationsdatei -als zusätzliche Erweiterung der Kernel-Cmdline beim Booten zu übergeben. -Die Bootkonfigurationsdatei muss am Ende von \mbox{initramfs} mit Prüfsumme, Größe und -magischem Wort angehängt werden.\\ -Siehe $<$file:Documentation/admin-guide/bootconfig.rst$>$ für Details.\\ -Wenn Sie unsicher sind, sagen Sie Y. - - -\subsubsection{Force unconditional bootconfig processing} -CONFIG\_BOOT\_CONFIG\_FORCE [=n] \textbf{[N]}\\ -Wenn diese Kconfig-Option gesetzt ist, wird die BOOT\_CONFIG-Verarbeitung auch dann -durchgeführt, wenn der Kernel-Boot-Parameter "bootconfig" weggelassen wird. -Tatsächlich gibt es mit dieser Kconfig-Option keine Möglichkeit, den Kernel dazu -zu bringen, die von BOOT\_CONFIG gelieferten Kernel-Boot-Parameter zu ignorieren.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Embed bootconfig file in the kernel} -CONFIG\_BOOT\_CONFIG\_EMBED [=n] \textbf{[N]}\\ -Eine mit BOOT\_CONFIG\_EMBED\_FILE angegebene bootconfig-Datei in den Kernel einbetten. -Normalerweise wird die bootconfig-Datei mit dem initrd-Image geladen. Wenn das System -jedoch initrd nicht unterstützt, hilft Ihnen diese Option, indem sie eine bootconfig-Datei -beim Erstellen des Kernels einbettet.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Preserve cpio archive mtimes in initramfs} -CONFIG\_INITRAMFS\_PRESERVE\_MTIME [=y] \textbf{[Y]}\\ -Jeder Eintrag in einem initramfs cpio-Archiv enthält einen mtime-Wert. -Wenn diese Option aktiviert ist, übernehmen die extrahierten cpio-Einträge diese mtime, -wobei die mtime-Einstellung des Verzeichnisses aufgeschoben wird, bis nach der -Erstellung aller untergeordneten Einträge.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Compiler optimization level \texorpdfstring{$\rightarrow$}{->}} -Optimierungsgrad des Compilers, Auswahl aus den folgenden zwei Punkten: - -\subsubsection{Optimize for performance (-O2)} -CONFIG\_CC\_OPTIMIZE\_FOR\_PERFORMANCE [=y] \textbf{[Y]}\\ -Dies ist die Standardoptimierungsstufe für den Kernel, die mit dem Compiler-Flag \texttt{-O2} -erstellt wird, um die beste Leistung und die hilfreichsten Warnungen bei der -Kompilierung zu erhalten. - -\subsubsection{Optimize for size (-Os)} -CONFIG\_CC\_OPTIMIZE\_FOR\_SIZE [=n] \textbf{[N]}\\ -Wenn Sie diese Option wählen, wird \texttt{-Os} an Ihren Compiler übergeben, -was zu einem kleineren Kernel führt. - -\subsection{Configure standard kernel features (expert users)} -CONFIG\_EXPERT [=n] \textbf{[~]}\\ -Mit dieser Option können bestimmte Basis-Kerneloptionen und -einstellungen -deaktiviert oder optimiert werden. Dies ist für spezielle Umgebungen gedacht, -die einen \glqq Nicht-Standard\grqq{}-Kernel tolerieren können.\\ -Verwenden Sie diese Option nur, wenn Sie wirklich wissen, was Sie tun. - -\subsubsection{Load all symbols for debugging/ksymoops} -CONFIG\_KALLSYMS [=y] \textbf{[Y]}\\ -(sichtbar wenn EXPERT [=n])\\ -Geben Sie hier Y ein, damit der Kernel symbolische Absturzinformationen und -symbolische Stack-Backtraces ausgibt. Dies erhöht die Größe des Kernels etwas, -da alle Symbole in das Kernel-Image geladen werden müssen. - -\paragraph{Test the basic functions and performance of kallsyms}$~$\\ -CONFIG\_KALLSYMS\_SELFTEST [=n] \textbf{[N]}\\ -Testen Sie die Grundfunktionen und die Leistung einiger Schnittstellen, wie z.~B. -\texttt{kallsyms\_lookup\_name}. Außerdem wird die Kompressionsrate des -kallsyms-Kompressionsalgorithmus für den aktuellen Symbolsatz berechnet. -Starten Sie den Selbsttest automatisch nach dem Systemstart.\\ -Es wird empfohlen, \texttt{dmesg | grep kallsyms\_selftest} auszuführen, -um die Testergebnisse zu sammeln. -In der letzten Zeile wird \texttt{finish} angezeigt, was bedeutet, -dass der Test abgeschlossen ist. - -\paragraph{Include all symbols in kallsyms}$~$\\ -CONFIG\_KALLSYMS\_ALL [=y] \textbf{[Y]}\\ -Normalerweise enthält kallsyms nur die Symbole von Funktionen für schönere -OOPS-Meldungen und Backtraces (d.~h. Symbole aus den Abschnitten text und -inittext). Dies ist für die meisten Fälle ausreichend. Nur wenn Sie Kernel-Live-Patching -oder andere weniger häufige Anwendungsfälle (z.~B. wenn ein Debugger verwendet -wird) aktivieren wollen, sind alle Symbole erforderlich (d.~h. die Namen von Variablen -aus den Data-Abschnitten usw.).\\ -Diese Option stellt sicher, dass alle Symbole in das Kernel-Image geladen werden -(d.~h. Symbole aus allen Sektionen), was die Kernelgröße erhöht (je nach Kernelkonfiguration -kann sie 300KiB oder etwas Ähnliches betragen).\\ -Sagen Sie N, es sei denn, Sie brauchen wirklich alle Symbole, -oder Kernel-Live-Patching. - -\subsection{Kernel Performance Events And Counters \texorpdfstring{$\rightarrow$}{->}} -Kernel-Leistungsereignisse und -Zähler - -\subsubsection{Kernel performance events and counters} -CONFIG\_PERF\_EVENTS [=y] \textbf{[Y]}\\ -Aktivieren Sie die Kernel-Unterstützung für verschiedene von Software und Hardware -bereitgestellte Leistungsereignisse. - -Software-Ereignisse werden entweder integriert oder über die Verwendung von generischen -Tracepoints unterstützt. - -Die meisten modernen CPUs unterstützen Leistungsereignisse über Leistungszählerregister. -Diese Register zählen die Anzahl bestimmter Arten von hw-Ereignissen: z.~B. ausgeführte -Anweisungen, erlittene Cachemisses oder falsch vorhergesagte Verzweigungen -- ohne den -Kernel oder Anwendungen zu verlangsamen. Diese Register können auch Unterbrechungen -auslösen, wenn eine bestimmte Anzahl von Ereignissen überschritten wird -- und können so -dazu verwendet werden, ein Profil des Codes zu erstellen, der auf dieser CPU läuft. - -Das Linux-Performance-Event-Subsystem bietet eine Abstraktion dieser Software- und -Hardware-Event-Fähigkeiten, die über einen Systemaufruf zugänglich sind und von dem -Dienstprogramm \texttt{perf} in \texttt{tools/perf/} verwendet werden. -Es stellt Zähler pro Task -und pro CPU zur Verfügung und bietet darüber hinaus Ereignisfunktionen.\\ -Sagen Sie Y, wenn Sie unsicher sind. - -\paragraph{Debug: use vmalloc to back perf mmap() buffers}$~$\\ -CONFIG\_DEBUG\_PERF\_USE\_VMALLOC [=n] \textbf{[N]}\\ -Verwendung von vmalloc-Speicher zur Sicherung von mmap()-Puffern. Hauptsächlich nützlich zum Debuggen des vmalloc-Codes auf Plattformen, die dies nicht erfordern. -Sagen Sie N, wenn Sie unsicher sind. - -\subsection{Profiling support} -CONFIG\_PROFILING [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, um die erweiterten Unterstützungsmechanismen für das Profiling zu -aktivieren, die von Profilern verwendet werden. - -\subsection{Kexec and crash features \texorpdfstring{$\rightarrow$}{->}} -Kexec und Absturzmerkmale - -\subsubsection{Enable kexec system call} -CONFIG\_KEXEC [=y] \textbf{[Y]}\\ -\texttt{kexec} ist ein Systemaufruf, der die Fähigkeit implementiert, den aktuellen Kernel -herunterzufahren und einen anderen Kernel zu starten. Es ist wie ein Neustart, aber er ist -unabhängig von der System-Firmware. Und wie ein Neustart können Sie damit jeden Kernel -starten, nicht nur Linux. -Der Name kommt von der Anlehnung mit dem Systemaufruf \texttt{exec}. -Es ist ein fortlaufender Prozess, um sicher zu sein, dass die Hardware eines Rechners -ordnungsgemäß heruntergefahren wird, seien Sie also nicht überrascht, wenn dieser Code bei -Ihnen zunächst nicht funktioniert. Zum Zeitpunkt des Verfassens dieses Artikels ist die -genaue Hardwareschnittstelle noch stark im Wandel, so dass keine gute Empfehlung -ausgesprochen werden kann. - -\subsubsection{Enable kexec file based system call} -CONFIG\_KEXEC\_FILE [=y] \textbf{[Y]}\\ -(Aktivieren des dateibasierten Systemaufrufs kexec)\\ -Dies ist eine neue Version des Systemaufrufs \texttt{kexec}. Dieser Systemaufruf ist dateibasiert und -nimmt Dateideskriptoren als Systemaufrufsargument für Kernel und initramfs anstelle einer Liste -von Segmenten, wie sie vom kexec-Systemaufruf akzeptiert wird. - -\paragraph{Verify kernel signature during kexec\_file\_load() syscall}$~$\\ -CONFIG\_KEXEC\_SIG [=y] \textbf{[Y]}\\ -Mit dieser Option wird der Syscall \texttt{kexec\_file\_load()} auf eine gültige Signatur des -Kernel-Images geprüft. Das Image kann immer noch ohne gültige Signatur geladen werden, es sei denn, -Sie aktivieren auch KEXEC\_SIG\_FORCE, aber wenn es eine Signatur gibt, die überprüft werden kann, -dann muss sie auch gültig sein. -Zusätzlich zu dieser Option müssen Sie die Signaturprüfung für den entsprechenden Kernel-Image-Typ, -der geladen wird, aktivieren, damit dies funktioniert. - -\subparagraph{Require a valid signature in kexec\_file\_load() syscall}$~$\\ -CONFIG\_KEXEC\_SIG\_FORCE [=n] \textbf{[N]}\\ -Diese Option macht die Überprüfung der Kernelsignatur für den Syscall -\texttt{kexec\_file\_load()} zwingend erforderlich. - -\subparagraph{Enable bzImage signature verification support}$~$\\ -CONFIG\_KEXEC\_BZIMAGE\_VERIFY\_SIG [=n] \textbf{[N]}\\ -Aktivierung der Unterstützung von bzImage für die Signaturprüfung. - -\subsubsection{kexec jump} -CONFIG\_KEXEC\_JUMP [=y] \textbf{[Y]}\\ -Sprung zwischen Original-Kernel und kexeced-Kernel und Aufruf von Code im physikalischen -Adressmodus über KEXEC - -\subsubsection{kexec crash dumps} -CONFIG\_KEXEC\_DUMP [=y] \textbf{[Y]}\\ -Absturzdump (Speicherauszug) erzeugen, nachdem er von kexec gestartet wurde. -Dies sollte normalerweise nur in speziellen Crash-Dump-Kerneln gesetzt werden, die im Hauptkernel -mit kexec-tools in einen speziell reservierten Bereich geladen werden und dann später nach einem -Absturz von kdump/kexec ausgeführt werden. Der Crash-Dump-Kernel muss mit PHYSICAL\_START auf eine -Speicheradresse kompiliert werden, die nicht vom Hauptkernel oder BIOS verwendet wird, oder er muss -als relocatable image (CONFIG\_RELOCATABLE=y) erstellt werden.\\ -Für weitere Details siehe Documentation/admin-guide/kdump/kdump.rst - -Für s390 aktiviert diese Option auch zfcpdump.\\ -Siehe auch $<$file:Documentation/s390/zfcpdump.rst$>$ - -\paragraph{Update the crash elfcorehdr on system configuration changes}$~$\\ -CONFIG\_CRASH\_HOTPLUG [=y] \textbf{[Y]}\\ -Aktivierung der direkten Aktualisierung der Crash-Elfcorehdr (die die Liste der CPUs und -Speicherbereiche enthält, die bei einem Absturz gelöscht werden sollen) als Reaktion auf -Hot-Plug/Unplug oder Online/Offline von CPUs oder Speicher. Dies ist ein sehr viel -fortschrittlicherer Ansatz als der Versuch dies im Userspace zu tun.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{Specify the maximum number of memory regions for the elfcorehdr}$~$\\ -CONFIG\_CRASH\_MAX\_MEMORY\_RANGES [=8192] \textbf{[8192]}\\ -Für den Pfad des Systemaufrufs \texttt{kexec\_file\_load()} ist die maximale Anzahl -der Speicherbereiche anzugeben, die der elfcorehdr-Puffer/das elfcorehdr-Segment aufnehmen kann. -Diese Regionen werden über \texttt{walk\_system\_ram\_res()} ermittelt, z.~B. die -'System RAM'-Einträge in /proc/iomem. Dieser Wert wird mit NR\_CPUS\_DEFAULT kombiniert und mit -\texttt{sizeof(Elf64\_Phdr)} multipliziert, um die endgültige elfcorehdr-Speicherpuffer-/Segmentgröße -zu bestimmen. Der Wert 8192 beispielsweise deckt ein (dünn besiedeltes) 1TiB-System ab, -das aus 128MiB-Memblöcken besteht, und führt zu einer elfcorehdr-Speicher\-puffer-/Segmentgröße -von unter 1MiB. Dies ist eine vernünftige Wahl, um sowohl Baremetal- als auch virtuelle -Maschinenkonfigurationen zu unterstützen.\\ -Für den Syscall-Pfad \texttt{kexec\_load()} -ist CRASH\_MAX\_MEMORY\_RANGES Teil der Berechnung hinter dem Wert, -der über das Attribut /sys/kernel/crash\_elfcorehdr\_size bereitgestellt wird. - -\section{64-bit kernel} -CONFIG\_64BIT [=y] \textbf{[Y]}\\ -Sagen Sie Y für ja, zur Erstellung eines 64-Bit-Kernels - früher bekannt als x86\_64\\ -Sagen Sie N für nein, um einen 32-Bit-Kernel zu erstellen - früher bekannt als i386 - -\section{Processor type and features \texorpdfstring{$\rightarrow$}{->}} -Prozessortyp und Eigenschaften - -\subsection{Symmetric multi-processing support} -CONFIG\_SMP [=y] \textbf{[Y]}\\ -Dies ermöglicht die Unterstützung von Systemen mit mehr als einer CPU. Wenn Sie ein System mit nur -einer CPU haben, sagen Sie N. Wenn Sie ein System mit mehr als einer CPU haben, sagen Sie Y. -Wenn Sie hier N angeben, läuft der Kernel auf Uni- und Multi\-prozessor"=Maschinen, verwendet aber nur -eine CPU einer Multi\-pro\-zes\-sor"=Ma\-schine. -Wenn Sie hier Y angeben, läuft der Kernel auf vielen, aber nicht auf -allen Uni\-pro\-zes\-sor"=Ma\-schi\-nen. - -Auf einer Uni\-pro\-zes\-sor"=Maschine läuft der Kernel schneller, wenn Sie hier N angeben. -Beachten Sie, dass der Kernel nicht auf 486er-Architekturen läuft, wenn Sie hier Y angeben und unter -\glqq Prozessor\-familie\grqq{} die Architektur \glqq 586\grqq{} oder \glqq Pentium\grqq{} auswählen. - -Ebenso funktionieren Multi\-pro\-zes\-sor"=Kernel für die \glqq PPro\grqq{}"=Ar\-chi\-tek\-tur -möglicherweise nicht auf allen Pentium"=basierten Boards. - -Benutzer von Multi\-prozessor-Maschinen, die hier Y für \glqq Ja\grqq{} angeben, sollten auch -\glqq Ja\grqq{} -zu \glqq Enhanced Real Time Clock Support\grqq{} (siehe unten) sagen. -Der \glqq Advanced Power Management\grqq{}-Code wird deaktiviert, wenn Sie hier -\glqq Y\grqq{} angeben. Siehe auch $<$file:Documentation/arch/x86/i386/IO-APIC.rst$>$, -$<$file:Documentation/admin-guide/lockup-watchdogs.rst$>$ und das SMP-HOWTO, verfügbar unter:\\ -\url{http://www.tldp.org/docs.html\#howto}.\\ -Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. - -\subsection{Support x2apic} -CONFIG\_X86\_X2APIC [=y] \textbf{[Y]}\\ -Dies ermöglicht die Unterstützung von x2apic auf CPUs, die über diese Funktion verfügen. -Dies ermöglicht 32-Bit-Apic-IDs (so dass es sehr große Systeme unterstützen kann) und greift auf den -lokalen apic über MSRs und nicht über mmio zu. Einige Intel-Systeme ab ca. 2022 sind in den x2APIC-Modus -gesperrt und können nicht auf die alten APIC-Modi zurückgreifen, wenn SGX oder TDX im BIOS aktiviert -sind. Ohne Aktivierung dieser Option booten sie mit stark eingeschränkter Funktionalität.\\ -Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. - -\subsection{Enable MPS table} -CONFIG\_X86\_MPPARSE [=y] \textbf{[Y]}\\ -Für alte smp-Systeme, die keine richtige acpi-Unterstützung haben. Neuere Systeme -(insbesondere mit 64bit-CPUs) mit acpi-Unterstützung, werden von MADT und DSDT überschrieben. - -\subsection{x86 CPU resource control support} -CONFIG\_X86\_CPU\_RESCTRL [=y] \textbf{[Y]}\\ -Aktivieren Sie die Unterstützung der x86-CPU-Ressourcensteuerung. Unterstützung für die Zuweisung und -Überwachung der Nutzung von Systemressourcen durch die CPU. Intel nennt dies Intel Resource Director -Technology (Intel(R) RDT). Weitere Informationen über RDT finden Sie im Intel x86 Architecture -Software Developer Manual. AMD bezeichnet dies als AMD Platform Quality of Service (AMD QoS).\\ -Weitere Informationen über AMD QoS finden Sie im Handbuch AMD64 Technology Platform Quality of Service -Extensions.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsection{Support for extended (non-PC) x86 platforms} -CONFIG\_X86\_EXTENDED\_PLATFORM [=n] \textbf{[N]}\\ -Wenn Sie diese Option deaktivieren, unterstützt der Kernel nur Standard-PC-Plattformen -(was die große Mehrheit der Systeme da draußen abdeckt). -Wenn Sie diese Option aktivieren, können Sie die Unterstützung für die folgenden (nicht-PC) -64-Bit-x86-Plattformen auswählen: -\begin{itemize} - \item Numascale NumaChip - \item ScaleMP vSMP - \item SGI Ultraviolet -\end{itemize} -Wenn Sie eines dieser Systeme haben, oder wenn Sie einen generischen Distributionskernel bauen -wollen, geben Sie hier Y an -- andernfalls sagen Sie N. - -\subsection{Intel Low Power Subsystem Support} -CONFIG\_X86\_INTEL\_LPSS [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um Unterstützung für das Intel Low Power Subsystem zu erstellen, -wie es auf dem Intel Lynxpoint PCH zu finden ist. Die Auswahl dieser Option ermöglicht Dinge wie -Clock Tree (Common Clock Framework) und Pincontrol, die von den LPSS-Peripherietreibern benötigt werden. - -\subsection{AMD ACPI2Platform devices support} -CONFIG\_X86\_AMD\_PLATFORM\_DEVICE [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um AMD-spezifische ACPI-Geräte wie I2C, UART, GPIO, die auf AMD Carrizo -und späteren Chipsätzen zu finden sind, als Plattformgeräte zu interpretieren. I2C und UART hängen -von COMMON\_CLK ab, um den Takt zu setzen. Der GPIO-Treiber ist im PINCTRL-Subsystem implementiert. - -\subsection{Intel SoC IOSF Sideband support for SoC platforms} -CONFIG\_IOSF\_MBI [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung des Seitenband-Registerzugriffs für Intel SoC-Plattformen. -Auf diesen Plattformen wird das IOSF-Seitenband anstelle von MSRs für einige Registerzugriffe -verwendet, vor allem, aber nicht ausschließlich, für thermische und Stromversorgungs-Register. -Treiber können die Verfügbarkeit dieser Geräte abfragen, um festzustellen, ob sie das Seitenband -benötigen, um auf diesen Plattformen zu funktionieren. -Das Seitenband ist auf den folgenden SoC-Produkten verfügbar. -\begin{itemize} - \item BayTrail - \item Braswell - \item Quark -\end{itemize} -Sie sollten Y sagen, wenn Sie einen Kernel auf einem dieser SoCs ausführen. - -\subsubsection{Enable IOSF sideband access through debugfs} -CONFIG\_IOSF\_MBI\_DEBUG [=n] \textbf{[N]}\\ -Wählen Sie diese Option, um die IOSF-Seitenband-Zugriffsregister (MCR, MDR, MCRX) über debugfs -freizugeben, um Registerinformationen von verschiedenen Einheiten auf dem SoC zu schreiben und -zu lesen. Dies ist sehr nützlich, um Informationen über den Gerätezustand für Debugging und -Analyse zu erhalten. Da es sich um einen allgemeinen Zugriffsmechanismus handelt, müssen die -Benutzer dieser Option das Gerät, auf das sie zugreifen wollen, genau kennen.\\ -Wenn Sie die Option nicht benötigen oder im Zweifel sind, sagen Sie N. - -\subsection{Single-depth WCHAN output} -CONFIG\_SHED\_OMIT\_FRAME\_POINTER [=y] \textbf{[Y]}\\ -Berechne einfachere /proc/$<$PID$>$/wchan-Werte. Wenn diese Option deaktiviert ist, werden die -wchan-Werte zur aufrufenden Funktion zurückgeführt. Dies liefert genauere wchan-Werte, allerdings -auf Kosten eines etwas größeren Planungsaufwands (scheduling overhead).\\ -Im Zweifelsfall sagen Sie "Y". - -\subsection{Linux guest support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_HYPERVISOR\_GUEST [=y] \textbf{[Y]}\\ -Geben Sie hier Y ein, um Optionen für die Ausführung von Linux unter verschiedenen Hypervisoren zu -aktivieren. Diese Option aktiviert die grundlegende Hypervisor-Erkennung und die Einrichtung der -Plattform. -Wenn Sie N sagen, werden alle Optionen in diesem Untermenü übersprungen und deaktiviert, und die -Linux-Gastunterstützung wird nicht eingebaut. - -\subsubsection{Enable paravirtualization code} -CONFIG\_PARAVIRT [=y] \textbf{[Y]}\\ -Der Kernel wird so verändert, dass er sich selbst modifizieren kann, wenn er unter einem Hypervisor -ausgeführt wird, was die Leistung gegenüber einer vollständigen Virtualisierung erheblich verbessern -kann. Wenn der Kernel jedoch ohne Hypervisor ausgeführt wird, ist er theoretisch langsamer und etwas -größer. - -\subsubsection{paravirt-ops debugging} -CONFIG\_PARAVIRT\_DEBUG [=n] \textbf{[N]}\\ -Ermöglicht das Debuggen von paravirt\_ops Interna. -Insbesondere BUG, wenn eine paravirt\_op fehlt, wenn sie aufgerufen wird. - -\subsubsection{Paravirtualization layer for spinlocks} -CONFIG\_PARAVIRT\_SPINLOCKS [=y] \textbf{[Y]}\\ -Paravirtualisierte Spinlocks ermöglichen es einem pvops-Backend, die Spinlock-Implementierung durch -etwas Virtualisierungsfreundliches zu ersetzen (z.~B. Blockieren der virtuellen CPU anstelle -von Spinning). -Dies hat nur minimale Auswirkungen auf native Kernel und bringt einen deutlichen Leistungsvorteil -für paravirtualisierte KVM/Xen-Kernel.\\ -Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y. - -\subsubsection{Xen guest support} -CONFIG\_XEN [=y] \textbf{[Y]}\\ -Dies ist der Linux-Xen-Port. Wenn Sie dies aktivieren, kann der Kernel in einer -paravirtualisierten Umgebung unter dem Xen-Hypervisor booten. - -\paragraph{Xen PV guest support}$~$\\ -CONFIG\_XEN\_PV [=y] \textbf{[Y]}\\ -Der Betrieb als Xen PV-Gast wird unterstützt. - -\subparagraph{Limit Xen pv-domain memory to 512GB}$~$\\ -CONFIG\_XEN\_512GB [=y] \textbf{[Y]}\\ -Begrenzen der paravirtualisierten Benutzerdomänen auf 512~GB RAM. -Die Xen-Tools und die Tools zur Analyse von Crash-Dumps unterstützen möglicherweise keine pv-Domänen -mit mehr als 512~GB~RAM. Diese Option steuert die Standardeinstellung des Kernels, um nur bis zu -512~GB oder mehr zu verwenden. -Es ist jederzeit möglich, die Standardeinstellung durch Angabe des Boot-Parameters -\texttt{xen\_512gb\_limit} zu ändern. - -\paragraph{Xen PVHVM guest support}$~$\\ -CONFIG\_XEN\_PVHVM\_GUEST [=y] \textbf{[Y]}\\ -Der Betrieb als Xen PVHVM-Gast wird unterstützt. - -\paragraph{Enable Xen debug and tuning parameters in debugfs}$~$\\ -CONFIG\_XEN\_DEBUG\_FS [=n] \textbf{[N]}\\ -Der Betrieb als Xen PV-Gast wird unterstützt. - -\paragraph{Xen PVH guest support}$~$\\ -CONFIG\_XEN\_PVH [=y] \textbf{[Y]}\\ -Der Betrieb als Xen PVH-Gast wird unterstützt. - -\subsubsection{Xen Dom0 support} -CONFIG\_XEN\_DOM0 [=y] \textbf{[Y]}\\ -Der Betrieb als Xen Dom0-Gast wird unterstützt. - -\subsubsection{Always use safe MSR accesses in PV guests} -CONFIG\_XEN\_PV\_MSR\_SAFE [=y] \textbf{[Y]}\\ -Verwenden Sie sichere (nicht fehlerhafte) MSR-Zugriffsfunktionen, auch wenn der MSR-Zugriff -ohnehin nicht fehlerhaft sein sollte. Der Standardwert kann mit dem Boot-Parameter -\texttt{xen\_msr\_safe} geändert werden. - -\subsubsection{KVM Guest support (including kvmclock)} -CONFIG\_KVM\_GUEST [=y] \textbf{[Y]}\\ -Diese Option ermöglicht verschiedene Optimierungen für die Ausführung unter dem KVM-Hypervisor. -Sie beinhaltet eine paravirtualisierte Uhr, so dass der Host dem Gast eine Zeitinfrastruktur wie -die Tageszeit und die Systemzeit zur Verfügung stellt, anstatt sich auf eine PIT-Emulation -(oder wahrscheinlich eine andere) durch das zugrunde liegende Gerätemodell zu verlassen. - -\subsubsection{Disable host haltpoll when loading haltpoll driver} -CONFIG\_ARCH\_CPUIDLE\_HALTPOLL [=y] \textbf{[Y]}\\ -(Haltpoll des Hosts beim Laden des Haltpoll-Treibers deaktivieren)\\ -Wenn Sie unter KVM virtualisieren, deaktiviert den haltpoll des Hosts. - -\subsubsection{Support for running PVH guests} -CONFIG\_PVH [=y] \textbf{[Y]}\\ -Diese Option aktiviert den PVH-Einstiegspunkt für virtuelle Gastmaschinen, -wie in der x86/HVM Direct Boot ABI angegeben. - -\subsubsection{Paravirtual steal time accounting} -CONFIG\_PARAVIRT\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\ -Wählen Sie diese Option aus, um die Berechnung der Zeit für das Stehlen von Aufgaben mit feiner -Granularität zu aktivieren. Die Zeit, die für die Ausführung anderer Aufgaben parallel zur aktuellen -vCPU aufgewendet wird, ist von der vCPU-Leistung abgezogen. Um dies zu berücksichtigen, -kann es zu geringen Leistungseinbußen kommen.\\ -Im Zweifelsfall geben Sie hier N an. - -\subsubsection{Jailhouse non-root cell support} -CONFIG\_JAILHOUSE\_GUEST [=y] \textbf{[Y]}\\ -Diese Option ermöglicht es, Linux als Gast in einer Jailhouse-Nicht-Root-Zelle auszuführen. -Sie können diese Option deaktiviert lassen, wenn Sie Jailhouse nur starten und Linux anschließend -in der Root-Zelle ausführen möchten. - -\subsubsection{ACRN Guest support} -CONFIG\_ACRN\_GUEST [=y] \textbf{[Y]}\\ -Diese Option ermöglicht die Ausführung von Linux als Gast im ACRN-Hypervisor. -ACRN ist ein flexibler, leichtgewichtiger Referenz-Open-Source-Hypervisor, der mit Blick auf Echtzeit -und Sicherheitskritik entwickelt wurde. Er wurde für eingebettete IOT mit kleinem Platzbedarf und -Echtzeitfunktionen entwickelt. Weitere Einzelheiten finden Sie unter \url{https://projectacrn.org/}. - -\subsubsection{Intel TDX (Trust Domain Extensions) - Guest Support} -CONFIG\_INTEL\_TDX\_GUEST [=y] \textbf{[Y]}\\ -Unterstützung der Ausführung als Gast unter Intel TDX.\\ -Ohne diese Unterstützung kann der Gastkernel nicht booten oder unter TDX laufen. TDX umfasst -Speicherverschlüsselungs- und Integritätsfunktionen, die die Vertraulichkeit und Integrität des -Gastspeicherinhalts und des CPU-Status schützen. TDX-Gäste sind vor einigen Angriffen durch den -VMM geschützt. - -\subsection{Processor family (Generic-x86-64) \texorpdfstring{$\rightarrow$}{->}} -Dies ist der Prozessortyp Ihrer CPU. Diese Information wird für Optimierungszwecke verwendet. -Um einen Kernel zu kompilieren, der auf allen unterstützten x86-CPU-Typen laufen kann (wenn auch -nicht optimal schnell), können Sie hier \glqq 486\grqq{} angeben. Beachten Sie, dass der 386er -nicht mehr unterstützt wird, dies schließt AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, -UMC 486SX-S und den NexGen Nx586 ein. Der Kernel läuft nicht notwendigerweise auf älteren -Architekturen als der von Ihnen gewählten, z.~B. läuft ein Pentium-optimierter Kernel auf einem PPro, -aber nicht unbedingt auf einem i486. - -Hier sind die empfohlenen Einstellungen für höchste Geschwindigkeit: -\begin{itemize} - \item \texttt{486} für den AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 oder SL/SLC/SLC2/SLC3/SX/SX2 und UMC U5D oder U5S. - \item \texttt{586} für generische Pentium-CPUs, denen das TSC-Register (Zeitstempelzähler) fehlt. - \item \texttt{Pentium-Classic} für den Intel Pentium. - \item \texttt{Pentium-MMX} für den Intel Pentium MMX. - \item \texttt{Pentium-Pro} für den Intel Pentium Pro. - \item \texttt{Pentium-II} für den Intel Pentium II oder den Pre-Coppermine Celeron. - \item \texttt{Pentium-III} für den Intel Pentium III oder Coppermine Celeron. - \item \texttt{Pentium-4} für den Intel Pentium 4 oder den P4-basierten Celeron. - \item \texttt{K6} für den AMD K6, K6-II und K6-III (auch bekannt als K6-3D). - \item \texttt{Athlon} für die AMD K7-Familie (Athlon/Duron/Thunderbird). - \item \texttt{Opteron/Athlon64/Hammer/K8} für alle K8 und neuere AMD-CPUs. - \item \texttt{Crusoe} für die Transmeta Crusoe-Serie. - \item \texttt{Efficeon} für die Transmeta Efficeon-Reihe. - \item \texttt{Winchip-C6} für den ursprünglichen IDT-Winchip. - \item \texttt{Winchip-2} für IDT-Winchips mit 3dNow! Fähigkeiten. - \item \texttt{AMD Elan} für die 32-Bit AMD Elan Embedded CPU. - \item \texttt{GeodeGX1} für Geode GX1 (Cyrix MediaGX). - \item \texttt{Geode GX/LX} für AMD Geode GX und LX Prozessoren. - \item \texttt{CyrixIII/VIA C3} für VIA Cyrix III oder VIA C3. - \item \texttt{VIA C3-2} für VIA C3-2 "Nehemiah" (Modell 9 und höher). - \item \texttt{VIA C7} für VIA C7. - \item \texttt{Intel P4} für die Pentium 4/Netburst-Mikroarchitektur. - \item \texttt{Core 2/newer Xeon} für alle Core2 und neueren Intel-CPUs. - \item \texttt{Intel Atom} für die CPUs mit Atom-Mikroarchitektur. - \item \texttt{Generic-x86-64} für einen Kernel, der auf jeder x86-64-CPU läuft. -\end{itemize} -Weitere Details finden Sie im Hilfetext der jeweiligen Option. Wenn Sie nicht wissen, -was Sie tun sollen, wählen Sie \texttt{486}.\\[1em] -Derzeit (Kernelversion 6.6.x) können Sie nur aus fünf auswählen: - -\subsubsection{Opteron/Athlon64/Hammer/K8} -CONFIG\_MK8 [=n] \textbf{[N]}\\ -Wählen Sie diese Option für einen Prozessor der AMD Opteron- oder Athlon64 Hammer"=Fa\-mi\-lie. -Er\-mög\-licht die Verwendung einiger erweiterter Anweisungen und übergibt entsprechende -Optimierungsflags an den GCC. - -\subsubsection{Intel P4 / older Netburst based Xeon} -CONFIG\_MPSC [=n] \textbf{[N]}\\ -Optimiert für Intel Pentium 4, Pentium D und ältere Nocona/Dempsey Xeon CPUs mit Intel 64bit, -die mit x86-64 kompatibel sind. Beachten Sie, dass die neuesten Xeons (Xeon 51xx und 53xx) nicht -auf dem Netburst-Kern basieren und diese Option nicht verwenden sollten.\\ -Sie können sie anhand des Feldes cpu family in /proc/cpuinfo unterscheiden. -Familie 15 ist ein älterer Xeon, Familie 6 ein neuerer. - -\subsubsection{Intel P4 / older Netburst based Xeon} -CONFIG\_MCORE2 [=n] \textbf{[Y]}\\ -Wählen Sie dies für Intel Core 2 und neuere Core 2 Xeons (Xeon 51xx und 53xx) CPUs.\\ -Sie können neuere von älteren Xeons anhand der CPU-Familie in /proc/cpuinfo unterscheiden. -Neuere haben 6 und ältere 15 (kein Tippfehler). - -\subsubsection{Intel Atom} -CONFIG\_MATOM [=n] \textbf{[N]}\\ -Wählen Sie diese Option für die Intel Atom-Plattform. Intel Atom CPUs haben eine -In-Order-Pipelining-Architektur und können daher von entsprechend optimiertem Code profitieren. -Verwenden Sie einen aktuellen GCC mit spezieller Atom-Unterstützung, um die Vorteile dieser Option -voll ausschöpfen zu können. - -\subsubsection{Generic-x86-64} -CONFIG\_GENERIC\_CPU [=y] \textbf{[N]}\\ -Allgemeine x86-64-CPU. Läuft gleich gut auf allen x86-64-CPUs. - -\subsection{Old AMD GART IOMMU support} -CONFIG\_GART\_IOMMU [=n] \textbf{[N]}\\ -Bietet einen Treiber für ältere AMD Athlon64/Opteron/Turion/Sempron GART basierte Hardware -\mbox{IOMMUs} an. -Der GART unterstützt vollen DMA-Zugriff für Geräte mit 32-Bit-Zugriffsbeschränkungen auf Systemen -mit mehr als 3~GB. Dies wird normalerweise für USB, Sound, viele IDE/SATA-Chipsätze und einige andere -Geräte benötigt. Neuere Systeme haben in der Regel eine moderne AMD IOMMU, die über die -Konfigurationsoption CONFIG\_AMD\_IOMMU=y unterstützt wird. In normalen Konfigurationen ist dieser -Treiber nur aktiv, wenn er benötigt wird: -Es sind mehr als 3~GB Arbeitsspeicher vorhanden und das System enthält ein auf 32~Bit -begrenztes Gerät.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Enable Maximum number of SMP Processors and NUMA Nodes} -CONFIG\_MAXSMP [=n] \textbf{[N]}\\ -Aktivieren der maximalen Anzahl von CPUs- und NUMA-Knoten für diese Architektur.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Maximum number of CPUs} -CONFIG\_NR\_CPUS [=320] \textbf{[8]}\\ -Hier können Sie die maximale Anzahl von CPUs angeben, die dieser Kernel unterstützen soll. -Wenn CPUMASK\_OFFSTACK aktiviert ist, ist der maximal unterstützte Wert 8192, andernfalls -ist der maximale Wert 512. Der Mindestwert, der Sinn macht, ist 2. - -Dies dient lediglich dazu, Speicher zu sparen: jede unterstützte CPU fügt dem Kernel-Image -etwa 8~kB hinzu. - -\subsection{Cluster scheduler support} -CONFIG\_SCHED\_CLUSTER [=y] \textbf{[N]}\\ -Die Unterstützung des Cluster-Schedulers verbessert die Entscheidungsfindung des CPU-Schedulers -beim Umgang mit Maschinen, die Cluster von CPUs haben. Mit Cluster sind in der Regel mehrere CPUs -gemeint, die eng beieinander liegen und sich Mid-Level-Caches, Last-Level-Cache-Tags oder interne -Busse teilen. - -\subsection{Multi-core scheduler support} -CONFIG\_SCHED\_MC [=y] \textbf{[Y]}\\ -Die Unterstützung des Multi-Core-Schedulers verbessert die Entscheidungsfindung des CPU-Schedulers -beim Umgang mit Multi-Core-CPU-Chips auf Kosten eines leicht erhöhten Overheads an einigen Stellen.\\ -Wenn Sie unsicher sind, geben Sie hier N an. - -\subsubsection{CPU core priorities scheduler support} -CONFIG\_SCHED\_MC\_PRIO [=y] \textbf{[Y]}\\ -Bei CPUs mit Intel Turbo-Boost-Max-Technik 3.0 wird die Reihenfolge der Kerne bei der Herstellung -festgelegt, so dass bestimmte Kerne höhere Turbofrequenzen erreichen können -(bei Single-Thread-Arbeitslasten) als andere. Durch die Aktivierung dieser Kernel-Funktion wird -der Scheduler über die TBM3- (auch ITMT-) Prioritätsreihenfolge der CPU-Kerne informiert und passt -die CPU-Auswahllogik des Schedulers entsprechend an, so dass eine höhere Gesamtsystemleistung -erzielt werden kann. Diese Funktion hat keine Auswirkungen auf CPUs ohne diese Funktion.\\ -Wenn Sie unsicher sind, geben Sie hier Y an. - -\subsection{Reroute for broken boot IRQs} -CONFIG\_X86\_REROUTE\_FOR\_BROKEN\_BOOT\_IRQS [=y] \textbf{[Y]}\\ -Diese Option ermöglicht eine Umgehung, die eine Quelle für unerwünschte Unterbrechungen behebt. -Dies wird empfohlen, wenn die Thread-Interrupt-Behandlung auf Systemen verwendet wird, bei denen -die Erzeugung von überflüssigen \glqq Boot-Interrupts\grqq{} nicht deaktiviert werden kann. -Einige Chipsätze erzeugen einen Legacy-INTx-\glqq Boot-IRQ\grqq{}, wenn der IRQ-Eintrag im -IO-APIC des Chipsatzes maskiert ist (wie es z.~B. der RT-Kernel während der Interruptbehandlung -tut). Bei Chipsätzen, bei denen diese Boot-IRQ-Erzeugung nicht deaktiviert werden kann, wird -durch diese Abhilfe die ursprüngliche IRQ-Leitung maskiert, so dass nur der entsprechende -\glqq Boot-IRQ\grqq{} an die CPUs geliefert wird. Die Problemumgehung weist den Kernel außerdem -an, den IRQ-Handler auf der Boot-IRQ-Leitung einzurichten. Auf diese Weise wird nur ein Interrupt -an den Kernel geliefert. Andernfalls kann der zweite Interrupt den Kernel dazu veranlassen, -(lebenswichtige) Interrupt-Leitungen herunterzufahren. Betrifft nur -\glqq defekte\grqq{} Chipsätze. Die gemeinsame Nutzung von Interrupts kann auf diesen Systemen -erhöht werden. - -\subsection{Machine Check / overheating reporting} -CONFIG\_X86\_MCE [=y] \textbf{[Y]}\\ -(Maschinenprüfung / Überhitzungsmeldung) -Durch die Unterstützung von Machine Check kann der Prozessor den Kernel benachrichtigen, -wenn er ein Problem feststellt (z.~B. Überhitzung, Datenbeschädigung). Welche Maßnahmen der -Kernel ergreift, hängt von der Schwere des Problems ab und reicht von Warnmeldungen bis -zum Anhalten des Rechners. - -\subsubsection{Support for deprecated /dev/mcelog character device} -CONFIG\_X86\_MCELOG\_LEGACY [=n] \textbf{[N]}\\ -Aktivierung der Unterstützung für /dev/mcelog, die vom alten mcelog-Benutzerraum-Logging-Daemon -(mcelog userspace logging daemon) benötigt wird. Erwägen Sie den Umstieg auf die neue -Generation des rasdaemon. - -\subsubsection{Intel MCE features} -CONFIG\_X86\_MCE\_INTEL [=y] \textbf{[Y]}\\ -Zusätzliche Unterstützung für Intel-spezifische MCE-Funktionen wie den -Temperaturmonitor (thermal monitor). - -\subsubsection{AMD MCE features} -CONFIG\_X86\_MCE\_AMD [=y] \textbf{[N]}\\ -Zusätzliche Unterstützung für AMD-spezifische MCE-Funktionen wie den -DRAM-Fehlerschwellenwert (DRAM Error Threshold). - -\subsection{Machine check injector support} -CONFIG\_X86\_MCE\_INJECT [=m] \textbf{[M]}\\ -Unterstützung bei der Einspeisung von Maschinenprüfungen zu Testzwecken. Wenn Sie nicht wissen, -was eine Maschinenprüfung ist und Sie keine Kernel-Qualitätssicherung durchführen, können Sie -mit Sicherheit N sagen, also nein. - -\subsection{Performance monitoring \texorpdfstring{$\rightarrow$}{->}} -Leistungsüberwachung - -\subsubsection{Intel uncore performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_UNCORE [=m] \textbf{[M]}\\ -Unterstützung für Intel-Uncore-Leistungsereignisse. Diese sind auf NehalemEX -und moderneren Prozessoren verfügbar. - -\subsubsection{Intel/AMD rapl performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_RAPL [=m] \textbf{[M]}\\ -Unterstützung für Intel- und AMD-RAPL-Leistungsereignisse zur -Leistungsüberwachung auf modernen Prozessoren. - -\subsubsection{Intel cstate performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_CSTATE [=m] \textbf{[M]}\\ -Einbeziehung der Unterstützung für Intel cstate performance events für die -Leistungsüberwachung auf modernen Prozessoren. - -\subsubsection{AMD Processor Power Reporting Mechanism} -CONFIG\_PERF\_EVENTS\_AMD\_POWER [=m] \textbf{[M]}\\ -Unterstützung von Stromversorgungsberichten für AMD-Prozessoren.\\ -Derzeit wird die Schnitt\-stel\-le X86\_FEATURE\_ACC\_POWER -(CPUID Fn8000\_0007\_EDX[12]) genutzt, -um den durchschnittlichen Stromverbrauch von Prozessoren der Familie 15h zu -berechnen. - -\subsubsection{AMD Uncore performance events} -CONFIG\_PERF\_EVENTS\_AMD\_UNCORE [=m] \textbf{[M]}\\ -Unterstützung für AMD-Uncore-Leistungsereignisse für die Verwendung mit z.~B.\\ -\texttt{perf stat -e amd\_l3/.../,amd\_df/.../}.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{amd-uncore} genannt. - -\subsubsection{AMD Zen3 Branch Sampling support} -CONFIG\_PERF\_EVENTS\_AMD\_BRS [=y] \textbf{[Y]}\\ -Aktivieren Sie die AMD Zen3 Branch Sampling-Unterstützung (BRS), die bis zu 16 aufeinanderfolgende -Verzweigungen in Registern erfasst. - -\subsubsection{IOPERM and IOPL Emulation} -CONFIG\_X86\_IOPL\_IOPERM [=y] \textbf{[Y]}\\ -Dies ermöglicht die ioperm()- und iopl()-Systemaufrufe, die für Legacy-Anwendungen erforderlich sind. -Bei der Legacy-IOPL-Unterstützung handelt es sich um einen weitreichenden Mechanismus, der es dem Userspace -ermöglicht, neben dem Zugriff auf alle 65536 E/A-Ports auch Interrupts zu deaktivieren. Um diesen Zugriff -zu erhalten, benötigt der Aufrufer CAP\_SYS\_RAWIO-Fähigkeiten und die Erlaubnis von potenziell aktiven -Sicherheitsmodulen. Die Emulation schränkt die Funktionalität des Syscalls auf den Zugriff auf alle E/A-Ports -ein, verhindert aber die Möglichkeit, Interrupts aus dem Userspace zu deaktivieren, was bei Verwendung des -Hardware-IOPL-Mechanismus möglich wäre. - -\subsubsection{Late microcode loading (DANGEROUS)} -CONFIG\_MICROCODE\_LATE\_LOADING [=n] \textbf{[N]}\\ -Das späte Laden von Mikrocode, wenn das System bereits läuft und Befehle ausführt, ist eine heikle -Angelegenheit und sollte nach Möglichkeit vermieden werden. Allein die Abfolge der Synchronisierung -aller Kerne und SMT-Threads ist ein zerbrechlicher Tanz, der nicht garantiert, dass die Kerne nach -dem Laden nicht softlocking werden. Daher sollten Sie dies auf eigenes Risiko tun. Das späte Laden -färbt auch den Kernel. - -\subsubsection{/dev/cpu/*/msr - Model-specific register support} -CONFIG\_X86\_MSR [=y] \textbf{[Y]}\\ -Dieses Gerät ermöglicht privilegierten Prozessen den Zugriff auf die modellspezifischen x86-Register (MSRs).\\ -Es ist ein Zeichengerät mit Major 202 und Minors 0 bis 31 für -\texttt{/dev/cpu/0/msr} bis \texttt{/dev/cpu/31/msr}. -MSR-Zugriffe sind bei Multiprozessorsystemen an eine bestimmte CPU gerichtet. - -\subsubsection{/dev/cpu/*/cpuid - CPU information support} -CONFIG\_X86\_CPUID [=y] \textbf{[Y]}\\ -Dieses Gerät ermöglicht Prozessen den Zugriff auf den x86 CPUID-Befehl, der auf einem bestimmten Prozessor -ausgeführt werden soll. Es handelt sich um ein Zeichengerät mit Major 203 und Minors 0 bis 31 für -\texttt{/dev/cpu/0/cpuid} bis \texttt{/dev/cpu/31/cpuid}. - -\subsubsection{Enable 5-level page tables support} -CONFIG\_X86\_5LEVEL [=y] \textbf{[Y]}\\ -5-Level-Paging ermöglicht den Zugriff auf einen größeren Adressraum: -bis zu 128~PiB virtueller Adressraum und 4~PiB physikalischer Adressraum. Es wird von zukünftigen Intel-CPUs -unterstützt werden. Ein Kernel mit aktivierter Option kann auf Rechnern gebootet werden, die 4- oder 5-Level-Paging -unterstützen. Siehe Documentation/arch/x86/x86\_64/5level-paging.rst für weitere Informationen.\\ -Sagen Sie N, wenn Sie unsicher sind. - -\subsubsection{Enable statistic for Change Page Attribute} -CONFIG\_X86\_CPA\_STATISTICS [=y] \textbf{[Y]}\\ -Statistiken über den Mechanismus zum Ändern von Seitenattributen offenlegen, der dabei hilft, -die Wirksamkeit der Erhaltung großer und umfangreicher Seitenzuordnungen zu bestimmen, -wenn Zuordnungsschutzmaßnahmen geändert werden. - -\subsubsection{AMD Secure Memory Encryption (SME) support} -CONFIG\_AMD\_MEM\_ENCRYPT [=y] \textbf{[N]}\\ -Sagen Sie Ja, um die Unterstützung für die Verschlüsselung des Systemspeichers zu aktivieren. -Dies erfordert einen AMD-Prozessor, der Secure Memory Encryption (SME) unterstützt. - -\paragraph{Activate AMD Secure Memory Encryption (SME) by default}$~$\\ -CONFIG\_AMD\_MEM\_ENCRYPT\_ACTIVE\_BY\_DEFAULT [=n] \textbf{[N]}\\ -Sagen Sie Ja, damit der Systemspeicher standardmäßig verschlüsselt wird, wenn er auf einem -AMD"=Pro\-zes\-sor läuft, der Secure Memory Encryption (SME) unterstützt. -Wenn Sie Y wählen, kann die Verschlüsselung des Systemspeichers mit der Befehlszeilenoption -\texttt{mem\_encrypt=off} deaktiviert werden. Ist der Wert auf N gesetzt, kann die Verschlüsselung -des Systemspeichers mit der Befehlszeilenoption \texttt{mem\_encrypt=on} aktiviert werden. - -\subsubsection{NUMA Memory Allocation and Scheduler Support} -CONFIG\_NUMA [=y] \textbf{[Y]}\\ -Aktivieren Sie die NUMA-Unterstützung (Non-Uniform Memory Access). Der Kernel wird versuchen, den -von einer CPU verwendeten Speicher dem lokalen Speicher-Controller der CPU zuzuweisen und dem Kernel -mehr Kenntnis über NUMA zu geben.\\ -Für 64-Bit wird dies empfohlen, wenn das System Intel Core i7 (oder höher), -AMD Opteron oder EM64T NUMA ist.\\ -Für 32-Bit ist dies nur erforderlich, wenn Sie einen 32-Bit-Kernel auf einer 64-Bit-NUMA-Plattform booten. -Andernfalls sollten Sie N angeben. - -\paragraph{Old style AMD Opteron NUMA detection}$~$\\ -CONFIG\_AMD\_NUMA [=y] \textbf{[N]}\\ -Aktivieren Sie die Erkennung der AMD NUMA-Knoten-Topologie. Wenn Sie ein AMD-Multi\-pro\-zes\-sor\-system haben, -sollten Sie hier Y angeben. Dies verwendet eine alte Methode, um die NUMA-Konfiguration direkt von der -eingebauten Northbridge des Opteron zu lesen.\\ -Es wird empfohlen, stattdessen -X86\_64\_ACPI\_NUMA zu verwenden, -das auch Priorität hat, wenn beide einkompiliert sind. - -\paragraph{ACPI NUMA detection}$~$\\ -CONFIG\_X86\_64\_ACOU\_NUMA [=y] \textbf{[Y]}\\ -Aktivieren Sie die auf ACPI SRAT basierende Knoten-Topologie-Erkennung. - -\paragraph{NUMA emulation}$~$\\ -CONFIG\_NUMA\_EMU [=n] \textbf{[N]}\\ -Aktivieren Sie die NUMA-Emulation. Eine flache Maschine wird in virtuelle Knoten aufgeteilt, wenn sie mit -\texttt{numa=fake=N} gebootet wird, wobei N die Anzahl der Knoten ist. -Dies ist nur für die Fehlersuche nützlich. - -\paragraph{Maximum NUMA Nodes (as a power of 2)}$~$\\ -CONFIG\_NODES\_SHIFT [=5] \textbf{[5]}\\ -(Maximale NUMA-Knoten (als eine Potenz von 2))\\ -Geben Sie die maximale Anzahl der auf dem Zielsystem verfügbaren NUMA-Knoten an. -Erhöht den reservierten Speicherplatz für verschiedene Tabellen. - -\subsubsection{Enable sysfs memory/probe interface} -CONFIG\_ARCH\_MEMORY\_PROBE [=n] \textbf{[N]}\\ -Diese Option aktiviert eine sysfs-Speicher/Probe-Schnittstelle für Tests.\\ -Siehe Documentation/admin-guide/mm/memory-hotplug.rst für weitere Informationen. -Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N. - -\subsubsection{Support non-standard NVDIMMs and ADR protected memory} -CONFIG\_X86\_PMEM\_LEGACY [=m] \textbf{[M]}\\ -Behandeln Sie Speicher, der mit dem nicht standardmäßigen e820-Typ von 12 markiert ist, wie er vom -Intel Sandy Bridge-EP Referenz-BIOS verwendet wird, als geschützten Speicher. -Der Kernel bietet diese Regionen dem \texttt{pmem}-Treiber an, so dass sie für persistenten Speicher -verwendet werden können.\\ -Sagen Sie Y, wenn Sie unsicher sind. - -\subsubsection{Check for low memory corruption} -CONFIG\_X86\_CHECK\_BIOS\_CORRUPTION [=y] \textbf{[Y]}\\ -Regelmäßige Überprüfung auf Speicherbeschädigung im niedrigen Speicher, die vermutlich durch das BIOS -verursacht wird. Auch wenn dies in der Konfiguration aktiviert ist, zur Laufzeit ist es deaktiviert. -Aktivieren Sie es, indem Sie \texttt{memory\_corruption\_check=1} in der Kernel-Befehlszeile eingeben. -Standardmäßig werden die unteren 64~k des Speichers alle 60 Sekunden überprüft; siehe die Parameter -\texttt{memory\_corruption\_check\_size} und \texttt{memory\_corruption\_check\_period} in -Documentation/admin-guide/kernel-parameters.rst, um dies anzupassen. -Wenn diese Option mit den Standardparametern aktiviert ist, hat sie so gut wie keinen Overhead, da sie -eine relativ kleine Menge an Speicher reserviert und diesen nur selten durchsucht. Sie erkennt Korruption -und verhindert, dass sie das laufende System beeinträchtigt. Sie ist jedoch als Diagnosewerkzeug gedacht; -wenn eine wiederholte BIOS-verursachte Beschädigung stets denselben Speicher betrifft, können Sie -\texttt{memmap=} verwenden, um zu verhindern, dass der Kernel diesen Speicher verwendet.\\[1em] -\noindent\fbox{% - \parbox{445\unitlength}{Hinweis: Kann ausgeschaltet werden, wenn im \texttt{journalctl} niemals - \glqq corrupted low memory\grqq{} erscheint.} -} - -\paragraph{Set the default setting of memory\_corruption\_check}$~$\\ -CONFIG\_X86\_BOOTPARAM\_MEMORY\_CORRUPTION\_CHECK [=y] \textbf{[Y]}\\ -Legt fest, ob der Standardstatus von \texttt{memory\_corruption\_check} ein- oder ausgeschaltet ist. - -\subsubsection{MTRR (Memory Type Range Register) support} -CONFIG\_MTRR [=y] \textbf{[Y]}\\ -Bei Prozessoren der Intel P6-Familie (Pentium Pro, Pentium II und später) können die Memory Type Range Register (MTRRs) -verwendet werden, um den Zugriff des Prozessors auf Speicherbereiche zu steuern. Dies ist besonders nützlich, wenn Sie -eine Videokarte (VGA) an einem PCI- oder AGP-Bus haben. Durch die Aktivierung von Write-Combining können -Bus-Schreibübertragungen zu einer größeren Übertragung kombiniert werden, bevor sie über den PCI/AGP-Bus geleitet -werden. Dies kann die Leistung von Bildschreiboperationen um das 2,5-fache oder mehr erhöhen. -Wenn Sie hier Y angeben, wird eine /proc/mtrr-Datei erstellt, die zur Manipulation der MTRRs Ihres Prozessors verwendet -werden kann. Normalerweise sollte der X-Server dies verwenden.\\ -Dieser Code hat eine recht generische Schnittstelle, so dass ähnliche Steuerregister auf anderen Prozessoren ebenfalls -leicht unterstützt werden können:\\ -Die Prozessoren Cyrix 6x86, 6x86MX und M II verfügen über Address Range Registers (ARRs), die eine ähnliche -Funktionalität wie MTRRs bieten. In diesen Fällen werden die ARRs zur Emulation der MTRRs verwendet. -Die AMD-Prozessoren K6-2 (Stepping 8 und höher) und K6-3 haben zwei MTRRs. Der Centaur C6 (WinChip) hat 8 MCRs, die -Schreibkombinationen ermöglichen. Alle diese Prozessoren werden von diesem Code unterstützt und es ist sinnvoll, hier -Y anzugeben, wenn Sie einen dieser Prozessoren haben.\\ -Die Angabe von Y an dieser Stelle behebt auch ein Problem mit fehlerhaften SMP-BIOSen, die die MTRRs nur für die -Boot-CPU und nicht für die sekundären CPUs setzen. Das kann zu allen möglichen Problemen führen, also ist es gut, -hier Y zu sagen.\\ -Sie können sicher Y sagen, auch wenn Ihr Rechner keine MTRRs hat, Sie werden nur etwa 9 KB zu Ihrem Kernel hinzufügen. -Siehe $<$file:Documentation/arch/x86/mtrr.rst$>$ für weitere Informationen. - -\paragraph{MTRR cleanup support}$~$\\ -CONFIG\_MTRR\_SANITIZER [=y] \textbf{[Y]}\\ -Umwandlung des MTRR-Layouts von kontinuierlich in diskret, damit X-Treiber Rückschreibeinträge hinzufügen können. -Kann mit \texttt{disable\_mtrr\_cleanup} in der Kernel-Kommandozeile deaktiviert werden. -Die größte MTRR-Eintragsgröße für einen kontinuierlichen Block kann mit \texttt{mtrr\_chunk\_size} festgelegt werden.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{MTRR cleanup enable value (0-1)}$~$\\ -CONFIG\_MTRR\_SANITIZER [=1] \textbf{[1]}\\ -Aktivieren Sie den \glqq mtrr cleanup\grqq{}-Standardwert - -\paragraph{MTRR cleanup spare reg num (0-7)}$~$\\ -CONFIG\_MTRR\_SANITIZER\_SPARE\_REG\_NR\_DEFAULT [=0] \textbf{[0]}\\ -MTRR cleanup spare entries Defaulteintrag, dies kann über -\texttt{mtrr\_spare\_reg\_nr=N} auf der Kernel-Be\-fehls\-zei\-le geändert werden. - -\subsubsection{Indirect Branch Tracking} -CONFIG\_X86\_KERNEL\_IBT [=y] \textbf{[Y]}\\ -Bauen Sie den Kernel mit Unterstützung für Indirect Branch Tracking auf, eine Hardware-Unterstützung, die die Integrität -des Kontrollflusses an den Rändern schützt. Sie erzwingt, dass alle indirekten Aufrufe auf einer ENDBR-Anweisung landen -müssen, und der Compiler wird den Code mit ihnen instrumentieren, damit dies geschieht.\\ -Zusätzlich zur Erstellung des Kernels mit IBT werden alle Funktionen, die keine indirekten Aufrufziele sind, versiegelt, -um zu verhindern, dass sie jemals zu solchen werden.\\ -Dies erfordert LTO wie objtool-Läufe und verlangsamt den Bau. Es reduziert jedoch die Anzahl der ENDBR-Anweisungen im -Kernel-Image erheblich. - -\subsubsection{Memory Protection Keys} -CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ -Memory Protection Keys bietet einen Mechanismus zur Erzwingung seitenbasierter Schutzmaßnahmen, ohne dass die -Seitentabellen geändert werden müssen, wenn eine Anwendung ihre Schutzdomänen ändert. Einzelheiten siehe -Documentation/core-api/protection-keys.rst\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{TSX enable mode () \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ -Intels TSX-Funktion (Transactional Synchronization Extensions) ermöglicht die Optimierung von Sperrprotokollen durch -Lock Elision, was zu einer spürbaren Leistungssteigerung führen kann. -Andererseits hat sich gezeigt, dass TSX für Seitenkanalangriffe (z.~B. TAA) ausgenutzt werden kann, und es ist -wahrscheinlich, dass in Zukunft weitere Angriffe dieser Art entdeckt werden. -Daher ist TSX standardmäßig nicht aktiviert (aka \texttt{tsx=off}). Ein Administrator kann diese Entscheidung durch den -Befehlszeilenparameter \texttt{tsx=on} außer Kraft setzen. -Auch wenn TSX aktiviert ist, versucht der Kernel, die bestmögliche TAA-Abschwächung zu aktivieren, je nach dem für -den jeweiligen Rechner verfügbaren Mikrocode. -Mit dieser Option kann der Standard-Tsx-Modus zwischen \texttt{tsx=on}, \texttt{=off} und \texttt{=auto} -eingestellt werden. Siehe -Documentation/admin-guide/kernel-parameters.txt für weitere Details. -Sagen Sie off, wenn Sie sich nicht sicher sind, auto, wenn TSX in Gebrauch ist, aber auf sicheren Plattformen -verwendet werden sollte, oder on, wenn TSX in Gebrauch ist und der Sicherheitsaspekt von tsx nicht relevant ist. - -\paragraph{off}$~$\\ -CONFIG\_X86\_INTEL\_TSX\_MODE\_OFF [=n] \textbf{[N]}\\ -TSX ist, wenn möglich, deaktiviert -- entspricht dem Befehlszeilenparameter \texttt{tsx=off}. - -\paragraph{on}$~$\\ -CONFIG\_X86\_INTEL\_TSX\_MODE\_ON [=n] \textbf{[N]}\\ -TSX ist auf TSX-fähiger Hardware immer aktiviert -- gleichbedeutend -mit dem Befehlszeilenparameter \texttt{tsx=on} - -\paragraph{auto}$~$\\ -CONFIG\_X86\_INTEL\_TSX\_MODE\_AUTO [=y] \textbf{[Y]}\\ -TSX wird auf TSX-fähiger Hardware aktiviert, die als sicher gegen Seitenkanalangriffe gilt -- gleichbedeutend -mit dem Befehlszeilenparameter \texttt{tsx=auto}. - -\subsubsection{Software Guard eXtensions (SGX)} -CONFIG\_X86\_SGX [=y] \textbf{[Y]}\\ -Intel(R) Software Guard eXtensions (SGX) ist eine Reihe von CPU-Befehlen, die von Anwendungen verwendet werden -können, um private Code- und Datenbereiche, die so genannten Enklaven, zu reservieren. Auf den privaten Speicher -einer Enklave kann nur von Code zugegriffen werden, der innerhalb der Enklave läuft. Zugriffe von außerhalb der -Enklave, einschließlich anderer Enklaven, werden von der Hardware nicht zugelassen.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{X86 userspace shadow stack} -CONFIG\_X86\_USER\_SHADOW\_STACK [=y] \textbf{[Y]}\\ -Der Schattenstapelschutz ist eine Hardwarefunktion, die eine Beschädigung der Rücksprungadresse einer Funktion -erkennt. Dies hilft, ROP-Angriffe abzuschwächen. Anwendungen müssen aktiviert sein, um sie zu nutzen, und der -alte Userspace erhält den Schutz nicht "umsonst". CPUs, die Shadow Stacks unterstützen, wurden erstmals im -Jahr~2020 vorgestellt. Weitere Informationen finden Sie unter Documentation/arch/x86/shstk.rst.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{EFI runtime service support} -CONFIG\_EFI [=y] \textbf{[Y]}\\ -Dies ermöglicht es dem Kernel, verfügbare EFI-Laufzeitdienste (wie die EFI-Variablendienste) zu nutzen.\\ -Diese Option ist nur auf Systemen mit EFI-Firmware sinnvoll. Außerdem sollten Sie den neuesten ELILO-Lader -verwenden, der unter \url{http://elilo.sourceforge.net} verfügbar ist, um die Vorteile der -EFI-Laufzeitdienste zu nutzen. Aber auch mit dieser Option sollte der resultierende Kernel weiterhin auf -bestehenden Nicht-EFI-Plattformen booten. - -\paragraph{EFI stub support}$~$\\ -CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ -Mit dieser Kernel-Funktion kann ein bzImage direkt von der EFI-Firmware geladen werden, ohne dass ein -Bootloader erforderlich ist.\\ -Weitere Informationen finden Sie unter Documentation/admin-guide/efi-stub.rst. - -\subparagraph{EFI handover protocol (DEPRECATED)}$~$\\ -CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ -(EFI-Übergabeprotokoll (VERALTET))\\ -Wählen Sie dies, um Unterstützung für das veraltete EFI-Handover-Protokoll zu erhalten, das alternative -Einstiegspunkte in den EFI-Stub definiert. Dies ist eine Praxis, die keine Grundlage in der UEFI-Spezifikation -hat und ein Vorwissen seitens des Bootloaders über Linux/x86-spezifische Wege der Übergabe der Kommandozeile -und initrd erfordert, und wo im Speicher diese Assets geladen werden können.\\ -Im Zweifelsfall sagen Sie Y. Auch wenn die entsprechende Unterstützung im Upstream-GRUB oder anderen -Bootloadern nicht vorhanden ist, bauen die meisten Distros GRUB mit zahlreichen Downstream-Patches und können -sich daher auf das Handover-Protokoll verlassen. - -\subparagraph{EFI mixed-mode support}$~$\\ -CONFIG\_EFI\_MIXED [=y] \textbf{[Y]}\\ -Wenn Sie diese Funktion aktivieren, kann ein 64-Bit-Kernel auf einer 32-Bit-Firmware gebootet werden, -vorausgesetzt, Ihre CPU unterstützt den 64-Bit-Modus.\\ -Beachten Sie, dass es nicht möglich ist, einen Mixed-Mode-fähigen Kernel über den EFI-Boot-Stub zu -booten -- es muss ein Bootloader verwendet werden, der das EFI-Handover-Protokoll unterstützt.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Enable EFI fake memory map}$~$\\ -CONFIG\_EFI\_FAKE\_MEMMAP [=n] \textbf{[N]}\\ -Wenn Sie hier Y angeben, wird die Boot-Option \texttt{efi\_fake\_mem} aktiviert. -Durch Angabe dieses Parameters können Sie einem bestimmten Speicherbereich beliebige Attribute hinzufügen, -indem Sie die ursprüngliche (von der Firmware bereitgestellte) EFI-Memmap aktualisieren. -Dies ist nützlich für das Debugging von EFI-Memmap-bezogenen Funktionen, z.~B. Address Range Mirroring. - -\subsubsection{Timer frequency () \texorpdfstring{$\rightarrow$}{->}} -Ermöglicht die Konfiguration der Timer-Frequenz. Es ist üblich, den Timer-Interrupt mit 1000 Hz laufen -zu lassen, aber 100 Hz kann für Server und NUMA-Systeme vorteilhafter sein, die keine schnelle Reaktion -für die Benutzerinteraktion benötigen und bei denen es zu Buskonflikten und Cacheline-Bounches als Folge -von Timer-Interrupts kommen kann. Beachten Sie, dass der Timer-Interrupt in einer SMP-Umgebung auf jedem -Prozessor auftritt, was zu NR\_CPUS * HZ Anzahl der Timer-Interrupts pro Sekunde führt. - -\paragraph{100~Hz}$~$\\ -CONFIG\_HZ\_100 [=n] \textbf{[N]}\\ -100~Hz ist eine typische Wahl für Server, SMP- und NUMA-Systeme mit vielen Prozessoren, die eine -geringere Leistung aufweisen können, wenn zu viele Timer-Interrupts auftreten. -\paragraph{250~Hz}$~$\\ -CONFIG\_HZ\_250 [=n] \textbf{[N]}\\ -250~Hz ist ein guter Kompromiss, der eine gute Serverleistung ermöglicht und auch auf SMP- und -NUMA-Systemen eine gute interaktive Reaktionsfähigkeit zeigt. Wenn Sie NTSC-Video oder Multimedia -verwenden, wählen Sie stattdessen 300~Hz. -\paragraph{300~Hz}$~$\\ -CONFIG\_HZ\_300 [=y] \textbf{[Y]}\\ -300~Hz ist ein guter Kompromiss, der eine gute Serverleistung und gleichzeitig eine gute interaktive -Reaktionsfähigkeit selbst auf SMP- und NUMA-Systemen ermöglicht und sowohl bei PAL- als auch bei -NTSC-Bildraten für Video- und Multimedia-Arbeiten genau eingehalten wird. -\paragraph{1000~Hz}$~$\\ -CONFIG\_HZ\_1000 [=n] \textbf{[N]}\\ -1000~Hz ist die bevorzugte Wahl für Desktop-Systeme und andere Systeme, die schnelle interaktive -Reaktionen auf Ereignisse erfordern. - -\subsubsection{Physical address where the kernel is loaded} -CONFIG\_PHYSICAL\_START [=0x1000000] \textbf{[0x1000000]}\\ -Dies gibt die physikalische Adresse an, unter der der Kernel geladen wird. Wenn der Kernel nicht verschiebbar ist -(CONFIG\_RELOCATABLE=n), dekomprimiert sich bzImage an die oben genannte physikalische Adresse und wird von dort -aus gestartet. Andernfalls wird bzImage von der Adresse aus gestartet, an der es vom Bootloader geladen wurde, -und ignoriert die obige physikalische Adresse. In normalen kdump-Fällen muss diese Option nicht gesetzt/geändert -werden, da bzImage nun als vollständig relozierbares Image (CONFIG\_RELOCATABLE=y) kompiliert und zum Laden und -Ausführen von einer anderen Adresse verwendet werden kann. Diese Option ist vor allem für die Leute nützlich, -die kein bzImage für die Erfassung des Crash-Dumps verwenden wollen und stattdessen vmlinux einsetzen wollen. -vmlinux ist nicht relocatable, daher muss ein Kernel speziell kompiliert werden, um von einem bestimmten -Speicherbereich (normalerweise ein reservierter Bereich) zu laufen, und diese Option ist sehr nützlich. -Wenn Sie also bzImage zum Erfassen des Crash-Dumps verwenden, lassen Sie den Wert hier unverändert auf -0x1000000 und setzen Sie CONFIG\_RELOCATABLE=y.\\ -Andernfalls, wenn Sie vmlinux für die Aufzeichnung des Crash-Dumps verwenden wollen, ändern Sie diesen Wert -auf den Beginn des reservierten Bereichs. Mit anderen Worten, er kann auf der Grundlage des "X"-Wertes gesetzt -werden, wie er im "crashkernel=YM@XM"-Befehlszeilen-Boot-Parameter angegeben ist, der an den panic-ed-Kernel -übergeben wird. Weitere Details zu Crash Dumps finden Sie in Documentation/admin-guide/kdump/kdump.rst. -Die Verwendung von bzImage für die Aufzeichnung des Crash-Dumps wird empfohlen, da man nicht zwei Kernel -erstellen muss. Derselbe Kernel kann als Produktionskernel und als Erfassungskernel verwendet werden. Die obige -Option sollte verschwinden, nachdem die Unterstützung von relocatable bzImage eingeführt wurde. Sie ist aber noch -vorhanden, weil es Benutzer gibt, die weiterhin vmlinux für die Dump-Erfassung verwenden. Diese Option sollte im -Laufe der Zeit verschwinden. Ändern Sie diese Option nicht, wenn Sie nicht wissen, was Sie tun. - -\subsubsection{Build a relocatable kernel} -CONFIG\_RELOCATABLE [=y] \textbf{[Y]}\\ -Dadurch wird ein Kernel-Image erstellt, das die Informationen über den Standortwechsel beibehält, so dass es an -einem anderen Ort als den standardmäßigen 1~MB geladen werden kann. -Die Verschiebungen machen das Kernel-Binary etwa 10~\% größer, werden aber zur Laufzeit verworfen. -Eine Anwendung ist der kexec on panic-Fall, bei dem der Wiederherstellungs-Kernel an einer anderen -physikalischen Adresse liegen muss als der primäre Kernel. -Anmerkung: Wenn CONFIG\_RELOCATABLE=y ist, dann läuft der Kernel von der Adresse aus, an der er geladen wurde, -und von der zur Kompilierzeit physische Adresse (CONFIG\_PHYSICAL\_START) als Mindeststandort verwendet. - -\paragraph{Randomize the address of the kernel image (KASLR)}$~$\\ -CONFIG\_RANDOMIZE\_BASE [=y] \textbf{[Y]}\\ -Zur Unterstützung der Kernel Address Space Layout Randomization (KASLR) werden -die physische Adresse, an der das Kernel-Image dekomprimiert wird, und -die virtuelle Adresse, auf die das Kernel-Image abgebildet wird, -randomisiert. Dies ist ein Sicherheitsmerkmal, das Exploit-Versuche verhindert, -die auf der Kenntnis des Speicherorts von Kernel-Code-Interna beruhen. -Bei 64-Bit werden die physische und die virtuelle Adresse des Kernels getrennt randomisiert. -Die physische Adresse liegt irgendwo zwischen 16~MB und dem Anfang des physischen Speichers -(bis zu 64~TB). Die virtuelle Adresse wird von 16~MB bis zu 1~GB randomisiert -(9 Bits Entropie). -Beachten Sie, dass dadurch auch der für Kernel-Module verfügbare Speicherplatz -von 1,5~GB auf 1~GB reduziert wird. -Bei 32-Bit werden die physischen und virtuellen Adressen des Kernels zusammen -randomisiert. Sie werden von 16~MB bis zu 512~MB randomisiert (8 Bits Entropie).\\ -Die Entropie wird mit dem RDRAND-Befehl erzeugt, sofern er unterstützt wird. -Wenn RDTSC unterstützt wird, wird sein Wert ebenfalls in den Entropie-Pool -gemischt. Wenn weder RDRAND noch RDTSC unterstützt werden, wird die Entropie aus -dem i8254-Zeitgeber gelesen. Die nutzbare Entropie ist dadurch begrenzt, dass der -Kernel mit 2~GB-Adressierung aufgebaut ist und dass PHYSICAL\_ALIGN mindestens -2~MB betragen muss. -Infolgedessen sind theoretisch nur 10 Bits Entropie möglich, aber die -Implementierungen sind aufgrund des Speicherlayouts noch weiter eingeschränkt.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Alignment value to which kernel should be aligned} -CONFIG\_PHYSICAL\_ALIGN [=0x200000] \textbf{[0x200000]}\\ -Dieser Wert legt die Ausrichtungsbeschränkungen für die physikalische Adresse fest, von der der Kernel geladen und -ausgeführt wird. Der Kernel wird für eine Adresse kompiliert, die den obigen Ausrichtungsbeschränkungen entspricht. -Wenn der Bootloader den Kernel an einer nicht ausgerichteten Adresse lädt und CONFIG\_RELOCATABLE gesetzt ist, -verschiebt sich der Kernel an die nächstgelegene Adresse, die auf den obigen Wert ausgerichtet ist, und wird von -dort aus gestartet. -Wenn der Bootloader den Kernel an einer nicht ausgerichteten Adresse lädt und CONFIG\_RELOCATABLE nicht gesetzt ist, -ignoriert der Kernel die Ladeadresse zur Laufzeit und dekomprimiert sich an die Adresse, für die er kompiliert wurde, -und läuft von dort aus. Die Adresse, für die der Kernel kompiliert wurde, erfüllt bereits die oben genannten -Ausrichtungsbeschränkungen. Das Endergebnis ist also, dass der Kernel von einer physikalischen Adresse aus läuft, -die die oben genannten Ausrichtungsbeschränkungen erfüllt. -Bei 32-Bit muss dieser Wert ein Vielfaches von 0x2000 sein. Bei 64-Bit muss dieser Wert ein Vielfaches von 0x200000 sein.\\ -Ändern Sie dies nicht, wenn Sie nicht wissen, was Sie tun. - -\subsubsection{Randomize the kernel memory sections} -CONFIG\_RANDOMIZE\_MEMORY [=y] \textbf{[Y]}\\ -Randomisiert die virtuelle Basisadresse von Kernel-Speicherabschnitten (physische Speicherzuordnung, vmalloc \& vmemmap). -Dieses Sicherheitsmerkmal macht Exploits, die sich auf vorhersehbare Speicherplätze verlassen, weniger zuverlässig. Die Reihenfolge der -Zuweisungen bleibt unverändert. Entropie wird auf die gleiche Weise wie bei RANDOMIZE\_BASE erzeugt. Aktuelle Implementierung -in der optimalen Konfiguration haben im Durchschnitt 30.000 verschiedene mögliche virtuelle Adressen für jeden Speicherabschnitt.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Linear Address Masking support} -CONFIG\_ADDRESS\_MASKING [=y] \textbf{[Y]}\\ -Linear Address Masking (LAM) ändert die Prüfung, die auf lineare 64-Bit-Adressen angewandt wird, und ermöglicht der Software -die nicht übersetzten Adressbits für Metadaten zu verwenden.\\ -Diese Fähigkeit kann für die effiziente Implementierung von Adress-Sanitizern (ASAN) und für Optimierungen in JITs genutzt werden. - -\subsubsection{Disable the 32-bit vDSO (needed for glibc 2.3.3)} -CONFIG\_COMPAT\_VDSO [=n] \textbf{[N]}\\ -Bestimmte fehlerhafte Versionen der glibc stürzen ab, wenn sie mit einem 32-Bit vDSO konfrontiert werden, das nicht auf die in -der Segmenttabelle angegebene Adresse abgebildet ist. -Adresse zugeordnet ist, die in der Segmenttabelle angegeben ist.\\ -Der Fehler wurde eingeführt durch f866314b89d56845f55e6f365e18b31ec978ec3a und behoben durch\\ -3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a und 49ad572a70b8aeb91e57483a11dd1b77e31c4468.\\ -Glibc~2.3.3 ist die einzige veröffentlichte Version mit dem Fehler, aber OpenSUSE 9 enthält eine fehlerhafte -\glqq glibc 2.3.2\grqq{}. -Das Symptom des Fehlers ist, dass alles beim Start abstürzt und sagt:\\ -\texttt{dl\_main: Assertion \`~(void \*) ph-$>$p\_vaddr == \_rtld\_local.\_dl\_sysinfo\_dso}\\ -Wenn Sie hier Y sagen, wird der Standardwert der Bootoption vdso32 von 1 auf 0 geändert, wodurch die -32-Bit vDSO vollständig deaktiviert wird. Dies umgeht zwar den Glibc-Bug, beeinträchtigt aber die Leistung.\\ -Wenn Sie unsicher sind, sagen Sie N: Wenn Sie Ihren eigenen Kernel kompilieren, ist es unwahrscheinlich, -dass Sie eine fehlerhafte Version der glibc verwenden. - -\subsubsection{vsyscall table for legacy applications () \texorpdfstring{$\rightarrow$}{->}} -Legacy-Benutzercode, der nicht weiß, wie er den vDSO finden kann, erwartet, dass er drei Syscalls ausgeben kann, -indem er feste Adressen im Kernel-Bereich aufruft. -Da dieser Ort nicht mit ASLR randomisiert wird, kann er dazu verwendet werden, die Ausnutzung von Sicherheitslücken -zu unterstützen. -Diese Einstellung kann zur Boot-Zeit über den Kernel-Befehlszeilenparameter -\texttt{vsyscall=[emulate|xonly|none]} geändert werden.\\ -Der Emulationsmodus ist veraltet und kann nur noch über die Kernel-Befehlszeile aktiviert werden. -Auf einem System mit ausreichend aktueller glibc (2.14 oder neuer) und ohne statische Binärdateien können Sie -\glqq None\grqq{} ohne Leistungseinbußen verwenden um die Sicherheit zu verbessern.\\ -Wenn Sie unsicher sind, wählen Sie \glqq Nur Ausführung emulieren\glqq{}. - -\paragraph{Emulate execution only}$~$\\ -CONFIG\_LEGACY\_VSYSCALL\_XONLY [=y] \textbf{[Y]}\\ -Der Kernel fängt und emuliert Aufrufe in die feste vsyscall-Adresszuordnung und lässt keine Lesezugriffe zu. -Diese Konfiguration wird empfohlen, wenn der Userspace den Legacy-Vsyscall-Bereich verwenden könnte, aber keine -Unterstützung für die binäre Instrumentierung von Legacy-Code benötigt wird. Sie entschärft bestimmte Verwendungen -des vsyscall-Bereichs als Puffer zur Umgehung von ASLR. - -\paragraph{None}$~$\\ -CONFIG\_LEGACY\_VSYSCALL\_NONE [=n] \textbf{[N]}\\ -Es wird überhaupt keine vsyscall-Zu\-ordnung geben. Dies eliminiert jegliches Risiko einer ASLR-Um\-ge\-hung -aufgrund der festen vsyscall-Adressen-Zuordnung. Versuche, die vsyscalls zu verwenden, werden an dmesg gemeldet, -so dass entweder alte oder bösartige Userspace-Programme identifiziert werden können. - -\subsubsection{Built-in kernel command line} -CONFIG\_CMDLINE\_BOOL [=n] \textbf{[N]}\\ -Ermöglicht die Angabe von Boot-Argumenten für den Kernel zur Erstellungszeit. Auf einigen Systemen -(z.~B. eingebetteten [embedded]) ist es notwendig oder praktisch, einige oder alle Kernel-Boot-Argumente mit -dem Kernel selbst bereitzustellen (d.~h. sich nicht darauf zu verlassen, dass der Bootloader sie bereitstellt). -Um Kommandozeilenargumente in den Kernel zu kompilieren, setzen Sie diese Option auf Y und geben Sie dann -die Boot-Argumente in CONFIG\_CMDLINE ein. Bei Systemen mit voll funktionsfähigen Bootloadern -(d.~h. nicht eingebetteten) sollte diese Option auf N gesetzt bleiben. - -\subsubsection{Enforce strict size checking for sigaltstack} -CONFIG\_STRICT\_SIGALTSTACK\_SIZE [=n] \textbf{[N]}\\ -Aus historischen Gründen ist MINSIGSTKSZ eine Konstante, die mit der AVX512-Unterstützung bereits zu klein wurde. -Fügen Sie einen Mechanismus hinzu, um die strenge Überprüfung der Sigaltstack-Größe gegen die tatsächliche Größe -des FPU-Rahmens zu erzwingen. Diese Option aktiviert die Überprüfung standardmäßig. Sie kann auch über die -Kernel-Kommandozeilenoption \texttt{strict\_sas\_size} unabhängig von diesem Konfigurationsschalter gesteuert werden. -Das Aktivieren dieser Option könnte bestehende Anwendungen zerstören, die einen zu kleinen Sigaltstack zuweisen, -aber \glq funktionieren\grq{}, weil sie nie ein Signal geliefert bekommen.\\ -Sagen Sie N, wenn Sie diese Prüfung nicht wirklich erzwingen wollen. - -\subsubsection{Kernel Live Patching} -CONFIG\_LIVEPATCH [=n] \textbf{[N]}\\ -Geben Sie hier Y an, wenn Sie Kernel-Live-Patching unterstützen wollen. Diese Option hat keine Auswirkungen auf die -Laufzeit, bis ein Kernel-\glqq Patch\grqq{}-Modul die von dieser Option bereitgestellte Schnittstelle verwendet, -um einen Patch zu registrieren, was dazu führt, dass Aufrufe der gepatchten Funktionen auf den neuen Funktionscode -im Patch-Modul umgeleitet werden. - -\section{Mitigations for speculative execution vulnerabilities \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_SPECULATION\_MITIGATIONS [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, um Optionen zu aktivieren, die Abhilfemaßnahmen für Hardware-Schwachstellen durch spekulative -Ausführung ermöglichen. Wenn Sie N sagen, werden alle Abhilfemaßnahmen deaktiviert. Sie sollten wirklich wissen, -was Sie tun, um dies anzugeben. - -\subsection{Remove the kernel mapping in user mode} -CONFIG\_PAGE\_TABLE\_ISOLATION [=y] \textbf{[Y]}\\ -Diese Funktion reduziert die Anzahl der Hardware-Seitenkanäle, indem sie sicherstellt, dass die meisten -Kernel-Adressen nicht in den Benutzerraum abgebildet werden. Siehe Documentation/arch/x86/pti.rst für -weitere Details. - -\subsection{Avoid speculative indirect branches in kernel} -CONFIG\_RETPOLINE [=y] \textbf{[Y]}\\ -Kompilieren Sie den Kernel mit den retpoline Compiler-Optionen, um Datenlecks zwischen Kernel und Benutzer -zu verhindern, indem spekulative indirekte Verzweigungen vermieden werden. Erfordert einen Compiler mit -\texttt{-mindirect-branch=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. - -\subsubsection{Enable return-thunks} -CONFIG\_RETHUNK [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit der Compileroption return-thunks, um Datenlecks zwischen Kernel und Benutzer zu -verhindern, indem Rückgabespekulationen vermieden werden. Erfordert einen Compiler mit -\texttt{-mfunction-return=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. - -\paragraph{Enable UNRET on kernel entry}$~$\\ -CONFIG\_CPU\_UNRET\_ENTRY [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=unret}-Abschwächung. - -\subsection{Mitigate RSB underflow with call depth tracking} -CONFIG\_CALL\_DEPTH\_TRACKING [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit Call-Depth-Tracking, um das Intel SKL Return-Speculation-Buffer (RSB) Underflow-Problem -zu entschärfen. Die Entschärfung ist standardmäßig ausgeschaltet und muss in der Kernel-Befehlszeile über die -Option \texttt{retbleed=stuff} aktiviert werden. Für nicht betroffene Systeme ist der Overhead dieser Option -marginal, da die Verfolgung der Aufruftiefe zur Laufzeit generierte Call Thunks in einem vom Compiler generierten -Padding-Bereich und Call Patching verwendet. Dies erhöht die Textgröße um $\sim 5$\%. Bei nicht betroffenen Systemen -ist dieser Platz ungenutzt. Auf betroffenen SKL-Systemen führt dies zu einem erheblichen Leistungsgewinn gegenüber -der IBRS-Abschwächung. - -\subsubsection{Enable call thunks and call depth tracking debugging} -CONFIG\_CALL\_THUNKS\_DEBUG [=n] \textbf{[N]}\\ -Aktiviere Call/Ret-Zähler zur Erkennung von Ungleichgewichten und baue ein lautes dmesg über die Erzeugung von -Callthunks und Call-Patching zur Fehlersuche ein. Die Debug-Ausdrucke müssen in der Kernel-Befehlszeile mit -\texttt{debug-callthunks} aktiviert werden. Aktivieren Sie dies nur, wenn Sie Call Thunks debuggen wollen, -da dies einen spürbaren Laufzeit-Overhead erzeugt. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Enable IBPB on kernel entry} -CONFIG\_CPU\_IBPB\_ENTRY [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=ibpb}-Abschwächung. - -\subsection{Enable IBRS on kernel entry} -CONFIG\_CPU\_IBRS\_ENTRY [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit Unterstützung für die \texttt{spectre\_v2=ibrs}-Abschwächung. -Dadurch werden sowohl spectre\_v2 als auch retbleed auf Kosten der Leistung abgeschwächt. - -\subsection{Mitigate speculative RAS overflow on AMD} -CONFIG\_CPU\_SRSO [=y] \textbf{[N]}\\ -Aktiviert die SRSO-Abschwächung, die auf AMD Zen1-4-Maschinen benötigt wird. - -\subsection{Mitigate Straight-Line-Speculation} -CONFIG\_SLS [=y] \textbf{[Y]}\\ -Kompiliere den Kernel mit Straight-Line-Speculation-Optionen, um ihn vor Straight-Line-Speculation zu -schützen. Das Kernel-Image könnte etwas größer sein. - -\subsection{Force GDS Mitigation} -CONFIG\_GDS\_FORCE\_MITIGATION [=n] \textbf{[N]}\\ -Gather Data Sampling (GDS) ist eine Hardware-Schwachstelle, die unberechtigten spekulativen Zugriff auf -Daten ermöglicht, die zuvor in Vektorregistern gespeichert wurden. Diese Option ist gleichbedeutend mit -der Einstellung \texttt{gather\_data\_sampling=force} in der Befehlszeile. Die Mikrocode-Abschwächung -wird verwendet, falls vorhanden, andernfalls wird AVX als Abschwächung deaktiviert. Auf betroffenen -Systemen, denen der Microcode fehlt, wird jeder Userspace-Code, der AVX bedingungslos verwendet, bei -gesetzter Option abbrechen. Das Setzen dieser Option auf Systemen, die nicht für GDS anfällig sind, hat -keine Auswirkungen.\\ -Im Zweifelsfall sagen Sie N. - -\section{Power management and ACPI options \texorpdfstring{$\rightarrow$}{->}} -Energieverwaltung und ACPI-Optionen - -\subsection{Suspend to RAM and standby} -CONFIG\_SUSPEND [=y] \textbf{[Y]}\\ -Ermöglicht dem System, in Ruhezustände einzutreten, in denen der Hauptspeicher mit Strom versorgt wird und -somit sein Inhalt erhalten bleibt, wie z.~B. der Suspend-to-RAM-Zustand (z.~B. der ACPI S3-Zustand). - -\subsection{Hibernation (aka `suspend to disk')} -CONFIG\_HIBERNATION [=y] \textbf{[Y]}\\ -Aktiviert die Funktion \glqq Suspend to Disk\grqq{} (STD), -die in den Benutzeroberflächen gewöhnlich als \glqq Ruhezustand\grqq{} -bezeichnet wird. STD setzt das System an einen Haltepunkt und schaltet es aus; beim Neustart wird dieser Haltepunkt -wiederhergestellt. Sie können Ihren Rechner mit \texttt{echo disk > /sys/power/state} in den Ruhezustand versetzen, -nachdem Sie \texttt{resume=/dev/swappartition} in der Kernel-Befehlszeile in der Konfigurationsdatei Ihres Bootloaders -angegeben haben. Alternativ können Sie auch die zusätzlichen Userland-Tools verwenden, die unter -\url{http://suspend.sf.net} verfügbar sind. Im Prinzip sind weder ACPI noch APM erforderlich, obwohl beispielsweise -ACPI für die letzten Schritte verwendet wird, wenn es verfügbar ist. Einer der Gründe für die Verwendung von -Software-Suspend ist, dass die Firmware-Hooks für Suspend-Zustände wie Suspend-to-RAM (STR) oft nicht sehr gut mit -Linux funktionieren. Es wird ein Abbild erstellt, das in der aktiven Auslagerungsdatei gespeichert wird. -Beim nächsten Start übergeben Sie dem Kernel das Argument \texttt{resume=/dev/swappartition}, damit er das gespeicherte -Abbild erkennt, den Speicherstatus daraus wiederherstellt und wie zuvor weiterarbeitet. -Wenn Sie nicht wollen, dass der vorherige Zustand wiederhergestellt wird, verwenden Sie das Kernel-Befehlszeilenargument -\texttt{noresume}. Beachten Sie jedoch, dass fsck auf Ihren Dateisystemen ausgeführt wird und Sie mkswap auf der -Swap-Partition ausführen müssen, die für den Suspend verwendet wird. In begrenztem Umfang funktioniert es auch mit -Swap-Dateien (für Details siehe $<$file:Documentation/power/swsusp-and-swap-files.rst$>$). -Sie können jetzt booten, ohne den Vorgang fortzusetzen, und ihn später fortsetzen, aber in der Zwischenzeit können Sie -die Swap-Partition(en)/Datei(en), die am Suspendieren beteiligt waren, nicht verwenden. In diesem Fall dürfen Sie auch -nicht die Dateisysteme verwenden, die vor dem Suspendieren gemountet waren. Insbesondere dürfen Sie keine -journalisierten Dateisysteme mounten, die vor dem Suspending gemountet wurden, da diese sonst auf unschöne Weise -beschädigt werden. Weitere Informationen finden Sie in $<$file:Documentation/power/swsusp.rst$>$. - -\subsubsection{Userspace snapshot device} -CONFIG\_HIBERNATION\_SNAPSHOT\_DEV [=y] \textbf{[Y]}\\ -Gerät, das von den uswsusp-Werkzeugen verwendet wird. Sagen Sie N, wenn kein Snapshotting aus dem Userspace benötigt -wird, dies reduziert auch die Angriffsfläche des Kernels. Im Zweifelsfall sagen Sie Y. - -\subsubsection{Default resume partition} -CONFIG\_PM\_STD\_PARTITION [=] \textbf{[~]}\\ -Die Standard-Wiederaufnahmepartition ist die Partition, auf der die Suspend-to-Disk-Implementierung nach einem -Suspend-Disk-Image suchen wird. Die hier angegebene Partition wird für fast jeden Benutzer anders sein. Es sollte eine -gültige Swap-Partition sein (zumindest im Moment), die vor dem Suspendieren eingeschaltet wird. Die angegebene -Partition kann durch die Angabe von:\\ -\texttt{resume=/dev/}\\ -überschrieben werden, wodurch die Partition für die Wiederaufnahme auf das angegebene Gerät gesetzt wird. -Beachten Sie, dass es derzeit keine Möglichkeit gibt, das Gerät anzugeben, auf dem das suspendierte Image -gespeichert werden soll. Es wird einfach das erste verfügbare Swap-Gerät ausgewählt. - -\subsection{Opportunistic sleep} -CONFIG\_PM\_AUTOSLEEP [=n] \textbf{[N]}\\ -Ermöglicht es dem Kernel, automatisch einen Systemübergang in einen globalen Ruhezustand auszulösen, wenn es keine aktiven Weckquellen gibt. - -\subsection{Userspace opportunistic sleep} -CONFIG\_PM\_USERSPACE\_AUTOSLEEP [=n] \textbf{[N]}\\ -Benachrichtigt den Kernel über eine aggressive Benutzerraum-Energieverwaltungspolitik für den automatischen Schlaf. Diese Option -ändert das Verhalten verschiedener schlafempfindlicher Codes, um mit häufigen, vom Benutzer initiierten Übergängen in einen -globalen Schlafzustand umzugehen. Wenn Sie hier Y sagen, werden Codepfade deaktiviert, die die meisten Benutzer wirklich aktiviert -lassen sollten. Aktivieren Sie dies nur, wenn es sehr häufig vorkommt, dass man für sehr kurze Zeiträume ($<= 2$~Sekunden) schläft/wach -ist. Nur Plattformen, wie z.~B. Android, die opportunistischen Ruhezustand von einem Userspace-Energieverwaltungsdienst implementieren, -sollten diese Option aktivieren, nicht aber andere Maschinen. Daher sollten Sie hier N sagen, es sei denn, Sie sind sich sehr sicher, -dass Sie dies wollen. Die Option hat andernfalls schlechte, unerwünschte Auswirkungen und sollte nicht nur zum Spaß aktiviert werden. - -\subsection{User space wakeup sources interface} -CONFIG\_PM\_WAKELOCKS [=n] \textbf{[N]}\\ -Ermöglicht es dem Benutzer, Wakeup-Quellobjekte mit Hilfe einer sysfs-basierten Schnittstelle zu erstellen, zu aktivieren und zu deaktivieren. - -\subsection{Device power management core functionality} -CONFIG\_PM\_WAKELOCKS [=y] \textbf{[Y]}\\ -Aktivierung von Funktionen, die es ermöglichen, E/A-Geräte in einen energiesparenden (stromsparenden) Zustand zu versetzen, z.~B. nach einer -bestimmten Zeit der Inaktivität (autosuspended), und sie als Reaktion auf ein von der Hardware erzeugtes Wake-up-Ereignis oder eine Anforderung -des Treibers aufzuwecken. Damit diese Funktion funktioniert, ist in der Regel eine Hardwareunterstützung erforderlich, und die Bustreiber der -Busse, an denen die Geräte angeschlossen sind, sind für die tatsächliche Handhabung von Suspendierungsanforderungen und Weckereignissen zuständig. - -\subsubsection{Power Management Debug Support} -CONFIG\_PM\_DEBUG [=y] \textbf{[Y]}\\ -Diese Option aktiviert verschiedene Debugging-Funktionen im Power-Management-Code. Dies ist hilfreich bei der Fehlersuche und der Meldung -von PM-Fehlern, wie z.~B. der Suspend-Unterstützung. - -\paragraph{Extra PM attributes in sysfs for low-level debugging/testing}$~$\\ -CONFIG\_PM\_ADVANCED\_DEBUG [=n] \textbf{[N]}\\ -Hinzufügen zusätzlicher sysfs-Attribute, die den Zugriff auf einige Power-Management-Felder von Ge\-rä\-te\-ob\-jek\-ten aus dem Userspace ermöglichen. -Wenn Sie kein Kernel-Entwickler sind, der am Debuggen/Testen von Power Management interessiert ist, sagen Sie N für nein. - -\paragraph{Test suspend/resume and wakealarm during bootup}$~$\\ -CONFIG\_PM\_TEST\_SUSPEND [=n] \textbf{[N]}\\ -Mit dieser Option können Sie Ihren Rechner während des Bootvorgangs in den Ruhezustand versetzen und ihn einige Sekunden später mit einem -RTC-Weckalarm aufwecken. Aktivieren Sie dies mit einem Kernelparameter wie \texttt{test\_suspend=mem}. Wahrscheinlich sollten Sie -den RTC-Treiber Ihres Systems statisch einbinden, um sicherzustellen, dass er verfügbar ist, wenn dieser Test läuft. - -\subsection{Suspend/resume event tracing} -CONFIG\_PM\_TRACE\_RTC [=y] \textbf{[Y]}\\ -Dies ermöglicht es, den letzten PM-Ereignispunkt in der RTC über Neustarts hinweg zu speichern, so dass Sie einen Rechner, der während des -Suspendierens (oder häufiger während des Wiederaufnehmens) einfach hängen bleibt, debuggen können. Um diese Debugging-Funktion zu nutzen, -sollten Sie versuchen, den Rechner in den Suspend-Modus zu versetzen, ihn neu zu starten und dann Folgendes auszuführen\\[.5em] -\texttt{dmesg -s 1000000 | grep 'hash matches'}\\[.5em] -ACHTUNG: Diese Option führt dazu, dass die Echtzeituhr Ihres Rechners nach einem Neustart auf eine ungültige Zeit gesetzt wird. - -\subsection{Enable workqueue power-efficient mode by default} -CONFIG\_WQ\_POWER\_EFFICIENT\_DEFAULT [=y] \textbf{[Y]}\\ -Pro-CPU-Workqueues werden im Allgemeinen bevorzugt, da sie dank der Cache-Lokalität eine bessere Leistung aufweisen; leider neigen -Pro-CPU-Workqueues dazu, mehr Strom zu verbrauchen als ungebundene Workqueues. Durch die Aktivierung des Kernelparameters -\texttt{workqueue.power\_efficient} werden die Pro-CPU-Workqueues, die nachweislich erheblich zum Stromverbrauch beitragen, -ungebunden, was zu einem messbar geringeren Stromverbrauch auf Kosten eines geringen Leistungsoverheads führt. Diese Konfigurationsoption -legt fest, ob \texttt{workqueue.power\_efficient} standardmäßig aktiviert ist.\\ -Im Zweifelsfall sagen Sie N. - -\subsection{Energy Model for devices with DVFS (CPUs, GPUs, etc)} -CONFIG\_ENERGY\_MODEL [=y] \textbf{[Y]}\\ -Mehrere Teilsysteme (z.~B. das thermische System und/oder der Aufgabenplaner) können Informationen über den Energieverbrauch von Geräten -nutzen, um intelligentere Entscheidungen zu treffen. Diese Konfigurationsoption aktiviert den Rahmen, von dem aus die Subsysteme auf die -Energiemodelle zugreifen können. Die genaue Verwendung des Energiemodells ist subsystemabhängig.\\ -Im Zweifelsfall sagen Sie N. - -\subsection{ACPI (Advanced Configuration and Power Interface) Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_ACPI [=y] \textbf{[Y]}\\ -Die Unterstützung von ACPI (Advanced Configuration and Power Interface) für Linux erfordert eine ACPI-kompatible Plattform (Hardware/Firmware) -und setzt das Vorhandensein von OS-directed configuration and power management (OSPM) Software voraus. Mit dieser Option wird Ihr Kernel um -etwa 70K erweitert. Linux ACPI bietet einen robusten funktionalen Ersatz für mehrere ältere Konfigurations- und Energieverwaltungsschnittstellen, -einschließlich der Plug-and-Play-BIOS-Spezifikation (PnP BIOS), der MultiProzessor-Spezifikation (MPS) und der Advanced Power Management (APM)-Spezifikation. -Wenn sowohl ACPI- als auch APM-Unterstützung konfiguriert sind, wird ACPI verwendet. -Die Linux-Unterstützung für ACPI basiert auf der ACPI Component Architecture (ACPI CA) der Intel Corporation. Weitere Informationen über die ACPI~CA -finden Sie unter: \url{https://acpica.org/} ACPI ist eine offene Industriespezifikation, die ursprünglich von Hewlett-Packard, Intel, Microsoft, -Phoenix und Toshiba mitentwickelt wurde. Derzeit wird sie von der ACPI Specification Working Group (ASWG) im Rahmen des UEFI-Forums entwickelt, -und jedes UEFI-Mitglied kann der ASWG beitreten und zur ACPI-Spezifikation beitragen.\\ -Die Spezifikation ist verfügbar unter: \url{https://uefi.org/specifications}. - -\subsubsection{AML debugger interface} -CONFIG\_ACPI\_DEBUGGER [=n] \textbf{[N]}\\ -Aktiviert das In-Kernel-Debugging von AML-Funktionen: Statistiken, interner Objekt-Dump, Aus\-füh\-rung von Einzel\-schritt-Kontroll\-methoden. Dies befindet -sich noch in der Entwicklung, derzeit führt die Aktivierung nur zur Kompilierung der ACPICA-Debugger-Dateien. - -\subsubsection{ACPI Serial Port Console Redirection Support} -CONFIG\_ACPI\_SPCR\_TABLE [=y] \textbf{[Y]}\\ -Aktiviert die Unterstützung für die Serial Port Console Redirection (SPCR) Tabelle. Diese Tabelle enthält Informationen über die Konfiguration -der earlycon-Konsole. - -\subsubsection{ACPI Firmware Performance Data Table (FPDT] support} -CONFIG\_ACPI\_FPDT [=y] \textbf{[Y]}\\ -Aktiviert die Unterstützung für die Firmware Performance Data Table (FPDT). Diese Tabelle enthält Informationen über das Timing des Systemstarts, -der S3-Suspend- und S3-Resume-Firmware-Codepfade. - -\subsubsection{Allow supported ACPI revision to be overridden} -CONFIG\_ACPI\_FPDT [=y] \textbf{[Y]}\\ -(Erlaubt das Überschreiben der unterstützten ACPI-Revision)\\ -Die Plattform-Firmware auf einigen Systemen erwartet, dass Linux \glqq 5\grqq{} als unterstützte ACPI-Revision zurückgibt, was dazu führt, dass sie -Systemkonfigurationsinformationen auf eine besondere Weise offenlegt. Basierend darauf, was ACPI als unterstützte Revision exportiert, -konfiguriert beispielsweise das Dell~XPS~13 (2015) sein Audiogerät so, dass es entweder im HDA-Modus oder im I2S-Modus arbeitet, wobei -ersterer unter Linux verwendet werden soll, bis letzterer vollständig unterstützt wird (sowohl im Kernel als auch im Userspace). Diese -Option ermöglicht eine DMI-basierte Besonderheit für den oben genannten Dell-Rechner (so dass HDA-Audio von der Plattform-Firmware dem -Kernel offengelegt wird) und macht es möglich, den Kernel zu zwingen, \glqq 5\grqq{} als unterstützte ACPI-Revision über den -Befehlszeilenschalter \texttt{acpi\_rev\_override} zurückzugeben. - -\subsubsection{EC read/write access through /sys/kernel/debug/ec} -CONFIG\_ACPI\_EC\_DEBUGFS [=m] \textbf{[M]}\\ -Sagen Sie N, um die Schnittstelle Embedded Controller /sys/kernel/debug zu deaktivieren. Beachten Sie, dass die Verwendung dieser Schnittstelle -Ihren Embedded Controller so verwirren kann, dass ein normaler Neustart nicht ausreicht. Sie müssen dann Ihr System ausschalten und den Akku -des Laptops für einige Sekunden entfernen. Ein Embedded Controller ist in der Regel auf Laptops vorhanden und liest Sensorwerte wie -Batteriestatus und Temperatur aus. Der Kernel greift auf den EC über ACPI-geparsten Code zu, der von BIOS-Tabellen bereitgestellt wird. -Diese Option ermöglicht den direkten Zugriff auf den EC, ohne dass ACPI-Code involviert ist.\\ -Somit ist diese Option eine Debug-Option, die beim Schreiben von ACPI-Treibern hilft und zur Identifizierung von ACPI-Code oder -EC-Firmware-Fehlern verwendet werden kann. - -\subsubsection{AC Adapter} -CONFIG\_ACPI\_AC [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt das AC-Adapter-Objekt, das anzeigt, ob ein System mit Wechselstrom betrieben wird oder nicht. -Wenn Sie ein System haben, das zwischen Wechselstrom und Batterie umschalten kann, sagen Sie Y. Um diesen Treiber als Modul -zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{ac} heißen. - -\subsubsection{Battery} -CONFIG\_ACPI\_BATTERY [=y] \textbf{[Y]}\\ -Dieser Treiber bietet Unterstützung für Batterieinformationen über /proc/acpi/battery. Wenn Sie ein mobiles System mit -einer Batterie haben, sagen Sie Y. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{battery} genannt. - -\subsubsection{Button} -CONFIG\_ACPI\_BUTTON [=y] \textbf{[Y]}\\ -Dieser Treiber verarbeitet Ereignisse für die Tasten Power, Sleep und Deckel. Ein Daemon liest Ereignisse von Eingabegeräten -oder über Netlink und führt benutzerdefinierte Aktionen wie das Herunterfahren des Systems aus. Dies ist für die -softwaregesteuerte Abschaltung erforderlich. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{button} genannt. - -\subsubsection{Video} -CONFIG\_ACPI\_VIDEO [=m] \textbf{[M]}\\ -Dieser Treiber implementiert die ACPI-Erweiterungen für Display-Adapter für integrierte Grafikgeräte auf dem Motherboard, -wie in der ACPI 2.0-Spezifikation, Anhang B, angegeben. -Er unterstützt grundlegende Vorgänge wie das Definieren des Video-POST-Geräts, das Abrufen von EDID-Informationen und -das Einrichten eines Videoausgangs. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{video} genannt. - -\subsubsection{Fan} -CONFIG\_ACPI\_FAN [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt ACPI-Lüftergeräte und ermöglicht es Anwendungen im Benutzermodus, grundlegende -Lüftersteuerungen (Ein, Aus, Status) durchzuführen. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{fan} genannt. - -\subsubsection{ACPI Time and Alarm (TAD) Device Support} -CONFIG\_ACPI\_TAD [=m] \textbf{[N]}\\ -Das ACPI Time and Alarm (TAD) Gerät ist eine Alternative zur Real Time Clock (RTC). Seine Weckzeitgeber ermöglichen es dem System, -nach Ablauf einer bestimmten Zeitspanne vom Zustand S3 (oder optional S4/S5) in den Zustand S0 überzugehen. -Im Vergleich zum RTC-Alarm bietet der TAD eine größere Flexibilität bei den Wake-Timern. -Die Zeitfunktionen des TAD behalten die Tageszeitinformationen bei, auch wenn die Plattform ausgeschaltet ist. - -\subsubsection{Dock} -CONFIG\_ACPI\_DOCK [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt ACPI-gesteuerte Dockingstationen und Wechsellaufwerkseinschübe wie den IBM Ultrabay -und den Dell Module Bay. - -\subsubsection{Processor} -CONFIG\_ACPI\_PROCESSOR [=y] \textbf{[Y]}\\ -Dieser Treiber bietet Unterstützung für das ACPI-Prozessor-Paket. Er wird von mehreren Varianten der cpufreq-Treiber -für den Leistungszustand, die Wärmeentwicklung, die Drosselung und den Leerlauf benötigt. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul heißt dann \texttt{processor}. - -\subsubsection{IPMI} -CONFIG\_ACPI\_IPMI [=m] \textbf{[M]}\\ -Dieser Treiber ermöglicht dem ACPI den Zugriff auf den BMC-Controller. Und er verwendet die IPMI-Anfrage/Antwort-Nachricht -zur Kommunikation mit dem BMC-Controller, der sich auf dem Server befindet. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird als \texttt{acpi\_ipmi} aufgerufen. - -\subsubsection{Processor Aggregator} -CONFIG\_ACPI\_PROCESSOR\_AGGREGATOR [=m] \textbf{[M]}\\ -ACPI 4.0 definiert einen Prozessor-Aggregator, der es dem Betriebssystem ermöglicht, eine spezifische Prozessorkonfiguration -und -steuerung durchzuführen, die für alle Prozessoren der Plattform gilt. Derzeit ist nur der logische Leerlauf des Prozessors -definiert, der den Stromverbrauch senken soll. Dieser Treiber unterstützt das neue Gerät. - -\subsubsection{Thermal Zone} -CONFIG\_ACPI\_THERMAL [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt ACPI-Thermozonen. Die meisten mobilen und einige Desktop-Systeme unterstützen ACPI-Wärmezonen. -Es wird DRINGEND empfohlen, diese Option zu aktivieren, da Ihr(e) Prozessor(en) sonst beschädigt werden können. Um diesen Treiber -als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{thermal} genannt. - -\subsubsection{Allow upgrading ACPI tables via initrd} -CONFIG\_ACPI\_TABLE\_UPGRADE [=y] \textbf{[Y]}\\ -Diese Option bietet die Möglichkeit, beliebige ACPI-Tabellen über initrd zu aktualisieren. -Keine funktionale Änderung, wenn keine ACPI-Tabellen über initrd übergeben werden, daher ist es sicher, Y zu sagen. -Siehe Documentation/admin-guide/acpi/initrd\_table\_override.rst für Details - -\subsubsection{Debug Statements} -CONFIG\_ACPI\_DEBUG [=y] \textbf{[Y]}\\ -Das ACPI-Sub\-system kann Debug-Aus\-gaben er\-zeu\-gen. -Die Angabe von Y aktiviert diese Ausgabe und erhöht die Ker\-nel\-grö\-ße um etwa 50K.\\ -Verwenden Sie die Kernel-Befehlszeilen\-parameter \texttt{acpi.debug\_layer} und \texttt{acpi.debug\_level}, die in -Do\-cu\-men\-tation/firmware-guide/acpi/debug.rst und Docu\-men\-tation/admin-guide/kernel-parameters.rst dokumentiert sind, -um die Art und Menge der Debug-Ausgabe zu steuern. - -\subsubsection{PCI slot detection driver} -CONFIG\_ACPI\_PCI\_SLOT [=y] \textbf{[Y]}\\ -Dieser Treiber erstellt Einträge in \texttt{/sys/bus/pci/slots/} für alle PCI-Steckplätze im System. -Dies kann helfen, PCI-Bus-Adressen, d.~h. Segment/Bus/Gerät/Funktions-Tupel, mit physischen Steckplätzen im System zu korrelieren.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Container and Module Devices} -CONFIG\_ACPI\_CONTAINER [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt ACPI-Container- und Modulgeräte (IDs ACPI0004, PNP0A05 und PNP0A06). -Dies hilft, Hotplug von Knoten, CPUs und Speicher zu unterstützen. - -\subsubsection{Memory Hotplug} -CONFIG\_ACPI\_HOTPLUG\_MEMORY [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt ACPI-Speicher-Hotplug. Die Treiberfelder enthalten Benachrichtigungen über -ACPI-Speichergeräte (PNP0C80), die Speicherbereiche darstellen, die zur Laufzeit ein- oder ausgeschaltet -werden können. Wenn Ihre Hardware und Firmware das Hinzufügen oder Entfernen von Speichergeräten zur Laufzeit -nicht unterstützen, müssen Sie diesen Treiber nicht aktivieren. - -\subsubsection{Smart Battery System} -CONFIG\_ACPI\_SBS [=m] \textbf{[N]}\\ -Dieser Treiber unterstützt das Smart Battery System, eine andere Art des Zugriffs auf Batterieinformationen, -die bei einigen Laptops zu finden ist. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Die Module -heißen dann sbs und sbshc. - -\subsubsection{Hardware Error Device} -CONFIG\_ACPI\_HED [=y] \textbf{[Y]}\\ -Dieser Treiber unterstützt das Hardware Error Device (PNP0C33), das dazu dient, einige über SCI gemeldete -Hardwarefehler zu melden, hauptsächlich die korrigierten Fehler. - -\subsubsection{Allow ACPI methods to be inserted/replaced at run time} -CONFIG\_ACPI\_CUSTOM\_METHOD [=m] \textbf{[M]}\\ -Mit dieser Debug-Funktion können ACPI-AML-Methoden eingefügt und/oder ersetzt werden, ohne dass das System -neu gestartet werden muss.\\ -Für Details siehe: Documentation/firmware-guide/acpi/method-customizing.rst.\\ -HINWEIS: Diese Option ist sicherheitsrelevant, da sie es erlaubt, dass root (uid=0) Benutzer in beliebigen -Kernelspeicher schreiben können und so bestimmte Sicherheitsmaßnahmen umgehen können (z.~B. wenn es root -nicht erlaubt ist, zusätzliche Kernelmodule nach dem Booten zu laden, kann diese Funktion verwendet werden, -um diese Einschränkung zu umgehen). - -\subsubsection{Boottime Graphics Resource Table support} -CONFIG\_ACPI\_BGRT [=y] \textbf{[Y]}\\ -Dieser Treiber bietet Unterstützung für die ACPI Boottime Graphics Resource Table, die es dem Betriebssystem -ermöglicht, Daten aus dem Firmware-Boot-Splash zu beziehen.\\ -Er erscheint unter \texttt{/sys/firmware/acpi/bgrt/} . - -\subsubsection{ACPI NVDIMM Firmware Interface Table (NFIT)} -CONFIG\_ACPI\_NFIT [=m] \textbf{[M]}\\ -Infrastruktur, um ACPI 6-konforme Plattformen auf NVDIMMs zu untersuchen (NFIT) und einen libnvdimm-Gerätebaum -zu registrieren. Zusätzlich zu den Speichergeräten ermöglicht dies libnvdimm auch die Weitergabe von -ACPI.\_DSM-Nachrichten für die Plattform/Dimm-Konfiguration. Um diesen Treiber als Modul zu kompilieren, -wählen Sie hier M: Das Modul wird \texttt{nfit} genannt. - -\paragraph{Enable debug for NVDIMM security commands}$~$\\ -CONFIG\_NFIT\_SECURITY\_DEBUG [=n] \textbf{[N]}\\ -Einige NVDIMM-Geräte und -Controller unterstützen Verschlüsselung und andere Sicherheitsfunktionen. -Die Nutzdaten für die Befehle, die diese Funktionen aktivieren, können sensibles Sicherheitsmaterial -im Klartext enthalten. Deaktivieren Sie das Debuggen dieser Befehls-Payloads standardmäßig. Wenn Sie ein -Kernel-Entwickler sind, der aktiv an der Aktivierung der NVDIMM-Sicherheit arbeitet, sagen Sie Y, -andernfalls sagen Sie N. - -\subsubsection{NUMA support} -CONFIG\_ACPI\_NUMA [=y] \textbf{[Y]}\\ -\textit{Für diese Option ist keine Hilfe verfügbar.} - -\paragraph{ACPI Heterogeneous Memory Attribute Table Support}$~$\\ -CONFIG\_ACPI\_HMAT [=y] \textbf{[Y]}\\ -Wenn diese Option gesetzt ist, lässt der Kernel die ACPI HMAT (Heterogeneous Memory Attributes Table) -der Plattform auslesen und melden, Speicherinitiatoren mit ihren Zielen registrieren und Leistungsattribute -über das sysfs-Gerät des Knotens exportieren, falls vorhanden. - -\subsubsection{ACPI Platform Error Interface (APEI)} -CONFIG\_ACPI\_APEI [=y] \textbf{[Y]}\\ -APEI ermöglicht es, Fehler (z.~B. vom Chipsatz) an das Betriebssystem zu melden. Dies verbessert -insbesondere die NMI-Behandlung. Darüber hinaus unterstützt es Fehlerserialisierung und Fehlerinjektion. - -\paragraph{ACPI Generic Hardware Error Source}$~$\\ -CONFIG\_ACPI\_APEI\_GHES [=y] \textbf{[Y]}\\ -Generic Hardware Error Source bietet eine Möglichkeit, Plattform-Hardware-Fehler (z.~B. vom Chipsatz) zu melden. -Sie arbeitet im so genannten \glqq Firmware First\grqq{}-Modus, d.~h. Hardwarefehler werden zunächst an die -Firmware gemeldet und dann von der Firmware an Linux weitergeleitet. -Auf diese Weise können einige Nicht-Standard-Hardware-Fehlerregister oder Nicht-Standard-Hardware-Verbindungen -von der Firmware überprüft werden, um wertvollere Hardware-Fehlerinformationen für Linux zu erhalten. - -\paragraph{ACPI PCIe AER logging/recovering support}$~$\\ -CONFIG\_ACPI\_APEI\_PCIEAER [=y] \textbf{[Y]}\\ -PCIe-AER-Fehler können über den APEI-Firmware-First-Modus gemeldet werden. Aktivieren Sie diese Option, -um die entsprechende Unterstützung zu aktivieren. - -\subsubsection{ACPI memory error recovering support} -CONFIG\_ACPI\_APEI\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\ -Speicherfehler können über den APEI-Firmware-First-Modus gemeldet werden. Aktivieren Sie diese Option, -um die Unterstützung für die Speicherwiederherstellung zu aktivieren. - -\subsubsection{APEI Error INJection (EINJ)} -CONFIG\_ACPI\_APEI\_EINJ [=m] \textbf{[M]}\\ -EINJ bietet einen Hardware-Fehlerinjektionsmechanismus, der hauptsächlich zur Fehlersuche und zum Testen -der anderen Teile von APEI und einiger anderer RAS-Funktionen verwendet wird. - -\subsubsection{APEI Error Record Serialization Table (ERST) Debug Support} -CONFIG\_ACPI\_APEI\_ERST\_DEBUG [=m] \textbf{[M]}\\ -ERST ist eine von APEI bereitgestellte Möglichkeit, Hardware-Fehler\-infor\-mationen in einem dauerhaften Speicher -zu speichern und von dort abzurufen. Aktivieren Sie dies, wenn Sie die ERST-Kernel\-un\-ter\-stüt\-zung und -Firmware-Implementierung debuggen und testen wollen. - -\subsubsection{Intel DPTF (Dymnamic Platform and Thermal Framework) Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_ACPI\_DPTF [=y] \textbf{[Y]}\\ -Intel Dynamic Platform and Thermal Framework (DPTF) ist eine Hardware-/Softwarelösung auf Plattformebene für -das Energie- und Wärmemanagement. Als Container für mehrere Energie-/Thermo\-tech\-no\-lo\-gi\-en bietet DPTF einen -koordinierten Ansatz für verschiedene Richtlinien, die den Hardwarezustand eines Systems beeinflussen. - -\paragraph{Platform Power DPTF Participant}$~$\\ -CONFIG\_DPTF\_POWER [=m] \textbf{[M]}\\ -Dieser Treiber bietet Unterstützung für das Dynamic Platform and Thermal Framework (DPTF) Platform Power -Participant Device (INT3407). Dieser Teilnehmer ist für die Offenlegung der Plattformtelemetrie verantwortlich: -\begin{itemize} - \item max\_platform\_power (max. Plattformleistung) - \item platform\_power\_source (Plattformstromquelle) - \item adapter\_rating (Leistung des Netzteils) - \item battery\_steady\_power (Dauerleistung der Batterie) - \item ladegerät\_typ (Ladegerättyp) -\end{itemize} -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul heißt dann \texttt{dptf\_power}. - -\paragraph{PCH FIVR DPTF Participant}$~$\\ -CONFIG\_DPTF\_PCH\_FIVR [=m] \textbf{[M]}\\ -Dieser Treiber fügt Unterstützung für Dynamic Platform and Thermal Framework (DPTF) PCH FIVR Participant -Device Support hinzu. Dieser Treiber ermöglicht es, die Frequenz des PCH FIVR (Fully Integrated Voltage Regulator) -zu schalten. Dieser Teilnehmer ist für die Bereitstellung verantwortlich: -\begin{itemize} - \item freq\_mhz\_low\_clock - \item freq\_mhz\_high\_clock -\end{itemize} -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{dptf\_pch\_fivr} heißen. - -\subsubsection{Extended Error Log support} -CONFIG\_ACPI\_EXTLOG [=m] \textbf{[M]}\\ -Bestimmte Anwendungen wie die vorausschauende Fehleranalyse (Predictive Failure Analysis, PFA) erfordern mehr Informationen -über den Fehler, als in den Prüfbänken der Prozessormaschine beschrieben werden können. Die meisten Server-Prozessoren -protokollieren zusätzliche Informationen über den Fehler in Prozessor-Uncore-Registern. Da die Adressen und das Layout -dieser Register von einem Prozessor zum anderen sehr unterschiedlich sind, kann die Systemsoftware sie nicht ohne weiteres -nutzen. Erschwerend kommt hinzu, dass einige der zusätzlichen Fehlerinformationen nicht ohne detaillierte Kenntnisse der -Plattformtopologie erstellt werden können. Die erweiterte MCA-Protokollierung ermöglicht es der Firmware, der Systemsoftware -synchron mit MCE oder CMCI zusätzliche Fehlerinformationen zu liefern. Dieser Treiber unterstützt diese Funktionalität mit -einem entsprechenden Tracepoint, der diese Informationen an den Userspace weiterleitet. - -\subsubsection{ACPI configfs support} -CONFIG\_ACPI\_CONFIGFS [=m] \textbf{[M]}\\ -Wählen Sie diese Option, um die Unterstützung für die ACPI-Konfiguration aus dem Userspace zu aktivieren. Die konfigurierbaren -ACPI-Gruppen sind dann unter /config/acpi sichtbar, vorausgesetzt, configfs ist unter /config eingebunden. - -\subsubsection{ACPI Platform Firmware Runtime Update and Telemetry} -CONFIG\_ACPI\_PFRUT [=m] \textbf{[M]}\\ -Dieser Mechanismus ermöglicht es, bestimmte Teile der Plattform-Firmware während des laufenden Betriebs (Laufzeit) zu -aktualisieren, ohne dass ein Neustart erforderlich ist. Dies ist von entscheidender Bedeutung, wenn das System zu -100~\% verfügbar sein muss und sich die mit einem Neustart verbundene Ausfallzeit nicht leisten kann, oder wenn die vom -System ausgeführte Arbeit besonders wichtig ist, so dass sie nicht unterbrochen werden kann und es nicht sinnvoll ist, -zu warten, bis sie abgeschlossen ist. Der bestehende Firmware-Code kann geändert (Treiber-Update) oder durch Hinzufügen -neuen Codes zur Firmware erweitert werden (Code-Injektion). Außerdem ermöglicht der Telemetrietreiber dem Benutzer, mit -Hilfe der Plattform-Firmware-Laufzeit-Telemetrieschnittstelle Telemetriedaten aus der Firmware abzurufen. Um die Treiber -als Module zu kompilieren, wählen Sie hier M: die Module heißen dann \texttt{pfr\_update} und \texttt{pfr\_telemetry}. - -\subsubsection{ACPI PCC Address Space} -CONFIG\_ACPI\_PCC [=y] \textbf{[Y]}\\ -Der PCC-Adressraum, der auch als PCC-Operationsbereich bezeichnet wird, bezieht sich auf den Bereich des PCC-Unterraums, -der auf die PCC-Signatur folgt. Die PCC Operation Region arbeitet mit der PCC Table (Platform Communications Channel Table) -zusammen. PCC-Unterräume, die für die Verwendung als PCC Operation Region markiert sind, dürfen nicht als PCC-Unterräume -für die Standard-ACPI-Funktionen wie CPPC, RASF, PDTT und MPST verwendet werden. Diese Standardfunktionen müssen stattdessen -immer die PCC-Tabelle verwenden. Aktivieren Sie diese Funktion, wenn Sie den PCC Address Space Handler einrichten und -installieren möchten, um PCC OpRegion in der Firmware zu behandeln. - -\subsubsection{ACPI FFH Address Space} -CONFIG\_ACPI\_FFH [=y] \textbf{[Y]}\\ -Der FFH (Fixed Function Hardware) Adressraum, auch FFH Operation Region genannt, erlaubt es, plattformspezifische OpRegions -zu definieren. Aktivieren Sie diese Funktion, wenn Sie den FFH-Adressraum-Handler einrichten und installieren möchten, -um die FFH-OpRegion in der Firmware zu behandeln. - -\subsubsection{PMIC (Power Management Integrated Circuit) operation region support} -CONFIG\_PMIC\_OPREGION [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um die Unterstützung für den ACPI-Betriebsbereich des PMIC-Chips zu aktivieren. Der Betriebsbereich -kann zur Steuerung von Stromschienen und zum Lesen/Schreiben von Sensoren auf dem PMIC-Chip verwendet werden. - -\subsubsection{ACPI operation region support for TPS68470 PMIC} -CONFIG\_TPS68470\_PMIC\_OPREGION [=y] \textbf{[Y]}\\ -Diese Konfiguration fügt ACPI-Betriebsbereich-Unterstützung für TI TPS68470 PMIC hinzu. Der Baustein TPS68470 ist eine -fortschrittliche Energieverwaltungseinheit, die ein Kompaktkameramodul (CCM) mit Strom versorgt, Takte für Bildsensoren -erzeugt, eine Dual-LED für den Blitz ansteuert und zwei LED-Treiber für allgemeine Anzeigen enthält. -Dieser Treiber ermöglicht die Unterstützung der ACPI-Betriebsregion für die Steuerung von Spannungsreglern und Taktgebern. -Bei dieser Option handelt es sich um ein bool, da sie eine ACPI-Betriebsregion bereitstellt, die verfügbar sein muss, -bevor eines der Geräte, die diese Option verwenden, getestet wird. - -\subsubsection{Platform Runtime Mechanism Support} -CONFIG\_ACPI\_PRMT [=y] \textbf{[Y]}\\ -Der Plattform-Laufzeit-Mechanismus (Platform Runtime Mechanism, PRM) ist eine Firmware-Schnitt\-stelle, die eine Reihe von -ausführbaren Binärdateien bereitstellt, die vom AML-Interpreter oder direkt von Gerätetreibern aufgerufen werden können. -Sagen Sie Y, um den AML-Interpreter für die Ausführung des PRM-Codes zu aktivieren. Während diese Funktion im Prinzip -optional ist, kann das Weglassen dieser Funktion den Rechenaufwand für die Initialisierung einiger Serversysteme erheblich -erhöhen. - -\subsection{CPU Frequency scaling \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CPU\_FREQ [=y] \textbf{[Y]}\\ -Mit der CPU-Frequenzskalierung können Sie die Taktfrequenz von CPUs im laufenden Betrieb ändern. Dies ist eine gute Methode, -um Strom zu sparen, denn je niedriger die CPU-Taktfrequenz, desto weniger Strom verbraucht die CPU. Beachten Sie, dass -dieser Treiber die CPU-Taktfrequenz nicht automatisch ändert. Sie müssen entweder einen dynamischen cpufreq-Governor -(siehe unten) nach dem Booten aktivieren oder ein Userspace-Tool verwenden.\\ -Details finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. Im Zweifelsfall sagen Sie N. - -\subsubsection{CPU frequency transition statistics} -CONFIG\_CPU\_FREQ\_STAT [=y] \textbf{[Y]}\\ -Exportieren Sie CPU-Häufigkeitsstatistiken über sysfs. Im Zweifelsfall sagen Sie N. - -\subsubsection{Default CPUFreq governor () \texorpdfstring{$\rightarrow$}{->}} -Diese Option legt fest, welcher CPUFreq-Governor beim Start geladen werden soll. -Im Zweifelsfall ist die Standardeinstellung zu verwenden. - -\paragraph{performance}$~$\\ -CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_PERFORMANCE [=n] \textbf{[N]}\\ -Verwenden Sie den CPUFreq-Governor \glq performance\grq{} als Standard. Damit wird die Frequenz statisch auf die höchste von -der CPU unterstützte Frequenz eingestellt. - -\paragraph{powersave}$~$\\ -CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_POWERSAVE [=n] \textbf{[N]}\\ -Verwenden Sie den CPUFreq-Governor \glq powersave\grq{} als Standard. Damit wird die Frequenz statisch auf die niedrigste -von der CPU unterstützte Frequenz eingestellt. - -\paragraph{userspace}$~$\\ -CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_USERSPACE [=n] \textbf{[N]}\\ -Verwenden Sie den CPUFreq-Governor \glq userspace\grq{} als Standard. Damit können Sie die CPU-Frequenz manuell einstellen -oder ein Userspace-Programm soll die CPU dynamisch einstellen können, ohne den Userspace-Governor manuell -aktivieren zu müssen. - -\paragraph{schedutil}$~$\\ -CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ -Verwenden Sie standardmäßig den CPUFreq-Governor \glq schedutil\grq{}. Wenn Sie sich nicht sicher sind, sehen Sie in -der Hilfe zu diesem Gouverneur nach. Der Fallback-Regler ist \glqq performance\grqq{}. - -\subsubsection{`performance' governor} -CONFIG\_CPU\_FREQ\_GOV\_PERFORMANCE [=y] \textbf{[Y]}\\ -Dieser cpufreq-Regler setzt die Frequenz statisch auf die höchste verfügbare CPU-Frequenz. Um diesen Treiber -als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_performance} heißen. -Im Zweifelsfall sagen Sie Y. - -\subsubsection{`powersave' governor} -CONFIG\_CPU\_FREQ\_GOV\_POWERSAVE [=y] \textbf{[Y]}\\ -Dieser cpufreq-Regler setzt die Frequenz statisch auf die niedrigste verfügbare CPU-Frequenz. Um diesen Treiber -als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_powersave} heißen. -Im Zweifelsfall wählen Sie Y. - -\subsubsection{`userspace' governor for userspace frequency scaling} -CONFIG\_CPU\_FREQ\_GOV\_USERSPACE [=y] \textbf{[Y]}\\ -Aktivieren Sie diesen cpufreq-Governor, wenn Sie die CPU-Frequenz entweder manuell einstellen wollen oder wenn -ein Userspace-Programm in der Lage sein soll, die CPU dynamisch einzustellen, wie bei -LART \url{http://www.lartmaker.nl/}. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cpufreq\_userspace} heißen. Im Zweifelsfall sagen Sie Y. - -\subsubsection{`ondemand' cpufreq policy governor} -CONFIG\_CPU\_FREQ\_GOV\_ONDEMAND [=y] \textbf{[Y]}\\ -`ondemand' -- Dieser Treiber fügt einen dynamischen cpufreq policy governor hinzu. -Der Gouverneur führt eine periodische Abfrage durch und ändert die Frequenz auf der Grundlage der CPU-Auslastung. -Die Unterstützung für diesen Gouverneur hängt von der Fähigkeit der CPU ab, schnelle Frequenzwechsel durchzuführen -(d.~h. Frequenzübergänge mit sehr geringer Latenzzeit). Um diesen Treiber als Modul zu kompilieren, -wählen Sie hier M: Das Modul wird \texttt{cpufreq\_ondemand} heißen. -Details finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. Im Zweifelsfall sagen Sie N. - -\subsubsection{`conservative' cpufreq governor} -CONFIG\_CPU\_FREQ\_GOV\_CONSERVATIVE [=y] \textbf{[Y]}\\ -`konservativ' -- dieser Treiber ähnelt dem \glqq On-Demand\grqq{}-Regler sowohl in seinem Quellcode als auch in -seinem Zweck, der Unterschied besteht in seiner Optimierung für eine bessere Eignung in einer batteriebetriebenen -Umgebung. Die Frequenz wird sanft erhöht und gesenkt, anstatt auf 100~\% zu springen, wenn die Geschwindigkeit -erforderlich ist. Wenn Sie einen Desktop-Rechner haben, sollten Sie stattdessen den \glqq On-Demand\grqq{}-Regler -in Betracht ziehen. Wenn Sie jedoch einen Laptop, einen PDA oder sogar einen AMD64-basierten Computer verwenden -(wegen der inakzeptablen schrittweisen Latenzprobleme zwischen den minimalen und maximalen Frequenzübergängen in -der CPU), werden Sie wahrscheinlich diesen Regler verwenden wollen. Um diesen Treiber als Modul zu kompilieren, -wählen Sie hier M: Das Modul wird \texttt{cpufreq\_conservative} heißen.\\ -Einzelheiten finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$.\\Im Zweifelsfall sagen Sie N. - -\subsubsection{`schedutil' cpufreq policy governor} -CONFIG\_CPU\_FREQ\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ -Dieser Gouverneur trifft seine Entscheidungen auf der Grundlage der vom Scheduler bereitgestellten Nutzungsdaten. -Er stellt die CPU-Frequenz so ein, dass sie proportional zu dem vom Scheduler gelieferten Verhältnis zwischen -Auslastung und Kapazität ist. Wenn die Auslastung frequenzinvariant ist, ist die neue Frequenz auch proportional -zur maximal verfügbaren Frequenz. Wenn dies nicht der Fall ist, ist sie proportional zur aktuellen Frequenz der CPU. -Der Kipppunkt der Frequenz liegt in beiden Fällen bei einer Auslastung/Kapazität von 80~\%.\\ -Im Zweifelsfall sagen Sie N. - -\subsubsection*{*** CPU frequency scaling drivers ***} -(Treiber zur Skalierung der CPU-Frequenz) - -\subsubsection{Intel P state control} -CONFIG\_X86\_INTEL\_PSTATE [=y] \textbf{[Y]}\\ -Dieser Treiber bietet einen P-Status für Intel-Core-Prozessoren. Der Treiber implementiert einen internen -Gouverneur und wird der Skalierungstreiber und Gouverneur für Sandy-Bridge-Prozessoren werden. -Wenn dieser Treiber aktiviert ist, wird er der bevorzugte Skalierungstreiber für Sandy-Bridge-Prozessoren.\\ -Im Zweifelsfall sagen Sie N. - -\subsubsection{Processor Clocking Control interface driver} -CONFIG\_X86\_PCC\_CPUFREQ [=y] \textbf{[Y]}\\ -Dieser Treiber bietet Unterstützung für die PCC-Schnittstelle. Einzelheiten finden Sie unter:\\ -$<$file:Documentation/admin-guide/pm/cpufreq\_drivers.rst$>$. Um diesen Treiber als Modul zu kompilieren, -wählen Sie hier M: -Das Modul wird \texttt{pcc-cpufreq} heißen. Im Zweifelsfall sagen Sie N. - -\subsubsection{AMD Processor P-State driver} -CONFIG\_X86\_AMD\_PSTATE [=y] \textbf{[Y]}\\ -Dieser Treiber fügt einen CPUFreq-Treiber hinzu, der einen feinkörnigen Frequenzsteuerungsbereich für die -Prozessorleistung anstelle der alten Leistungsstufen verwendet. In den ACPI-Tabellen des Systems muss -\_CPC vorhanden sein.\\ -Details finden Sie unter: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$. -Im Zweifelsfall sagen Sie N. - -\paragraph{AMD Processor P-State default mode}$~$\\ -CONFIG\_X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3] \textbf{[3]}\\ -Wählen Sie den Standardmodus, den der amd-pstate-Treiber auf unterstützter Hardware verwenden soll. -Der eingestellte Wert hat die folgenden Bedeutungen: -\begin{itemize} -\item[] 1 \texorpdfstring{$\rightarrow$}{->} Deaktiviert -\item[] 2 \texorpdfstring{$\rightarrow$}{->} Passiv -\item[] 3 \texorpdfstring{$\rightarrow$}{->} Aktiv (EPP) -\item[] 4 \texorpdfstring{$\rightarrow$}{->} Geführt -\end{itemize} -Für Details, siehe: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$.\\ -Symbol: X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3]\\ -Type : Ganzzahl (integer)\\ -Bereich (range): [1 4] - -\subsubsection{selftest for AMD Processor P-State driver} -CONFIG\_X86\_AMD\_PSTATE\_UT [=m] \textbf{[M]}\\ -Dieses Kernelmodul wird für Tests verwendet. Hier kann man mit Sicherheit M sagen. -Es kann auch ohne aktiviertes X86\_AMD\_PSTATE eingebaut werden. Derzeit werden nur Tests für amd-pstate -unterstützt. Wenn X86\_AMD\_PSTATE deaktiviert ist, kann es den Benutzern sagen, dass der Test nur auf dem -amd-pstate Treiber laufen kann, bitte setzen Sie X86\_AMD\_PSTATE aktiviert. -In der Zukunft werden Vergleichstests hinzugefügt werden. Es kann amd-pstate deaktiviert und acpi-cpufreq -aktiviert werden, um Testfälle auszuführen und dann die Testergebnisse zu vergleichen. - -\subsubsection{ACPI Processor P-State driver} -CONFIG\_X86\_ACPI\_CPUFREQ [=m] \textbf{[M]}\\ -Dieser Treiber fügt einen CPUFreq-Treiber hinzu, der die ACPI Processor Performance States nutzt. -Dieser Treiber unterstützt auch Intel Enhanced Speedstep und neuere AMD-CPUs. Um diesen Treiber als Modul -zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{acpi-cpufreq} heißen.\\ -Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall sagen Sie N. - -\paragraph{Legacy cpb sysfs knob support for AMD CPUs}$~$\\ -CONFIG\_X86\_ACPI\_CPUFREQ\_CPB [=y] \textbf{[Y]}\\ -Der powernow-k8-Treiber stellte früher einen sysfs-Regler namens \texttt{cpb} zur Verfügung, -um die Core Performance Boosting-Funktion von AMD-CPUs zu deaktivieren. Diese Datei wurde nun durch den -allgemeineren \glqq boost\grqq{}-Eintrag abgelöst. -Wenn Sie diese Option aktivieren, stellt der acpi\_cpufreq-Treiber aus Kompatibilitätsgründen den alten -Eintrag zusätzlich zum neuen \glqq boost\grqq{}-Eintrag bereit. - -\subsubsection{AMD Opteron/Athlon64 PowerNow!} -CONFIG\_X86\_POWERNOW\_K8 [=m] \textbf{[M]}\\ -Dies fügt den CPUFreq-Treiber für K8/frühe Opteron/Athlon64-Prozessoren hinzu. Unterstützung für K10 und -neuere Prozessoren ist jetzt in acpi-cpufreq enthalten. Um diesen Treiber als Modul zu kompilieren, -wählen Sie hier M: Das Modul wird \texttt{powernow-k8} heißen.\\ -Details finden Sie in $<$file:Documentation/cpu-freq/$>$. - -\subsubsection{AMD frequency sensitivity feedback powersave bias} -CONFIG\_X86\_AMD\_FREQ\_SENSITIVITY [=m] \textbf{[M]}\\ -Dies fügt dem On-Demand-Governor eine AMD-spezifische Powersave-Bias-Funktion hinzu, die es ihm ermöglicht, -auf der Grundlage von Rückmeldungen der Hardware energiebewusstere Entscheidungen über Frequenzänderungen -zu treffen (verfügbar ab AMD-Familie 16h). Durch das Hardware-Feedback erfährt die Software, wie -\glqq empfindlich\grqq{} die Arbeitslasten der CPUs gegenüber Frequenzänderungen sind. -CPU-gebundene Arbeitslasten sind empfindlicher, d.~h. sie werden bei einer Frequenzerhöhung besser funktionieren. -Speicher-/IO-gebundene Arbeitslasten reagieren weniger empfindlich, d.~h. sie werden nicht unbedingt besser, -wenn die Frequenz erhöht wird.\\ -Im Zweifelsfall sagen Sie N. - -\subsubsection{Intel Enhanced SpeedStep (deprecated)} -CONFIG\_X86\_SPEEDSTEP\_CENTRINO [=n] \textbf{[N]}\\ -Dies ist veraltet und diese Funktionalität ist nun in acpi\_cpufreq (X86\_ACPI\_CPUFREQ) integriert. -Verwenden Sie diesen Treiber anstelle von speedstep\_centrino. -Dies fügt den CPUFreq-Treiber für Enhanced SpeedStep-fähige mobile CPUs hinzu. -Dies bedeutet Intel Pentium M (Centrino) CPUs oder 64bit-fähige Intel Xeons. Um diesen Treiber als Modul -zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{speedstep-centrino} heißen.\\ -Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall wählen Sie N. - -\subsubsection{Intel Pentium 4 clock modulation} -CONFIG\_X86\_P4\_CLOCKMOD [=m] \textbf{[N]}\\ -Dies fügt den CPUFreq-Treiber für Intel Pentium 4 / XEON Prozessoren hinzu. Wenn er aktiviert ist, -senkt er die CPU-Temperatur durch Überspringen von Takten. Dieser Treiber sollte nur in Ausnahmefällen -verwendet werden, wenn eine sehr niedrige Leistung benötigt wird, da er starke Verlangsamungen und spürbare -Latenzen verursacht. Normalerweise sollte stattdessen Speedstep verwendet werden. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{p4-clockmod} genannt.\\ -Für Details werfen Sie einen Blick auf $<$file:Documentation/cpu-freq/$>$. Wenn Sie sich nicht absolut -sicher sind, wählen Sie N. - -\subsubsection*{*** shared options ***} -(gemeinsame Optionen) - -\subsection{CPU Idle \texorpdfstring{$\rightarrow$}{->}} -(CPU im Leerlauf) - -\subsubsection{CPU idle PM support} -CONFIG\_CPU\_IDLE [=y] \textbf{[Y]}\\ -CPU idle ist ein allgemeiner Mechanismus zur Unterstützung der softwaregesteuerten Verwaltung der -Prozessorleistung im Leerlauf. Es umfasst modulare plattformübergreifende Regler, die während der -Laufzeit ausgetauscht werden können. Wenn Sie eine ACPI-aktivierte Plattform verwenden, sollten Sie hier Y angeben. -PM steht für \glqq power management\grqq{} -- Verwaltung der Prozessorleistung. - -\paragraph{Ladder governor (for periodic timer tick)}$~$\\ -CONFIG\_CPU\_IDLE\_GOV\_LADDER [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\paragraph{Menu governor (for tickless system)}$~$\\ -CONFIG\_CPU\_IDLE\_GOV\_MENU [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\paragraph{Timer events oriented (TEO) governor (for tickless systems)}$~$\\ -CONFIG\_CPU\_IDLE\_GOV\_TEO [=y] \textbf{[Y]}\\ -Dieser Gouverneur implementiert eine vereinfachte Methode zur Auswahl des Ruhezustands, die sich auf -Timer-Ereignisse konzentriert und keine Steigerung der Interaktivität bewirkt. -Einige Arbeitslasten profitieren davon, und es sollte im Allgemeinen sicher zu verwenden sein.\\ -Sagen Sie hier Y, wenn Sie mit den Alternativen nicht zufrieden sind. - -\paragraph{Haltpoll governor (for virtualized systems)}$~$\\ -CONFIG\_CPU\_IDLE\_GOV\_HALTPOLL [=y] \textbf{[Y]}\\ -Dieser Gouverneur implementiert die Auswahl des Leerlaufzustands von haltpoll, der in Verbindung mit -dem haltpoll cpuidle-Treiber verwendet wird und es ermöglicht, eine bestimmte Zeit lang zu pollen, -bevor der Leerlaufzustand erreicht wird. Einige virtualisierte Arbeitslasten profitieren von dieser Funktion. - -\paragraph{Halt poll cpuidle driver}$~$\\ -CONFIG\_HALTPOLL\_CPUIDLE [=m] \textbf{[N]}\\ -Diese Option aktiviert den \glqq halt poll cpuidle\grqq{}-Treiber, der eine Abfrage vor dem Anhalten -im Gast ermöglicht (effizienter als die Abfrage im Host über halt\_poll\_ns für einige Szenarien). - -\subsection{CPUidle Driver for Intel Processors} -CONFIG\_INTEL\_IDLE [=y] \textbf{[Y]}\\ -Aktivieren Sie intel\_idle, einen cpuidle-Treiber, der das Wissen über native Intel-Hardware-Idle-Funk\-tio\-nen enthält. -Der acpi\_idle-Treiber kann zur gleichen Zeit konfiguriert werden, um Prozessoren zu behandeln, -die intel\_idle nicht unterstützt. - -\section{Bus options (PCI etc.) \texorpdfstring{$\rightarrow$}{->}} -\textit{Bus-Optionen (PCI usw.)} - -\subsection{Support mmconfig PCI config space access} -CONFIG\_PCI\_MMCONFIG [=y] \textbf{[Y]}\\ -(Unterstützung des mmconfig PCI"=Konfigurationsraumzugriffs)\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\section{Binary Emulations \texorpdfstring{$\rightarrow$}{->}} -\textit{Binäre Emulationen} - -\subsection{IA32 Emulation} -CONFIG\_IA32\_EMULATION [=y] \textbf{[N]}\\ -Code einbinden, um ältere 32-Bit-Programme unter einem 64-Bit-Kernel auszuführen. -Sie sollten dies wahrscheinlich aktivieren, es sei denn, Sie sind sich zu 100~\% sicher, -dass Sie keine 32-Bit-Programme mehr haben. - -\subsection{x32 ABI for 64-bit mode} -CONFIG\_X86\_X32\_ABI [=n] \textbf{[N]}\\ -Fügen Sie Code ein, um Binärdateien für die native 32-Bit-ABI x32 für 64-Bit-Prozessoren auszuführen. -Ein x32-Prozess erhält Zugriff auf die vollständige 64-Bit-Registerdatei und den breiten Datenpfad, -während Zeiger auf 32~Bit belassen werden, um den Speicherbedarf zu verringern. - -\section{Virtualization \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_VIRTUALIZATION [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, um Optionen für die Verwendung Ihres Linux-Hosts zur Ausführung anderer -Betriebssysteme in virtuellen Maschinen (Gäste) zu erhalten. Diese Option allein fügt keinen -Kernel-Code hinzu. Wenn Sie N sagen, werden alle Optionen in diesem Untermenü übersprungen -und deaktiviert. - -\subsection{Kernel-based Virtual Machine (KVM) support} -CONFIG\_KVM [=m] \textbf{[M]}\\ -Unterstützung für das Hosten vollständig virtualisierter Gastmaschinen mit -Hardware"=Virtualisierungserweiterungen. Sie benötigen einen relativ aktuellen Prozessor mit -Virtualisierungserweiterungen. Außerdem müssen Sie eines oder mehrere der unten aufgeführten -Prozessormodule auswählen. Dieses Modul ermöglicht den Zugriff auf die Hardware-Funktionen -über einen Geräteknoten namens /dev/kvm. Um dies als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{kvm} heißen.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{KVM for Intel (and compatible) processors support} -CONFIG\_KVM\_INTEL [=m] \textbf{[M]}\\ -Bietet Unterstützung für KVM auf Prozessoren, die mit Intels VT-Erweiterungen, auch bekannt -als Virtual Machine Extensions (VMX), ausgestattet sind. -Um dies als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{kvm-intel} genannt. - -\paragraph{Software Guard eXtension (SGX) Virtualization}$~$\\ -CONFIG\_X86\_SGX\_KVM [=y] \textbf{[Y]}\\ -Ermöglicht KVM-Gästen, SGX-Enklaven zu erstellen. Dies schließt die Unterstützung ein, -\glqq rohen\grqq{}, nicht wiederverwendbaren Enklavenspeicher für Gäste über einen Geräteknoten, -z.~B. /dev/sgx\_vepc, freizugeben. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{KVM for AMD processors support} -CONFIG\_KVM\_AMD [=m] \textbf{[M]}\\ -Bietet Unterstützung für KVM auf Prozessoren, die mit Intels VT-Erweiterungen, auch bekannt -Bietet Unterstützung für KVM auf AMD-Prozessoren, die mit den AMD-V (SVM)-Erweiterungen -ausgestattet sind. Um dies als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{kvm-amd} genannt. - -\paragraph{AMD Secure Encrypted Virtualization (SEV) support}$~$\\ -CONFIG\_KVM\_AMD\_SEV [=y] \textbf{[N]}\\ -Bietet Unterstützung für den Start von verschlüsselten VMs (SEV) und verschlüsselten VMs -mit verschlüsseltem Status (SEV-ES) auf AMD-Prozessoren. - -\subsubsection{System Management Mode emulation} -CONFIG\_KVM\_SMM [=y] \textbf{[Y]}\\ -Bietet Unterstützung für KVM zur Emulation des Systemverwaltungsmodus (SMM) in virtuellen -Maschinen. Dies kann von der Firmware der virtuellen Maschine verwendet werden, um UEFI Secure -Boot zu implementieren. - -\subsubsection{Support for Xen hypercall interface} -CONFIG\_KVM\_XEN [=y] \textbf{[Y]}\\ -Bietet KVM-Unterstützung für das Hosten von Xen HVM-Gästen und die Weitergabe von -Xen-Hyper\-auf\-rufen an den Userspace. Im Zweifelsfall sagen Sie N. - -\section{General architecture-dependent options \texorpdfstring{$\rightarrow$}{->}} -(Allgemeine architekturabhängige Optionen) - -\subsection{Kprobes} -CONFIG\_KPROBES [=y] \textbf{[Y]}\\ -Mit Kprobes können Sie an fast jeder Kerneladresse trappen und eine Callback-Funktion ausführen. -register\_kprobe() legt einen Probepoint fest und spezifiziert den Callback. -Kprobes ist nützlich für Kernel-Debugging, nicht-intrusive Instrumentierung und Tests.\\ -Im Zweifelsfall sagen Sie "N". - -\subsection{Optimize very unlikely/likely branches} -CONFIG\_JUMP\_LABEL [=y] \textbf{[Y]}\\ -Diese Option ermöglicht eine transparente Verzweigungsoptimierung, die die Ausführung bestimmter -fast-immer-wahrer oder fast-immer-falscher Verzweigungsbedingungen im Kernel noch billiger macht. -Bestimmte leistungsempfindliche Kernel-Codes wie Trace-Points, Scheduler-Funktionen, Netzwerk-Code -und KVM haben solche Verzweigungen und bieten Unterstützung für diese Optimierungstechnik. -Wenn festgestellt wird, dass der Compiler \glqq asm goto\grqq{} unterstützt, kompiliert der Kernel -solche Verzweigungen mit einer einfachen nop-Anweisung. Wenn das Bedingungsflag auf true gesetzt wird, -wird der nop-Befehl in einen Sprungbefehl umgewandelt, um den bedingten Befehlsblock auszuführen. -Diese Technik senkt den Overhead und die Belastung der Verzweigungsvorhersage des Prozessors und macht -den Kernel im Allgemeinen schneller. Die Aktualisierung der Bedingung ist zwar langsamer, aber das -kommt immer sehr selten vor. (Bei 32-Bit-x86 können die erforderlichen Optionen, die zu den -Compiler-Flags hinzugefügt werden, die Größe des Kernels leicht erhöhen). - -\subsubsection{Static key selftest} -CONFIG\_STATIC\_KEYS\_SELFTEST [=n] \textbf{[N]}\\ -Bootzeit-Selbsttest des Branch-Patching-Codes. - -\subsection{Static call selftest} -CONFIG\_STATIC\_CALL\_SELFTEST [=n] \textbf{[N]}\\ -Bootzeit-Selbsttest des Call-Patching-Codes. - -\subsection{Enable seccomp to safely execute untrusted bytecode} -CONFIG\_SECCOMP [=n] \textbf{[N]}\\ -Diese Kernel-Funktion ist nützlich für numerische Anwendungen, die während ihrer Ausführung -mit nicht vertrauenswürdigem Bytecode umgehen müssen. Durch die Verwendung von Pipes oder anderen -Transporten, die dem Prozess als Dateideskriptoren zur Verfügung gestellt werden und die -Lese-/Schreib-Syscalls unterstützen, ist es möglich, diese Anwendungen mit seccomp in ihrem eigenen -Adressraum zu isolieren. Sobald seccomp über prctl(PR\_SET\_SECCOMP) oder den seccomp()-Syscall -aktiviert ist, kann es nicht mehr deaktiviert werden, und die Task darf nur einige wenige sichere -Syscalls ausführen, die für jeden seccomp-Modus definiert sind. Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Show seccomp filter cache status in /proc/pid/seccomp\_cache} -CONFIG\_SECCOMP\_CACHE\_DEBUG [=n] \textbf{[N]}\\ -Dies ermöglicht der Schnittstelle /proc/pid/seccomp\_cache die Überwachung der -seccomp-Cache-Daten. Das Dateiformat kann sich ändern. Zum Lesen der Datei ist -CAP\_SYS\_ADMIN erforderlich. Diese Option ist nur zur Fehlersuche gedacht. -Die Aktivierung birgt das Risiko, dass ein Angreifer die seccomp-Filterlogik ableiten kann.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Stack Protector buffer overflow detection} -CONFIG\_STACKPROTECTOR [=y] \textbf{[Y]}\\ -Diese Option schaltet die GCC-Funktion \glqq stack-protector\grqq{} ein. -Diese Funktion legt am Anfang von Funktionen einen Canary-Wert (Kanarienvogelwert) auf den -Stack kurz vor der -Rücksprungadresse und überprüft den Wert kurz vor der eigentlichen Rückkehr. Stack-basierte -Pufferüberläufe (die diese Rücksprungadresse überschreiben müssen) überschreiben nun auch den -Canary-Wert, was erkannt wird und der Angriff wird dann durch eine Kernel-Panik neutralisiert. -Bei Funktionen, die ein 8-Byte- oder größeres Zeichenarray auf dem Stack haben, wird die Logik -des Stack-Protector-Canarys hinzugefügt. Diese Funktion erfordert gcc Version 4.2 oder höher, -oder eine gcc-Distribution, die die Funktion zurückportiert hat (\texttt{-fstack-protector}). -Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa -3\% aller Kernel-Funktionen hinzu, was die Kernel-Codegröße um etwa 0,3\% erhöht. - -\subsubsection{Strong Stack Protector} -CONFIG\_STACKPROTECTOR\_STRONG [=y] \textbf{[Y]}\\ -Bei Funktionen wird die Stack-Protector-Canary-Logik unter einer der folgenden Bedingungen hinzugefügt: -\begin{itemize} -\item[-] die Adresse einer lokalen Variablen wird als Teil der rechten Seite einer Zuweisung oder eines -Funktionsarguments verwendet -\item[-] die lokale Variable ist ein Array (oder eine Union, die ein Array enthält), unabhängig von Typ oder Länge des Arrays -\item[-] Lokale Variablen werden als Register verwendet -\end{itemize} -Diese Funktion erfordert gcc Version 4.9 oder höher, oder eine gcc-Distribution, die die Funktion -zurück\-por\-tiert hat (\texttt{-fstack-protector-strong}). -Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa 20\% aller -Kernel-Funktionen hinzu, was die Größe des Kernel-Codes um etwa 2\% erhöht. - -\subsection{Link Time Optimization (LTO) () \texorpdfstring{$\rightarrow$}{->}} - -\subsubsection{None} -CONFIG\_LTO\_NONE [=y] \textbf{[Y]}\\ -Erstellen Sie den Kernel normal, ohne Link Time Optimization (LTO). - -\subsection{Provide system calls for 32-bit time\_t} -CONFIG\_COMPAT\_32BIT\_TIME [=y] \textbf{[Y]}\\ -Dies ermöglicht die Unterstützung von 32 Bit time\_t zusätzlich zur Unterstützung von -64~Bit time\_t. Dies ist auf allen 32-Bit-Architekturen und 64-Bit-Architekturen als Teil -der Kompatibilitäts-Syscall-Behandlung relevant. - -\subsection{Use a virtually-mapped stack} -CONFIG\_VMAP\_STACK [=y] \textbf{[Y]}\\ -Aktivieren Sie dies, wenn Sie virtuell gemappte Kernel-Stacks mit Guard Pages verwenden wollen. -Dies führt dazu, dass Kernel-Stack-Überläufe sofort abgefangen werden und keine schwer zu -diagnostizierende Korruption verursachen. Um dies mit Software-KASAN-Modi zu verwenden, muss die -Architektur die Unterstützung von virtuellen Mappings mit echtem Schattenspeicher unterstützen -und KASAN\_VMALLOC muss aktiviert sein. - -\subsection{Support for randomizing kernel stack offset on syscall entry} -CONFIG\_RANDOMIZE\_KSTACK\_OFFSET [=y] \textbf{[Y]}\\ -Der Kernel-Stack-Offset kann (nach pt\_regs) mit etwa 5~Bits Entropie randomisiert werden, -wodurch Angriffe auf Speicherbeschädigung vereitelt werden, die auf Stack-Adress-Determinismus -oder auf die Offenlegung der Adressen von Cross-Syscalls angewiesen sind. -Die Funktion wird über den Kernel-Boot-Parameter \texttt{randomize\_kstack\_offset=on/off} gesteuert -und hat, wenn sie ausgeschaltet ist, aufgrund der Verwendung von statischen Verzweigungen -(siehe JUMP\_LABEL) keinen Overhead.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Default state of kernel stack offset randomization} -CONFIG\_RANDOMIZE\_KSTACK\_OFFSET\_DEFAULT [=y] \textbf{[Y]}\\ -Die Randomisierung des Kernel-Stack-Offsets wird durch den Kernel-Boot-Parameter\\ -\texttt{randomize\_kstack\_offset=on/off} gesteuert, und diese Konfiguration wählt den -Standard-Boot-Status. - -\subsection{Locking event counts collection} -CONFIG\_LOCK\_EVENT\_COUNTS [=y] \textbf{[Y]}\\ -Ermöglicht eine leichtgewichtige Zählung verschiedener sperrungsbezogener Ereignisse im System -mit minimalen Auswirkungen auf die Leistung. Dies verringert die Wahrscheinlichkeit, dass sich -das Anwendungsverhalten aufgrund von Zeitunterschieden ändert. Die Zählungen werden über -debugfs gemeldet. - -\subsection{GCOV-based kernel profiling \texorpdfstring{$\rightarrow$}{->}} -(GCOV-basierte Kernel-Profilierung) - -\subsubsection{Enable gcov-based kernel profiling} -CONFIG\_GCOV\_KERNEL [=n] \textbf{[N]}\\ -Diese Option aktiviert die gcov-basierte Code-Profilierung (z.~B. für Code-Abdeckungsmessungen). -Wenn Sie unsicher sind, sagen Sie N.\\[.5em] -Geben Sie zusätzlich CONFIG\_GCOV\_PROFILE\_ALL=y an, um Profilerstellungsdaten für den gesamten -Kernel zu erhalten. Um die Profilerstellung für bestimmte Dateien oder Verzeichnisse zu aktivieren, -fügen Sie eine Zeile ähnlich der folgenden in das jeweilige Makefile ein:\\[.5em] -Für eine einzelne Datei (z.~B. main.o):\\ -\indent \texttt{GCOV\_PROFILE\_main.o := y}\\[.5em] -Für alle Dateien in einem Verzeichnis:\\ -\indent \texttt{GCOV\_PROFILE := y}\\[.5em] -Um Dateien von der Profilerstellung auszuschließen, auch wenn CONFIG\_GCOV\_PROFILE\_ALL -angegeben ist, verwenden Sie:\\ -\indent \texttt{GCOV\_PROFILE\_main.o := n}\\[.5em] -und:\\ -\indent \texttt{GCOV\_PROFILE := n}\\[.5em] -Beachten Sie, dass das debugfs-Dateisystem gemountet sein muss, um auf die Profilerstellungsdaten -zugreifen zu können. - -\subsection{GCC plugins \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_GCC\_PLUGINS [=y] \textbf{[Y]}\\ -GCC-Plugins sind ladbare Module, die zusätzliche Funktionen für den Compiler bereitstellen. -Sie sind nützlich für die Laufzeitinstrumentierung und die statische Analyse.\\ -Siehe Documentation/kbuild/gcc-plugins.rst für Details. - -\subsubsection{Generate some entropy during boot and runtime} -CONFIG\_GCC\_PLUGIN\_LATENT\_ENTROPY [=n] \textbf{[N]}\\ -Mit der Eingabe von Y wird der Kernel einen Teil des Kernel-Codes instrumentieren, -um sowohl aus dem ursprünglichen als auch aus dem künstlich erzeugten Programmzustand -etwas Entropie zu gewinnen. -Dies ist insbesondere bei eingebetteten Systemen hilfreich, bei denen es normalerweise wenig -\glqq natürliche\grqq{} Entropiequellen gibt. -Der Preis ist eine gewisse Verlangsamung des Boot-Prozesses (etwa 0,5~\%) und der fork- und -irq-Verarbeitung. Beachten Sie, dass die auf diese Weise extrahierte Entropie nicht -kryptografisch sicher ist!\\ -Dieses Plugin wurde von grsecurity/PaX portiert. Mehr Informationen unter: - \begin{itemize} - \item[] \url{https://grsecurity.net/} - \item[] \url{https://pax.grsecurity.net/} - \end{itemize} - - -\section{Enable loadable module support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_MODULES [=y] \textbf{[Y]}\\ -Kernel-Module sind kleine Stücke kompilierten Codes, die in den laufenden Kernel eingefügt werden können, -anstatt dauerhaft in den Kernel eingebaut zu werden. Sie verwenden das Werkzeug -\texttt{modprobe}, um sie hinzuzufügen (und manchmal zu entfernen).\\ -Wenn Sie hier Y angeben, können viele Teile des Kernels als Module gebaut werden (indem Sie M anstelle -von Y antworten, wo dies angegeben ist):\\ -Dies ist besonders nützlich für selten verwendete Optionen, die zum Booten nicht benötigt werden. -Weitere Informationen finden Sie in den Man Pages für \texttt{modprobe}, -\texttt{lsmod}, \texttt{modinfo}, \texttt{insmod} und \texttt{rmmod}.\\ -Wenn Sie hier Y angeben, müssen Sie \texttt{make modules\_install} ausführen, um die Module unter\\ -/lib/modules/ abzulegen, wo sie von modprobe gefunden werden können (möglicherweise müssen Sie dazu -root sein). -Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Module debugging} -CONFIG\_MODULE\_DEBUG [=n] \textbf{[N]}\\ -Ermöglicht das Aktivieren/Deaktivieren von Funktionen, die Ihnen beim Debuggen von Modulen helfen können. -Auf Produktionssystemen benötigen Sie diese Optionen nicht. - -\subsection{Forced module loading} -CONFIG\_MODULE\_FORCE\_LOAD [=y] \textbf{[Y]}\\ -Erlaubt das Laden von Modulen ohne Versionsinformationen (z.~B. \texttt{modprobe --force}). -Erzwungenes Laden von Modulen setzt das `F' (forced) taint Flag und ist normalerweise eine wirklich -schlechte Idee. - -\subsection{Module unloading} -CONFIG\_MODULE\_UNLOAD [=y] \textbf{[Y]}\\ -Ohne diese Option können Sie keine Module entladen (beachten Sie, dass einige Module möglicherweise -ohnehin nicht entladbar sind), was Ihren Kernel kleiner, schneller und einfacher macht. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Forced module unloading} -CONFIG\_MODULE\_FORCE\_UNLOAD [=y] \textbf{[Y]}\\ -Mit dieser Option können Sie das Entladen eines Moduls erzwingen, auch wenn der Kernel es für unsicher -hält: Der Kernel wird das Modul entfernen, ohne darauf zu warten, dass jemand die Verwendung des Moduls -beendet (mit der Option \texttt{-f} von \texttt{rmmod}). -Dies ist hauptsächlich für Kernel-Entwickler und verzweifelte Benutzer gedacht. Wenn Sie unsicher sind, -sagen Sie N. - -\subsubsection{Tainted module unload tracking} -CONFIG\_MODULE\_UNLOAD\_TAINT\_TRACKING [=y] \textbf{[Y]}\\ -Mit dieser Option können Sie eine Aufzeichnung über jedes entladene Modul führen, das den Kernel -beschädigt hat. Zusätzlich zur Anzeige einer Liste der verknüpften (oder geladenen) Module, z.~B. -bei der Erkennung einer schlechten Seite (siehe bad\_page()), werden auch die oben genannten -Details angezeigt. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Module versioning support} -CONFIG\_MODVERSIONS [=n] \textbf{[N]}\\ -Normalerweise müssen Sie Module verwenden, die mit Ihrem Kernel kompiliert wurden. Wenn Sie -hier Y angeben, ist es manchmal möglich, Module zu verwenden, die für andere Kernel kompiliert wurden, -indem Sie genügend Informationen zu den Modulen hinzufügen, um (hoffentlich) alle Änderungen zu erkennen, -die sie mit dem von Ihnen verwendeten Kernel inkompatibel machen würden.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Source checksum for all modules} -CONFIG\_MODULE\_SRCVERSION\_ALL [=y] \textbf{[Y]}\\ -Module, die eine MODULE\_VERSION enthalten, bekommen ein zusätzliches \glqq srcversion\grqq{}-Feld in -ihre modinfo-Sektion eingefügt, das eine Summe der Quelldateien enthält, aus denen sie entstanden sind. -Dies hilft den Betreuern, genau zu sehen, welche Quelle verwendet wurde, um ein Modul zu bauen -(da andere manchmal die Modulquelle ändern, ohne die Version zu aktualisieren). Mit dieser Option wird -ein solches \glqq srcversion\grqq{}-Feld für alle Module erstellt. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Module signature verification} -CONFIG\_MODULE\_SIG [=y] \textbf{[Y]}\\ -Überprüfung von Modulen auf gültige Signaturen beim Laden: Die Signatur wird einfach an das Modul -angehängt. Für weitere Informationen siehe $<$file:Documentation/admin-guide/module-signing.rst$>$. -Beachten Sie, dass diese Option die OpenSSL-Entwicklungspakete als Kernel-Build-Abhängigkeit hinzufügt, -so dass das Signierwerkzeug seine Krypto-Bibliothek verwenden kann. Sie sollten diese Option aktivieren, -wenn Sie entweder CONFIG\_SECURITY\_LOCKDOWN\_LSM oder eine durch eine andere LSM auferlegte -Lockdown-Funktionalität verwenden wollen -- andernfalls werden unsignierte Module unabhängig von der -Lockdown-Policy ladbar sein. -!!!WARNUNG!!! Wenn Sie diese Option aktivieren, MÜSSEN Sie sicherstellen, dass das Modul nach dem -Signieren NICHT gestrippt wird. Dies schließt den Debuginfo-Strip ein, der von einigen Paketierern -(wie z.~B. rpmbuild) durchgeführt wird, sowie die Einbindung in ein initramfs, das die Modulgröße -reduzieren möchte. - -\subsubsection{Require modules to be validly signed} -CONFIG\_MODULE\_SIG\_FORCE [=n] \textbf{[N]}\\ -Ablehnung von unsignierten Modulen oder signierten Modulen, für die wir keinen Schlüssel haben. -Ohne diesen Schlüssel werden solche Module den Kernel einfach verunreinigen. - -\subsubsection{Automatically sign all modules} -CONFIG\_MODULE\_SIG\_ALL [=y] \textbf{[Y]}\\ -Signiere alle Module während make modules\_install. Ohne diese Option müssen die Module manuell -signiert werden, und zwar mit dem Werkzeug scripts/sign-file. - -\subsection{Which hash algorithm should modules be signed with? () \texorpdfstring{$\rightarrow$}{->}} -Damit wird festgelegt, welche Art von Hashing-Algorithmus bei der Signaturerstellung verwendet wird. -Dieser Algorithmus \textbf{muss} direkt in den Kernel eingebaut werden, damit eine Signaturprüfung -stattfinden kann. Es ist nicht möglich, ein signiertes Modul zu laden, das den Algorithmus enthält, -um die Signatur dieses Moduls zu überprüfen. - -\subsubsection{Sign modules with SHA-1} -CONFIG\_MODULE\_SIG\_SHA1 [=n] \textbf{[N]}\\ -\textit{Für diese Option gibt es keine Hilfe.} -\subsubsection{Sign modules with SHA-224} -CONFIG\_MODULE\_SIG\_SHA224 [=n] \textbf{[N]}\\ -\textit{Für diese Option gibt es keine Hilfe.} -\subsubsection{Sign modules with SHA-256} -CONFIG\_MODULE\_SIG\_SHA256 [=n] \textbf{[N]}\\ -\textit{Für diese Option gibt es keine Hilfe.} -\subsubsection{Sign modules with SHA-384} -CONFIG\_MODULE\_SIG\_SHA384 [=n] \textbf{[N]}\\ -\textit{Für diese Option gibt es keine Hilfe.} -\subsubsection{Sign modules with SHA-512} -CONFIG\_MODULE\_SIG\_SHA512 [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - - -\subsection{Module compression mode} -Mit dieser Option können Sie den Algorithmus auswählen, der zur Komprimierung von Modulen verwendet -wird, wenn \texttt{make modules\_install} ausgeführt wird. (oder Sie können wählen, dass Module -überhaupt nicht komprimiert werden.) Externe Module werden während der Installation ebenfalls auf -die gleiche Weise komprimiert. Für Module innerhalb einer initrd oder initramfs ist es effizienter, -stattdessen die gesamte initrd oder initramfs zu komprimieren. Dies ist vollständig kompatibel mit -signierten Modulen. Bitte beachten Sie, dass das zum Laden von Modulen verwendete Werkzeug den -entsprechenden Algorithmus unterstützen muss. module-init-tools KANN gzip unterstützen, und kmod KANN -gzip, xz und zstd unterstützen. -Ihr Build-System muss das entsprechende Komprimierungswerkzeug bereitstellen, um die Module zu -komprimieren. Im Zweifelsfall wählen Sie `None'. - -\subsubsection{None} -CONFIG\_MODULE\_COMPRESSION\_NONE [=n] \textbf{[N]}\\ -Komprimieren Sie die Module nicht. Die installierten Module sind mit der Endung .ko versehen. -\subsubsection{GZIP} -CONFIG\_MODULE\_COMPRESSION\_GZIP [=n] \textbf{[N]}\\ -Komprimieren Sie Module mit GZIP. Die installierten Module sind mit der Endung .ko.gz versehen. -\subsubsection{XZ} -CONFIG\_MODULE\_COMPRESSION\_XZ [=n] \textbf{[N]}\\ -Komprimieren Sie Module mit XZ. Die installierten Module sind mit der Endung .ko.xz versehen. -\subsubsection{ZSTD} -CONFIG\_MODULE\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\ -Komprimieren Sie Module mit ZSTD. Die installierten Module sind mit der Endung .ko.zst versehen. - -\subsection{Support in-kernel module decompression} -CONFIG\_MODULE\_DECOMPRESS [=y] \textbf{[Y]}\\ -Unterstützung für die Dekomprimierung von Kernelmodulen durch den Kernel selbst, anstatt sich auf -den Userspace zu verlassen, um diese Aufgabe zu erledigen. Nützlich, wenn die Sicherheitsrichtlinie -für das Load Pinning aktiviert ist. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Allow loading of modules with missing namespace imports} -CONFIG\_MODULE\_ALLOW\_MISSING\_NAMESPACE\_IMPORTS [=y] \textbf{[Y]}\\ -Symbole, die mit EXPORT\_SYMBOL\_NS*() exportiert werden, gelten als in einem Namespace exportiert. -Ein Modul, das ein Symbol verwendet, das mit einem solchen Namespace exportiert wurde, muss den -Namespace über MODULE\_IMPORT\_NS() importieren. Es gibt keinen technischen Grund, korrekte -Namespace-Importe zu erzwingen, aber es schafft Konsistenz zwischen Symbolen, die Namespaces -definieren und Benutzern, die Namespaces importieren, die sie verwenden. Diese Option lockert diese -Anforderung und hebt die Durchsetzung beim Laden eines Moduls auf. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Path to modprobe binary} -CONFIG\_MODPROBE\_PATH [=/sbin/modprobe] \textbf{[/sbin/modprobe]}\\ -Wenn der Kernel-Code ein Modul anfordert, geschieht dies durch den Aufruf des -User\-space-Dienst\-pro\-gramms -\texttt{modprobe}. Mit dieser Option können Sie den Pfad festlegen, in dem diese Binärdatei -zu finden ist. Dies kann zur Laufzeit über die sysctl-Datei /proc/sys/kernel/modprobe geändert werden. -Wenn Sie diese Option auf eine leere Zeichenkette setzen, wird die Fähigkeit des Kernels, -Module anzufordern, ausgeschaltet (der Userspace kann jedoch weiterhin explizit Module laden). - -\section{Enable the block layer \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_BLOCK [=y] \textbf{[Y]}\\ -Bietet dem Kernel Unterstützung für die Blockschicht.\\ -Deaktivieren Sie diese Option, um die Unterstützung für die Blockschicht aus dem Kernel zu entfernen. -Dies kann für eingebettete Geräte nützlich sein.\\ -Wenn diese Option deaktiviert ist: -\begin{itemize} - \item[-] werden Blockgerätedateien unbrauchbar, - \item[-] werden einige Dateisysteme (wie ext3) nicht mehr verfügbar. -\end{itemize} -Außerdem werden SCSI-Zeichengeräte und USB-Speicher deaktiviert, da sie verschiedene Definitionen und -Möglichkeiten der Blockschicht nutzen.\\ -Sagen Sie hier "Y", es sei denn, Sie wissen, dass Sie wirklich keine Festplatten und dergleichen einbinden wollen. - -\subsection{Legacy autoloading support} -CONFIG\_BLOCK\_LEGACY\_AUTOLOAD [=y] \textbf{[Y]}\\ -Ermöglicht das Laden von Modulen und das Erstellen von Block-Geräteinstanzen auf der Grundlage -von Zugriffen durch ihre spezielle Gerätedatei. Dies ist ein historisches Linux-Feature und ergibt -in einer udev-Welt, in der Gerätedateien bei Bedarf erstellt werden, keinen Sinn, aber Skripte, -die manuell Geräteknoten erstellen und dann losetup aufrufen, könnten sich auf dieses Verhalten -verlassen. - -\subsection{Block layer SG support v4 helper lib} -CONFIG\_BLK\_DEV\_BSGLIB [=y] \textbf{[Y]}\\ -Die Teilsysteme werden dies normalerweise bei Bedarf aktivieren. Die Benutzer müssen dies normalerweise -nicht manuell aktivieren. Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Block layer data integrity support} -CONFIG\_BLK\_DEV\_INTEGRITY [=y] \textbf{[Y]}\\ -Einige Speichermedien erlauben die Speicherung/Abrufung zusätzlicher Informationen, um die Daten zu -schützen. Die Option für die Datenintegrität auf Blockebene bietet Hooks, die von Dateisystemen verwendet -werden können, um eine bessere Datenintegrität zu gewährleisten. Sagen Sie hier Ja, wenn Sie ein -Speichergerät haben, das das T10/SCSI Data Integrity Field oder den T13/ATA External Path Protection -bietet. Im Zweifelsfall sagen Sie N. - -\subsection{Zoned block device support} -CONFIG\_BLK\_DEV\_ZONED [=y] \textbf{[Y]}\\ -Unterstützung von Blockebenen mit Zonen für Blockgeräte. Diese Option aktiviert die Unterstützung für -ZAC/ZBC/ZNS Host-verwaltete und Host-bewusste Zoned-Block-Geräte. Sagen Sie hier Ja, wenn Sie ein -ZAC-, ZBC- oder ZNS-Speichergerät haben. - -\subsection{Block layer bio throttling support} -CONFIG\_BLK\_DEV\_THROTTLING [=y] \textbf{[Y]}\\ -Unterstützung der Bio-Drosselung auf der Blockschicht. Sie kann verwendet werden, um die IO-Rate für -ein Gerät zu begrenzen. IO-Rate-Policies sind pro cgroup und man muss blkio cgroup controller mounten -und verwenden, um cgroups zu erstellen und IO-Rate-Policies pro Gerät festzulegen.\\ -Siehe Documentation/admin-guide/cgroup-v1/blkio-controller.rst für weitere Informationen. - -\subsubsection{Block throttling .low limit interface support (EXPERIMENTAL)} -CONFIG\_BLK\_DEV\_THROTTLING\_LOW [=y] \textbf{[Y]}\\ -Hinzufügen der Schnittstelle .low limit für die Blockdrosselung. Das niedrige Limit ist ein -Best-Effort-Limit zur Priorisierung von C-Gruppen. Je nach Einstellung kann das Limit verwendet werden, -um C-Gruppen in Bezug auf Bandbreite/iops zu schützen und die Festplattenressourcen besser zu nutzen.\\ -Beachten Sie, dass es sich hierbei um eine experimentelle Schnittstelle handelt, die eines Tages -geändert werden könnte. - -\subsection{Enable support for block device writeback throttling} -CONFIG\_BLK\_WBT [=y] \textbf{[Y]}\\ -Die Aktivierung dieser Option ermöglicht es der Blockschicht, gepufferte Hintergrund-Schreibvorgänge -der VM zu drosseln, so dass diese reibungsloser ablaufen und weniger Auswirkungen auf die -Vordergrundvorgänge haben. Die Drosselung erfolgt dynamisch nach einem Algorithmus, der lose auf -CoDel basiert und die Echtzeitleistung der Festplatte berücksichtigt. - -\subsubsection{Enable writeback throttling by default} -CONFIG\_BLK\_WBT\_MQ [=y] \textbf{[Y]}\\ -Aktivieren Sie die Rückschreibdrosselung standardmäßig für anforderungsbasierte Blockgeräte. - -\subsection{Enable support for latency based cgroup IO protection} -CONFIG\_BLK\_CGROUP\_IOLATENCY [=y] \textbf{[Y]}\\ -Durch die Aktivierung dieser Option wird die .latency-Schnittstelle für die IO-Drosselung aktiviert. -Der IO-Controller versucht, die durchschnittlichen IO-Latenzen unter dem konfigurierten Latenzziel -zu halten und drosselt jeden mit einem höheren Latenzziel als die betroffene Gruppe.\\ -Beachten Sie, dass es sich hierbei um eine experimentelle Schnittstelle handelt, -die eines Tages geändert werden könnte. - -\subsection{Enable support to track FC I/O Traffic across cgroup applications} -CONFIG\_BLK\_CGROUP\_FC\_APPID [=y] \textbf{[Y]}\\ -Die Aktivierung dieser Option ermöglicht die Verfolgung des FC-I/O-Verkehrs über cgroup-Anwendungen -hinweg. Sie ermöglicht es der Fabric und den Speicherzielen, den FC-Verkehr auf der Grundlage von -VM-Tags zu identifizieren, zu überwachen und zu verarbeiten, indem eine anwendungsspezifische -Identifikation in den FC-Frame eingefügt wird. - -\subsection{Enable support for cost model based cgroup IO controller} -CONFIG\_BLK\_CGROUP\_IOCOST [=y] \textbf{[Y]}\\ -Durch Aktivieren dieser Option wird die .weight-Schnittstelle für die kostenmodellbasierte -proportionale IO-Steuerung aktiviert. Der IO-Controller verteilt die IO-Kapazität zwischen -verschiedenen Gruppen auf der Grundlage ihres Anteils an der Gesamtgewichtsverteilung. - -\subsection{Cgroup I/O controller for assigning an I/O priority class} -CONFIG\_BLK\_CGROUP\_IOPRIO [=y] \textbf{[Y]}\\ -Aktivieren Sie die Schnittstelle .prio, um Anfragen eine E/A-Prioritätsklasse zuzuweisen. -Die E/A-Prioritätsklasse beeinflusst die Reihenfolge, in der ein E/A-Scheduler und Blockgeräte -Anforderungen verarbeiten. Nur einige E/A-Scheduler und einige Blockgeräte unterstützen E/A-Prioritäten. - -\subsection{Block layer debugging information in debugfs} -CONFIG\_BLK\_DEBUG\_FS [=y] \textbf{[Y]}\\ -Aufnahme von Debugging-Informationen der Blockschicht in debugfs. Diese Informationen sind vor allem -für Kernel-Entwickler nützlich, aber sie verursachen keine Kosten zur Laufzeit. Wenn Sie nicht gerade -einen Kernel für ein winziges System bauen, sollten Sie hier Y für Ja sagen. - -\subsection{Logic for interfacing with Opal enabled SEDs} -CONFIG\_BLK\_SED\_OPAL [=y] \textbf{[Y]}\\ -Erstellt die Logik für die Verbindung mit Opal-fähigen Steuergeräten. -Die Aktivierung dieser Option ermöglicht es Benutzern, Sperrbereiche für SED-Geräte mit dem -Opal-Protokoll einzurichten/zu entsperren/zu sperren. - -\subsection{Enable inline encryption support in block layer} -CONFIG\_BLK\_INLINE\_ENCRYPTION [=y] \textbf{[Y]}\\ -Bauen Sie das blk-crypto-Subsystem auf. Wenn Sie dies aktivieren, kann die Blockschicht die -Verschlüsselung handhaben, so dass Benutzer die Vorteile der Inline-Verschlüsselungshardware -nutzen kön\-nen, falls vorhanden. - -\subsubsection{Enable crypto API fallback for blk-crypto} -CONFIG\_BLK\_INLINE\_ENCRYPTION\_FALLBACK [=y] \textbf{[Y]}\\ -Wenn dies aktiviert ist, kann die Blockschicht die Inline-Verschlüsselung handhaben, indem sie -auf die Kernel-Krypto-API zurückgreift, wenn keine Inline-Verschlüsselungshardware vorhanden ist. - -\subsection{Partition Types \texorpdfstring{$\rightarrow$}{->}} -(Partitionstypen) - -\subsubsection{Advanced partition selection} -CONFIG\_PARTITION\_ADVANCED [=y] \textbf{[Y]}\\ -Geben Sie hier Y ein, wenn Sie unter Linux Festplatten verwenden möchten, die unter einem Betriebssystem -partitioniert wurden, das auf einer anderen Architektur als Ihr Linux-System läuft.\\ -Beachten Sie, dass sich die Antwort auf diese Frage nicht direkt auf den Kernel auswirkt: -Wenn Sie N angeben, überspringt der Konfigurator lediglich alle Fragen zu fremden -Partitionierungsschemata. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Acorn partition support}$~$\\ -CONFIG\_ACORN\_PARTITION [=n] \textbf{[N]}\\ -Unterstützung von Festplatten, die unter Acorn-Betriebssystemen partitioniert sind. - -\paragraph{AIX basic partition table support}$~$\\ -CONFIG\_AIX\_PARTITION [=y] \textbf{[Y]}\\ -Geben Sie hier Y ein, wenn Sie das Format der Festplattenpartitionstabelle lesen möchten, das -von IBM- oder Motorola-PowerPC-Maschinen unter AIX verwendet wird. AIX verwendet eigentlich -einen Logical Volume Manager, bei dem \glqq logische Volumes\grqq{} über eine oder mehrere -Festplatten verteilt sein können, aber dieser Treiber funktioniert nur für den einfachen Fall -von zusammenhängenden Partitionen. Andernfalls, sagen wir N. - -\paragraph{Alpha OSF partition support}$~$\\ -CONFIG\_OSF\_PARTITION [=n] \textbf{[N]}\\ -Geben Sie hier Y an, wenn Sie unter Linux Festplatten verwenden möchten, die auf einer -Alpha-Maschine partitioniert wurden. - -\paragraph{Amiga partition table support}$~$\\ -CONFIG\_AMIGA\_PARTITION [=n] \textbf{[N]}\\ -Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die unter AmigaOS -partitioniert wurden. - -\paragraph{Atari partition table support}$~$\\ -CONFIG\_ATARI\_PARTITION [=n] \textbf{[N]}\\ -Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die unter dem -Atari-Betriebs\-sys\-tem partitioniert wurden. - -\paragraph{Macintosh partition map support}$~$\\ -CONFIG\_MAC\_PARTITION [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die auf einem -Macintosh partitioniert wurden. - -\paragraph{PC BIOS (MSDOS partition tables) support}$~$\\ -CONFIG\_MSDOS\_PARTITION [=y] \textbf{[Y]}\\ -Sagen Sie hier Y. - -\subparagraph{BSD disklabel (FreeBSD partition tables) support}$~$\\ -CONFIG\_BSD\_DISKLABEL [=y] \textbf{[Y]}\\ -FreeBSD verwendet ein eigenes Partitionsschema für die Festplatten Ihres PCs. Es benötigt nur -einen Eintrag in der primären Partitionstabelle Ihrer Festplatte und verwaltet diese ähnlich -wie erweiterte DOS-Partitionen, indem es im ersten Sektor eine neue Partitionstabelle im -BSD-Disklabel-Format anlegt. Wenn Sie hier Y angeben, können Sie diese Disklabels lesen und -FreeBSD-Partitionen von Linux aus einbinden, wenn Sie oben bei \glqq UFS file system support\grqq{} -ebenfalls Y angegeben haben. Wenn Sie nicht wissen, was das alles soll, sagen Sie N. - -\subparagraph{Minix subpartition support}$~$\\ -CONFIG\_MINIX\_SUBPARTITION [=y] \textbf{[Y]}\\ -Unterstützung von Minix 2.0.0/2.0.2 Subpartitionstabellen für Linux. Sagen Sie hier Y, -wenn Sie Minix 2.0.0/2.0.2 Subpartitionen mounten und verwenden wollen. - -\subparagraph{Solaris (x86) partition table support}$~$\\ -CONFIG\_SOLARIS\_X86\_PARTITION [=y] \textbf{[Y]}\\ -Wie die meisten Systeme verwendet Solaris x86 ein eigenes Festplattenpartitionstabellenformat, -das mit allen anderen nicht kompatibel ist. Wenn Sie hier Y angeben, können Sie diese -Partitionstabellen lesen und Solaris x86-Partitionen von Linux aus einbinden, wenn Sie oben bei -\glqq UFS-Dateisystemunterstützung\grqq{} ebenfalls Y angegeben haben. - -\subparagraph{Unixware slices support}$~$\\ -CONFIG\_UNIXWARE\_DISKLABEL [=n] \textbf{[N]}\\ -Wie einige Systeme verwendet auch UnixWare eine eigene Slice-Tabelle innerhalb einer Partition -(VTOC -- Virtual Table of Contents). Ihr Format ist mit allen anderen Betriebssystemen nicht -kompatibel. Wenn Sie hier Y angeben, können Sie VTOC lesen und UnixWare-Partitionen von Linux -aus schreibgeschützt einbinden, wenn Sie oben auch Y zu \glqq UFS-Dateisystemunterstützung\grqq{} -oder \glqq System V und Coherent-Dateisystemunterstützung\grqq{} angegeben haben. -Dies wird hauptsächlich verwendet, um Daten von einem UnixWare-Rechner auf Ihren Linux-Rechner -zu übertragen, und zwar über ein Wechselmedium wie magneto-optische, ZIP- oder IDE-Wechselplatten. -Beachten Sie jedoch, dass das Programm \texttt{tar} (\texttt{man tar} oder vorzugsweise -\texttt{info tar}) eine gute Möglichkeit bietet, Dateien und Verzeichnisse zwischen Unixen -(und sogar anderen Betriebssystemen) zu transportieren. -Wenn Sie nicht wissen, was das alles soll, sagen Sie N. - -\paragraph{Windows Logical Disk Manager (Dynamic Disk) support}$~$\\ -CONFIG\_LDM\_PARTITION [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die mit dem Logical Disk Manager -von Windows 2000/XP oder Vista partitioniert wurden. Sie werden auch als -\glqq dynamische Festplatten\grqq{} bezeichnet.\\ -Beachten Sie, dass dieser Treiber nur dynamische Festplatten mit einem schützenden MBR-Label, -d.~h. einer DOS-Partitionstabelle, unterstützt. Dynamische Festplatten mit GPT-Label, wie sie mit Vista -erstellt werden können, werden noch nicht unterstützt. Windows 2000 führte das Konzept der -dynamischen Festplatten ein, um die Einschränkungen des PC-Partitionierungsschemata zu umgehen. -Der Logical Disk Manager ermöglicht es dem Benutzer, eine Festplatte neu zu partitionieren und -übergreifende, gespiegelte, striped oder RAID-Volumes zu erstellen, ohne dass ein Neustart -erforderlich ist. Normale Partitionen werden nun unter Windows 2000, XP und Vista als Basisfestplatten -bezeichnet.\\ -Für eine ausführlichere Beschreibung lesen Sie $<$file:Documentation/admin-guide/ldm.rst$>$.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Windows LDM extra logging}$~$\\ -CONFIG\_LDM\_DEBUG [=n] \textbf{[N]}\\ -Geben Sie hier Y an, wenn Sie möchten, dass LDM ausführlich protokolliert. -Dies könnte hilfreich sein, wenn der Treiber nicht wie erwartet funktioniert und Sie einen Fehler -melden möchten. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{SGI partition support}$~$\\ -CONFIG\_SGI\_PARTITION [=n] \textbf{[N]}\\ -Wählen Sie hier Y, wenn Sie das von SGI-Maschinen verwendete Format der -Festplattenpartitionstabelle lesen möchten. - -\paragraph{Ultrix partition table support}$~$\\ -CONFIG\_ULTRIX\_PARTITION [=n] \textbf{[N]}\\ -Sagen Sie hier Y, wenn Sie das von DEC (jetzt Compaq) Ultrix-Maschinen verwendete Format der -Festplattenpartitionstabelle lesen möchten. Andernfalls sagen Sie N. - -\paragraph{Sun partition tables support}$~$\\ -CONFIG\_SUN\_PARTITION [=n] \textbf{[N]}\\ -Wie die meisten Systeme verwendet SunOS ein eigenes Format für Festplattenpartitionstabellen, -das mit allen anderen nicht kompatibel ist. -Wenn Sie hier Y angeben, können Sie diese Partitionstabellen lesen und SunOS-Partitionen von Linux aus -einbinden, wenn Sie oben bei \glqq UFS-Dateisystemunterstützung\grqq{} ebenfalls Y angegeben haben. -Dies wird hauptsächlich benutzt, um Daten von einem SPARC unter SunOS zu Ihrem Linux-Rechner über ein -Wechselmedium wie magneto-optische oder ZIP-Laufwerke zu transportieren; beachten Sie jedoch, dass ein -guter portabler Weg, Dateien und Verzeichnisse zwischen Unixen (und sogar anderen Betriebssystemen) zu -transportieren, durch das \texttt{tar}-Programm (\texttt{man tar} oder vorzugsweise -\texttt{info tar}) gegeben ist. Wenn Sie nicht wissen, was das alles soll, sagen Sie N. - -\paragraph{Karma Partition support}$~$\\ -CONFIG\_KARMA\_PARTITION [=y] \textbf{[Y]}\\ -Sagen Sie hier Y, wenn Sie den Rio Karma MP3-Player mounten möchten, da dieser eine -proprietäre Partitionstabelle verwendet. - -\paragraph{EFI GUID Partition support}$~$\\ -CONFIG\_EFI\_PARTITION [=y] \textbf{[Y]}\\ -Geben Sie hier Y an, wenn Sie unter Linux Festplatten verwenden möchten, -die mit EFI GPT partitioniert wurden. - -\paragraph{SYSV68 partition table support}$~$\\ -CONFIG\_SYSV68\_PARTITION [=n] \textbf{[N]}\\ -Geben Sie hier Y ein, wenn Sie das von Motorola-Delta-Maschinen verwendete Format der -Festplattenpartitionstabelle lesen möchten (unter Verwendung von sysv68). Andernfalls sagen Sie N. - -\paragraph{Command line partition support}$~$\\ -CONFIG\_CMDLINE\_PARTITION [=n] \textbf{[N]}\\ -Sagen Sie hier Y, wenn Sie die Partitionstabelle aus bootargs lesen wollen. Das Format für die -Kommandozeile ist genau wie bei mtdparts. - -\subsection{IO Schedulers \texorpdfstring{$\rightarrow$}{->}} -(E/A-Zeitplaner) - -\subsubsection{MQ deadline I/O scheduler} -CONFIG\_MQ\_IOSCHED\_DEADLINE [=y] \textbf{[Y]}\\ -MQ-Version des Deadline-IO-Schedulers. - -\subsubsection{Kyber I/O scheduler} -CONFIG\_MQ\_IOSCHED\_KYBER [=m] \textbf{[M]}\\ -Der Kyber E/A-Scheduler ist ein Scheduler mit geringem Aufwand, der sich für Multiqueue- und andere -schnelle Geräte eignet. Bei vorgegebenen Ziellatenzen für Lese- und synchrone Schreibvorgänge passt -er die Tiefe der Warteschlangen selbst an, um dieses Ziel zu erreichen. - -\subsubsection{BFQ I/O scheduler} -CONFIG\_IOSCHED\_BFQ [=y] \textbf{[Y]}\\ -BFQ E/A-Scheduler für BLK-MQ. BFQ verteilt die Bandbreite des Geräts auf alle Prozesse entsprechend -ihrer Gewichtung, unabhängig von den Geräteparametern und bei jeder Arbeitslast. Es garantiert auch -eine niedrige Latenzzeit für interaktive und weiche Echtzeitanwendungen.\\ -Weitere Details in Dokumentation/block/bfq-iosched.rst - -\paragraph{BFQ hierarchical scheduling support}$~$\\ -CONFIG\_BFQ\_GROUP\_IOSCHED [=y] \textbf{[Y]}\\ -Aktivierung der hierarchischen Zeitplanung in BFQ unter Verwendung des blkio (cgroupss-v1) -oder io (cgroupss-v2) Controllers. - -\subparagraph{BFQ IO controller debugging}$~$\\ -CONFIG\_BFQ\_CGROUP\_DEBUG [=n] \textbf{[N]}\\ -Aktivierung einer Hilfe zur Fehlersuche. -Derzeit werden zusätzliche Statistikdateien in einer cgroup exportiert, die für die Fehlersuche -nützlich sein können. - -\section{Executable file formats \texorpdfstring{$\rightarrow$}{->}} -(Ausführbare Dateiformate) - -\subsection{Kernel support for ELF binaries} -CONFIG\_BINFMT\_ELF [=y] \textbf{[Y]}\\ -ELF (Executable and Linkable Format) ist ein Format für Bibliotheken und ausführbare Dateien, -das auf verschiedenen Architekturen und Betriebssystemen verwendet wird. -Wenn Sie hier Y angeben, kann Ihr Kernel ELF-Binärdateien ausführen und wird um etwa 13 KB vergrößert. -Die ELF-Unterstützung unter Linux hat inzwischen die traditionellen Linux a.out-Formate (QMAGIC und ZMAGIC) -fast vollständig ersetzt, da es portabel ist (was jedoch *nicht* bedeutet, dass Sie ausführbare Dateien -von verschiedenen Architekturen oder Betriebssystemen ausführen können) und die Erstellung von -Laufzeitbibliotheken sehr einfach macht. Viele neue ausführbare Dateien werden ausschließlich im -ELF-Format vertrieben. Hier sollten Sie unbedingt Y sagen. Informationen über ELF sind im ELF HOWTO -enthalten, das unter \url{http://www.tldp.org/docs.html#howto} verfügbar ist. -Wenn Sie feststellen, dass Sie nach dem Upgrade von Linux-Kernel 1.2 und der Angabe von Y hier immer -noch keine ELF-Binärdateien ausführen können (sie stürzen einfach ab), dann müssen Sie die neuesten -ELF-Laufzeitbibliotheken installieren, einschließlich \texttt{ld.so} (überprüfen Sie die Datei -$<$file:Documentation/Changes$>$ für den Ort und die neueste Version). - -\subsection{Write ELF core dumps with partial segments} -CONFIG\_CORE\_DUMP\_DEFAULT\_ELF\_HEADERS [=y] \textbf{[Y]}\\ -ELF-Core-Dump-Dateien beschreiben jede Speicherabbildung des abgestürzten Prozesses und können den -Speicherinhalt jedes einzelnen Prozesses enthalten oder auslassen. Der Inhalt eines unveränderten -Text-Mappings wird standardmäßig weggelassen. Bei einem unveränderten Text-Mapping eines ELF-Objekts -ermöglicht die Aufnahme nur der ersten Seite der Datei in einen Core-Dump die Identifizierung der -Build-ID-Bits in der Datei, ohne dass die E/A-Kosten und der Plattenplatz für das Dump des gesamten -Textes anfallen. Versionen von GDB vor 6.7 werden jedoch von ELF-Core-Dump-Dateien in diesem Format -verwirrt. Das Verhalten des Kerndumps kann pro Prozess mit der Pseudodatei /proc/PID/coredump\_filter -gesteuert werden; diese Einstellung wird vererbt. -Siehe Dokumentation/filesystems/proc.rst für Details. -Diese Konfigurationsoption ändert die Standardeinstellung von coredump\_filter, die beim Booten zu -sehen ist. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Kernel support for scripts starting with \#!} -CONFIG\_BINFMT\_SCRIPT [=y] \textbf{[Y]}\\ -(Kernel-Unterstützung für Skripte, die mit \#!, dem Shebang, anfangen) -Geben Sie hier Y an, wenn Sie interpretierte Skripte ausführen wollen, die mit \#! beginnen, -gefolgt von dem Pfad zu einem Interpreter. Sie können diese Unterstützung als Modul bauen; bis dieses -Modul jedoch geladen ist, können Sie keine Skripte ausführen. -Wenn Sie also dieses Modul aus einem initramfs laden wollen, darf der Teil des initramfs vor dem Laden -dieses Moduls nur aus kompilierten Binärdateien bestehen. Die meisten Systeme werden nicht booten, -wenn Sie hier M oder N angeben. Wenn Sie unsicher sind, sagen Sie Y. - -\subsection{Kernel support for MISC binaries} -CONFIG\_BINFMT\_MISC [=y] \textbf{[Y]}\\ -Wenn Sie hier Y sagen, wird es möglich sein, Wrapper-gesteuerte Binärformate in den Kernel einzubinden. -Dies ist vor allem dann sinnvoll, wenn Sie Programme verwenden, die einen Interpreter benötigen, wie -Java, Python, .NET oder Emacs-Lisp. Es ist auch nützlich, wenn Sie häufig DOS-Programme unter dem -Linux-DOS-Emulator DOSEMU ausführen (lesen Sie das DOSEMU-HOWTO, verfügbar unter -\url{http://www.tldp.org/docs.html#howto}). Sobald Sie eine solche Binärklasse beim Kernel registriert -haben, können Sie eines dieser Programme einfach starten, indem Sie seinen Namen an einer -Shell-Eingabeaufforderung eingeben; Linux wird es automatisch an den richtigen Interpreter weiterleiten. -Sie können auch andere nette Dinge tun.\\ -Lesen Sie die Datei $<$file:Documentation/admin-guide/binfmt-misc.rst$>$, -um zu erfahren, wie Sie diese Funktion nutzen können, -$<$file:Documentation/admin-guide/java.rst$>$, um zu erfahren, wie Sie Java-Unterstützung einbinden -können, und $<$file:Documentation/admin-guide/mono.rst$>$, um zu erfahren, wie Sie Mono-basierte -.NET-Unterstützung einbinden können. -Um binfmt\_misc zu verwenden, müssen Sie es mounten: -\texttt{mount binfmt\_misc -t binfmt\_misc /proc/sys/fs/binfmt\_misc} -Sie können hier M für Modulunterstützung sagen und später das Modul laden, wenn Sie es brauchen; -das Modul heißt \texttt{binfmt\_misc}. Wenn Sie nicht wissen, was Sie an dieser Stelle antworten sollen, -sagen Sie Y. - -\section{Memory Management options \texorpdfstring{$\rightarrow$}{->}} -(Speicherverwaltungsoptionen) - -\subsection{Support for paging of anonymous memory (swap) \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_SWAP [=y] \textbf{[Y]}\\ -Mit dieser Option können Sie wählen, ob Sie Unterstützung für so genannte Swap-Geräte oder -Swap-Dateien in Ihrem Kernel haben möchten, die dazu dienen, mehr virtuellen Speicher als -den tatsächlichen Arbeitsspeicher in Ihrem Computer bereitzustellen. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Compressed cache for swap pages} -CONFIG\_ZSWAP [=y] \textbf{[Y]}\\ -Ein leichtgewichtiger komprimierter Cache für Auslagerungsseiten. Er nimmt Seiten, die gerade ausgelagert -werden, und versucht, sie in einem dynamisch zugewiesenen RAM-basierten Speicherpool zu komprimieren. Dies -kann zu einer erheblichen E/A-Reduzierung auf dem Swap-Gerät führen und in dem Fall, in dem die -Dekomprimierung aus dem RAM schneller ist als das Lesen aus dem Swap-Gerät, auch die Arbeitslastleistung -verbessern. - -\paragraph{Enable the compressed cache for swap pages by default}$~$\\ -CONFIG\_ZSWAP\_DEFAULT\_ON [=y] \textbf{[Y]}\\ -Wenn diese Option ausgewählt ist, wird der komprimierte Cache für Auslagerungsseiten beim Booten aktiviert, -andernfalls wird er deaktiviert. Die hier getroffene Auswahl kann mit der Kernel-Kommando\-zei\-len\-option -\texttt{zswap.enabled=} überschrieben werden. - -\paragraph{Invalidate zswap entries when pages are loaded}$~$\\ -CONFIG\_ZSWAP\_EXCLUSIVE\_LOADS\_DEFAULT\_ON [=n] \textbf{[N]}\\ -Wenn diese Option ausgewählt ist, werden exklusive Lasten für zswap beim Booten aktiviert, andernfalls wird -sie deaktiviert. Wenn exklusive Ladungen aktiviert sind, wird beim Laden einer Seite aus zswap der -zswap-Eintrag sofort ungültig gemacht, anstatt ihn in zswap zu belassen, bis der Swap-Eintrag freigegeben -wird. Dadurch wird vermieden, dass sich zwei Kopien derselben Seite im Speicher befinden (komprimiert und -unkomprimiert), nachdem eine Seite aus zswap geladen wurde. Der Preis dafür ist, dass die Seite neu -komprimiert wird, wenn sie nie verschmutzt wurde und erneut ausgelagert werden muss. - -\paragraph{Default compressor () \texorpdfstring{$\rightarrow$}{->}} -Wählt den Standardkomprimierungsalgorithmus für den komprimierten Cache für Auslagerungsseiten aus. -Einen Überblick darüber, welche Leistung von einem bestimmten Kompressionsalgorithmus erwartet werden kann, -finden Sie in den Benchmarks auf der folgenden LWN-Seite: \url{https://lwn.net/Articles/751795/}\\ -Im Zweifelsfall wählen Sie \texttt{LZO}. -Die hier getroffene Auswahl kann durch Verwendung der Kernel-Befehls\-zeilen\-option -\texttt{zswap.compressor=} überschrieben werden. - -\subparagraph{Deflate}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_DEFLATE [=n] \textbf{[N]}\\ -Verwenden Sie den Deflate-Algorithmus als Standard-Komprimierungsalgorithmus. -\subparagraph{LZO}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZO [=n] \textbf{[N]}\\ -Verwenden Sie den LZO-Algorithmus als Standard-Komprimierungsalgorithmus. -\subparagraph{842}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_842 [=n] \textbf{[N]}\\ -Verwenden Sie den 842-Algorithmus als Standard-Komprimierungsalgorithmus. -\subparagraph{LZ4}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZ4 [=n] \textbf{[N]}\\ -Verwenden Sie den LZ4-Algorithmus als Standard-Komprimierungsalgorithmus. -\subparagraph{LZ4HC}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZ4HC [=n] \textbf{[N]}\\ -Verwenden Sie den LZ4HC-Algorithmus als Standard-Komprimierungsalgorithmus. -\subparagraph{zstd}$~$\\ -CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_ZSTD [=y] \textbf{[Y]}\\ -Verwenden Sie den zstd-Algorithmus als Standard-Komprimierungsalgorithmus. - -\paragraph{Default allocator () \texorpdfstring{$\rightarrow$}{->}}$~$\\ -Wählt den Standardzuweiser für den komprimierten Cache für Auslagerungsseiten aus. Die Voreinstellung ist -aus Kompatibilitätsgründen \glqq zbud\grqq{}, aber lesen Sie bitte die Beschreibung der einzelnen Zuweiser -unten, bevor Sie die richtige Wahl treffen. Die hier getroffene Auswahl kann mit der -Kernel-Kommandozeilenoption \texttt{zswap.zpool=} überschrieben werden. - -\subparagraph{zbud}$~$\\ -CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_ZBUD [=n] \textbf{[N]}\\ -Verwendung des zbud-Allokators als Standard-Allokator. - -\subparagraph{z3fold}$~$\\ -CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_Z3FOLD [=n] \textbf{[N]}\\ -Verwendung des z3fold-Allokators als Standard-Allokator. - -\subparagraph{zsmalloc}$~$\\ -CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_ZSMALLOC [=n] \textbf{[N]}\\ -Verwendung des zsmalloc-Allokators als Standard-Allokator. - -\paragraph{2:1 compression allocator (zbud) \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_ZBUD [=y] \textbf{[Y]}\\ -Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu zwei -komprimierten Seiten pro physischer Seite ausgelegt. -Dieses Design schränkt zwar die Speicherdichte ein, hat aber einfache und deterministische -Rückgewinnungseigenschaften, die es einem Ansatz mit höherer Dichte vorziehen, wenn die Rückgewinnung -verwendet wird. - -\paragraph{3:1 compression allocator (z3fold) \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_Z3FOLD [=y] \textbf{[Y]}\\ -Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu drei -komprimierten Seiten pro physischer Seite ausgelegt. -Es handelt sich um ein ZBUD-Derivat, so dass die Einfachheit und der Determinismus weiterhin gegeben sind. - -\paragraph{N:1 compression allocator (zsmalloc) \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_ZSMALLOC [=y] \textbf{[Y]}\\ -zsmalloc ist ein Slab-basierter Speicherallokator, der für die effiziente Speicherung von Seiten -verschiedener Komprimierungsstufen entwickelt wurde. Er erreicht die höchste Speicherdichte mit der -geringsten Fragmentierung. - -\subparagraph{Export zsmalloc statistics}$~$\\ -CONFIG\_ZSMALLOC\_STAT [=n] \textbf{[N]}\\ -Diese Option ermöglicht es dem Code in zsmalloc, verschiedene Statistiken über die Vorgänge in zsmalloc zu -sammeln und diese Informationen über debugfs in den Userspace zu exportieren. Wenn Sie unsicher sind, -sagen Sie N. - -\subparagraph{Maximum number of physical pages per-zspage}$~$\\ -CONFIG\_ZSMALLOC\_CHAIN\_SIZE [=8] \textbf{[8]}\\ -Diese Option legt die Obergrenze für die Anzahl der physischen Seiten fest, aus denen eine zmalloc-Seite -(zspage) bestehen kann. Die optimale zspage-Kettengröße wird für jede Größenklasse während der -Initialisierung des Pools berechnet.\\ -Eine Änderung dieser Option kann die Eigenschaften der Größenklassen -verändern, z.~B. die Anzahl der Seiten pro zspage und die Anzahl der Objekte pro zspage. -Dies kann auch zu unterschiedlichen Konfigurationen des Pools führen, da zsmalloc Größenklassen mit -ähnlichen Eigenschaften zusammenführt.\\ -Weitere Informationen finden Sie in der Dokumentation zu zsmalloc. - -\subsection{SLAB allocator options \texorpdfstring{$\rightarrow$}{->}} - -\subsubsection{Choose SLAB allocator (SLUB (Unqueued Allocator)) \texorpdfstring{$\rightarrow$}{->}} -Diese Option ermöglicht die Auswahl eines Slab-Allokators. - -\paragraph{SLAB (DEPRECATEDUnqueued Allocator)}$~$\\ -CONFIG\_SLAB\_DEPRECATED [=n] \textbf{[N]}\\ -Veraltet und soll in ein paar Zyklen entfernt werden. Ersetzt durch SLUB. Wenn Sie nicht auf SLUB umsteigen -können, wenden Sie sich bitte an linux-mm@kvack.org und an die Personen, die im Abschnitt SLAB ALLOCATOR der -MAINTAINERS-Datei aufgeführt sind, und erläutern Sie die Gründe. Der reguläre Slab-Allokator, der sich -bewährt hat und bekanntermaßen in allen Umgebungen gut funktioniert. Er organisiert Cache-Hot-Objekte in -Warteschlangen pro CPU und pro Knoten. - -\paragraph{SLUB (Unqueued Allocator)}$~$\\ -CONFIG\_SLUB [=y] \textbf{[Y]}\\ -SLUB ist ein Slab-Allokator, der die Nutzung von Cache-Zeilen minimiert, anstatt Warteschlangen von gecachten -Objekten zu verwalten (SLAB-Ansatz). Die Zwischenspeicherung pro CPU wird durch Slabs von Objekten anstelle -von Objekt-Warteschlangen realisiert. SLUB kann den Speicher effizient nutzen und verfügt über verbesserte -Diagnosefunktionen. SLUB ist die Standardwahl für einen Slab-Allokator. - -\subsubsection{Allow slab caches to be merged} -CONFIG\_SLAB\_MERGE\_DEFAULT [=y] \textbf{[Y]}\\ -Um die Fragmentierung des Kernspeichers zu verringern, können Slab-Caches zusammengelegt werden, wenn sie -die gleiche Größe und andere Merkmale aufweisen. Dies birgt das Risiko, dass Kernel-Heap-Überläufe Objekte -aus zusammengeführten Caches überschreiben können (und das Cache-Layout leichter zu kontrollieren ist), -wodurch solche Heap-Angriffe von Angreifern leichter ausgenutzt werden können. Wenn die Caches nicht gemischt -werden, können diese Arten von Angriffen normalerweise nur Objekte im selben Cache beschädigen. Um die -Zusammenführung zur Laufzeit zu deaktivieren, kann \texttt{slab\_nomerge} in der Kernel-Befehlszeile -übergeben werden. - -\subsubsection{Randomize slab freelist} -CONFIG\_SLAB\_FREELIST\_RANDOM [=y] \textbf{[Y]}\\ -Die Reihenfolge der Freelist bei der Erstellung neuer Seiten wird zufällig festgelegt. -Dieses Sicherheitsmerkmal verringert die Vorhersagbarkeit der Kernel-Slab-Zuweisung gegen Heap-Überläufe. - -\subsubsection{Harden slab freelist metadata} -CONFIG\_SLAB\_FREELIST\_HARDENED [=y] \textbf{[Y]}\\ -Viele Kernel-Heap-Angriffe zielen auf Slab-Cache-Metadaten und andere Infrastrukturen ab. -Diese Optionen bringen geringfügige Leistungseinbußen mit sich, um den Kernel-Slab-Allokator gegen gängige -Freelist-Angriffsmethoden zu härten. Einige Slab-Implementierungen haben mehr Sanity-Checking als andere. -Diese Option ist am effektivsten mit CONFIG\_SLUB. - -\subsubsection{Enable SLUB performance statistics} -CONFIG\_SLUB\_STATS [=n] \textbf{[N]}\\ -SLUB-Statistiken sind nützlich, um das Zuweisungsverhalten von SLUBs zu debuggen und Wege zur Optimierung -der Zuweisungsfunktion zu finden. Diese Funktion sollte niemals für den produktiven Einsatz aktiviert werden, -da die Führung von Statistiken die Zuweisungsfunktion um einige Prozentpunkte verlangsamt. -Der Befehl \texttt{slabinfo} unterstützt die Ermittlung der aktivsten Slabs, um herauszufinden, -welche Slabs für eine bestimmte Last relevant sind. Versuchen Sie Folgendes: \texttt{slabinfo -DA} - -\subsubsection{SLUB per cpu partial cache} -CONFIG\_SLUB\_CPU\_PARTIAL [=y] \textbf{[Y]}\\ -Partielle Zwischenspeicher pro CPU beschleunigen die Zuweisung und Freigabe von Objekten, die lokal auf einem -Prozessor liegen, zum Preis einer größeren Unbestimmtheit bei der Latenzzeit der Freigabe. Bei Überlauf -werden diese Caches geleert, was das Einnehmen von Sperren erfordert, die Latenzspitzen verursachen können. -Normalerweise würde man sich bei einem Echtzeitsystem für nein entscheiden. - -\subsubsection{Randomize slab caches for normal kmalloc} -CONFIG\_RANDOM\_KMALLOC\_CACHES [=n] \textbf{[N]}\\ -Eine Härtungsfunktion, die mehrere Kopien von Slab-Caches für die normale kmalloc-Allokation erstellt und -kmalloc veranlasst, eine zufällig auf der Grundlage der Code-Adresse auszuwählen, was es Angreifern -erschwert, verwundbare Speicherobjekte auf den Heap zu sprühen, um Speicherschwachstellen auszunutzen. -Gegenwärtig ist die Anzahl der Kopien auf 16 festgelegt, ein angemessen großer Wert, der die für verschiedene -Subsysteme oder Module zugewiesenen Speicherobjekte effektiv in verschiedene Caches aufteilt, und zwar auf -Kosten eines begrenzten Grades an Speicher- und CPU-Overhead, der mit der Hardware und der Systemauslastung -zusammenhängt. - -\subsection{Page allocator randomization} -CONFIG\_SHUFFLE\_PAGE\_ALLOCATOR [=y] \textbf{[Y]}\\ -Die Randomisierung der Seitenzuweisung verbessert die durchschnittliche Auslastung eines direkt abgebildeten -Memory-Side-Cache. In Abschnitt 5.2.27 Heterogeneous Memory Attribute Table (HMAT) der ACPI 6.2a-Spezifikation -finden Sie ein Beispiel dafür, wie eine Plattform das Vorhandensein eines speicherseitigen Cache anzeigt. -Es gibt auch zufällige Sicherheitsvorteile, da es die Vorhersagbarkeit von Seitenzuweisungen reduziert, um -SLAB\_FREELIST\_RANDOM zu ergänzen, aber die Standardgranularität des Shufflings auf MAX\_ORDER, -d.~h. die 10. Reihenfolge der Seiten wird auf der Grundlage der Cache-Nutzung auf x86 ausgewählt. -Die Randomisierung verbessert zwar die Cache-Nutzung, kann sich aber auf Plattformen ohne Cache negativ auf -die Arbeitslast auswirken. Aus diesem Grund wird die Randomisierung standardmäßig nur aktiviert, wenn zur -Laufzeit ein direkt zugeordneter Memory-Side-Cache erkannt wird. Andernfalls kann die Randomisierung mit dem -Kernel-Befehlszeilenparameter \texttt{page\_alloc.shuffle} zwangsweise aktiviert werden. -Sagen Sie Y, wenn Sie unsicher sind. - -\subsection{Disable heap randomization} -CONFIG\_COMPAT\_BRK [=n] \textbf{[N]}\\ -Die Randomisierung der Heap-Platzierung macht Heap-Exploits schwieriger, aber sie macht auch alte -Binärdateien (einschließlich aller libc5-basierten) kaputt. Diese Option ändert die Standardeinstellung beim -Booten auf Heap-Randomisierung deaktiviert und kann zur Laufzeit überschrieben werden, indem -/proc/sys/kernel/randomize\_va\_space auf 2 gesetzt wird. Auf nicht-alten Distributionen (nach 2000) -ist N normalerweise eine sichere Wahl. - -\subsection{Sparse Memory virtual memmap} -CONFIG\_SPARSEMEM\_VMEMMAP [=y] \textbf{[Y]}\\ -SPARSEMEM\_VMEMMAP verwendet eine virtuell gemappte Memmap, um texttt{pfn\_to\_page} und\\ -\texttt{page\_to\_pfn} Operationen zu optimieren. -Dies ist die effizienteste Option, wenn genügend Kernel-Res\-sour\-cen verfügbar sind. - -\subsection{Memory hotplug \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_HOTPLUG [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subsubsection{Online the newly added memory blocks by default} -CONFIG\_MEMORY\_HOTPLUG\_DEFAULT\_ONLINE [=y] \textbf{[Y]}\\ -Diese Option legt die Standardeinstellung für die Hotplug-Onlining-Richtlinie für Speicher fest\\ -(/sys/devices/system/memory/auto\_online\_blocks), die bestimmt, was mit neu hinzugefügten -Speicherbereichen geschieht. -Die Richtlinieneinstellung kann jederzeit zur Laufzeit geändert werden.\\ -Siehe Documentation/admin-guide/mm/memory-hotplug.rst für weitere Informationen. -Geben Sie hier Y an, wenn Sie möchten, dass alle Hotplug-Speicherblöcke standardmäßig im -\glqq Online\grqq{}-Zustand erscheinen. Geben Sie hier N an, wenn Sie möchten, dass die -Standardrichtlinie alle Hot-Plugged-Speicherblöcke im \glqq Offline\grqq{}-Zustand hält. - -\subsubsection{Allow for memory hot remove} -CONFIG\_MEMORY\_HOTREMOVE [=y] \textbf{[Y]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subsection{Allow for balloon memory compaction/migration} -CONFIG\_BALLOON\_COMPACTION [=y] \textbf{[Y]}\\ -Die durch das Ballooning verursachte Speicherfragmentierung kann die Anzahl der zusammenhängenden -2-MB-Speicher\-blöcke, die in einem Gastsystem verwendet werden können, erheblich verringern, was zu -Leistungseinbußen aufgrund der geringeren Anzahl transparenter großer Seiten führt, die vom Gastsystem -verwendet werden können. Das Zulassen der Verdichtung und Migration für Speicherseiten, die als Teil von -Speicher-Ballon-Geräten eingetragen sind, vermeidet das oben beschriebene Szenario und trägt zur Verbesserung -der Speicherdefragmentierung bei. - -\subsection{Allow for memory compaction} -CONFIG\_COMPACTION [=y] \textbf{[Y]}\\ -Die Verdichtung ist die einzige Speicherverwaltungskomponente, die zuverlässig Speicherblöcke hoher Ordnung -(größere, physisch zusammenhängende Blöcke) bildet. Die Seitenzuweisung ist in hohem Maße auf die Verdichtung -angewiesen, und das Fehlen dieser Funktion kann bei Speicheranforderungen hoher Ordnung zu unerwarteten -OOM-Killer-Aufrufen führen. Sie sollten diese Option nicht deaktivieren, es sei denn, es gibt wirklich einen -triftigen Grund dafür, und dann wären wir sehr daran interessiert, diesen unter -\href{mailto:linux-mm@kvack.org}{linux-mm@kvack.org} zu erfahren. - -\subsection{Free page reporting} -CONFIG\_PAGE\_REPORTING [=y] \textbf{[Y]}\\ -Die Meldung freier Seiten ermöglicht die inkrementelle Erfassung freier Seiten vom Buddy-Allokator mit -dem Ziel, diese Seiten einer anderen Einheit, z.~B. einem Hypervisor, zu melden, damit der Speicher -innerhalb des Hosts für andere Zwecke freigegeben werden kann. - -\subsection{Page migration} -CONFIG\_MIGRATION [=y] \textbf{[Y]}\\ -Ermöglicht die Migration des physischen Standorts von Seiten von Prozessen, während die virtuellen -Adressen nicht geändert werden. Dies ist in zwei Situationen nützlich. Erstens auf NUMA-Systemen, um -Seiten näher an die zugreifenden Prozessoren zu bringen. Zweitens bei der Zuweisung großer Seiten, -da durch die Migration Seiten verlagert werden können, um eine große Seitenzuweisung zu erfüllen, -anstatt sie zurückzufordern. - -\subsection{Enable KSM for page merging} -CONFIG\_KSM [=y] \textbf{[Y]}\\ -Aktivieren Sie Kernel Samepage Merging: KSM scannt in regelmäßigen Abständen die Bereiche des Adressraums -einer Anwendung, die laut einer Anwendung zusammengeführt werden können. Wenn er Seiten mit identischem -Inhalt findet, ersetzt er die vielen Instanzen durch eine einzige Seite mit diesem Inhalt und spart so -Speicher, bis eine oder eine andere Anwendung den Inhalt ändern muss. Empfohlen für die Verwendung mit KVM -oder mit anderen doppelten Anwendungen.\\ -Siehe Documentation/mm/ksm.rst für weitere Informationen: KSM ist inaktiv, bis ein Programm festgestellt hat, -dass ein Bereich MADV\_MERGEABLE ist, und root /sys/kernel/mm/ksm/run auf 1 gesetzt hat -(wenn CONFIG\_SYSFS gesetzt ist). - -\subsection{Low address space to protect from user allocation} -CONFIG\_DEFAULT\_MMAP\_MIN\_ADDR [=65536] \textbf{[65536]}\\ -Dies ist der Teil des niedrigen virtuellen Speichers, der vor der Zuweisung an den Benutzerraum geschützt werden -sollte. Wenn ein Benutzer davon abgehalten wird, auf niedrige Seiten zu schreiben, kann dies dazu beitragen, die -Auswirkungen von NULL-Zeiger-Fehlern im Kernel zu verringern. Für die meisten ia64-, ppc64- und x86-Benutzer mit -viel Adressraum ist ein Wert von 65536 angemessen und sollte keine Probleme verursachen. -Auf Arm und anderen Architekturen sollte er nicht höher als 32768 sein. Programme, die die vm86-Funktionalität nutzen oder -diesen niedrigen Adressraum abbilden müssen, benötigen CAP\_SYS\_RAWIO oder deaktivieren diesen Schutz, -indem sie den Wert auf 0 setzen. Dieser Wert kann nach dem Booten mit dem Parameter /proc/sys/vm/mmap\_min\_addr -geändert werden. - -\subsection{Enable recovery from hardware memory errors} -CONFIG\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\ -Ermöglicht die Wiederherstellung von Code nach einigen Speicherfehlern auf Systemen mit MCA-Wieder\-her\-stel\-lung. -Dadurch kann ein System auch dann weiterlaufen, wenn ein Teil des Speichers unkorrigierte Fehler aufweist. Dies -erfordert spezielle Hardwareunterstützung und in der Regel ECC-Speicher. - -\subsubsection{HWPoison pages injector} -CONFIG\_HWPOISON\_INJECT [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subsection{Transparent Hugepage Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_TRANSPARENT\_HUGEPAGE [=y] \textbf{[Y]}\\ -Transparent Hugepages erlaubt es dem Kernel, große Seiten und große tlb transparent für die Anwendungen zu -verwenden, wann immer dies möglich ist. Diese Funktion kann die Rechenleistung bestimmter Anwendungen verbessern, -indem sie Seitenfehler bei der Speicherzuweisung beschleunigt, die Anzahl der tlb-Misses verringert und das -Durchlaufen der Seitentabelle beschleunigt. -Wenn der Speicher bei eingebetteten Systemen begrenzt ist, können Sie N angeben. - -\subsubsection{Transparent Hugepage Support sysfs defaults () \texorpdfstring{$\rightarrow$}{->}} -Wählt die sysfs-Vorgaben für die transparente Hugepage-Unterstützung aus. - -\paragraph{always}$~$\\ -CONFIG\_TRANSPARENT\_HUGEPAGE\_ALWAYS [=y] \textbf{[Y]}\\ -Die ständige Aktivierung von Transparent Hugepage kann den Speicherbedarf von Anwendungen erhöhen, ohne dass -dies einen garantierten Nutzen hat, aber es funktioniert automatisch für alle Anwendungen. - -\paragraph{madvise}$~$\\ -CONFIG\_TRANSPARENT\_HUGEPAGE\_MADVISE [=n] \textbf{[N]}\\ -Die Aktivierung von Transparent Hugepage madvise bringt nur eine Leistungsverbesserung für die Anwendungen, die -madvise(MADV\_HUGEPAGE) verwenden, aber es besteht nicht die Gefahr, dass der Speicherbedarf von Anwendungen -ohne garantierten Nutzen erhöht wird. - -\subsubsection{Read-only THP for filesystems (EXPERIMENTAL)} -CONFIG\_READ\_ONLY\_THP\_FOR\_FS [=y] \textbf{[Y]}\\ -Erlaubt khugepaged, schreibgeschützte Seiten in THP zu speichern. Dies ist als experimentell gekennzeichnet, da -es sich um eine neue Funktion handelt. Schreibunterstützung für Datei-THPs wird in den nächsten Release-Zyklen -entwickelt werden. - -\subsection{Contiguous Memory Allocator} -CONFIG\_CMA [=y] \textbf{[Y]}\\ -Dadurch wird der Contiguous Memory Allocator aktiviert, der es anderen Subsystemen ermöglicht, große, physisch -zusammenhängende Speicherblöcke zuzuweisen. CMA reserviert einen Speicherbereich und erlaubt nur die Zuweisung -beweglicher Seiten aus diesem Bereich. Auf diese Weise kann der Kernel den Speicher als Pagecache verwenden, -und wenn ein Subsystem einen zusammenhängenden Bereich anfordert, werden die zugewiesenen Seiten verschoben, -um die zusammenhängende Anforderung zu bedienen. Wenn Sie unsicher sind, sagen Sie N für nein. - -\subsubsection{CMA debug messages (DEVELOPMENT)} -CONFIG\_CMA\_DEBUG [=n] \textbf{[N]}\\ -Schaltet Debug-Meldungen in CMA ein. Dies erzeugt KERN\_DEBUG-Meldungen für jeden CMA-Aufruf sowie verschiedene -Meldungen während der Verarbeitung von Aufrufen wie dma\_alloc\_from\_contiguous(). Diese Option hat keinen -Einfluss auf Warn- und Fehlermeldungen. - -\subsubsection{CMA debugfs interface} -CONFIG\_CMA\_DEBUGFS [=y] \textbf{[Y]}\\ -Schaltet die DebugFS-Schnittstelle für CMA ein. - -\subsubsection{CMA information through sysfs interface} -CONFIG\_CMA\_SYSFS [=y] \textbf{[Y]}\\ -Diese Option legt einige sysfs-Attribute offen, um Informationen von CMA zu erhalten. - -\subsubsection{Maximum count of the CMA areas} -CONFIG\_CMA\_AREAS [=7] \textbf{[7]}\\ -CMA ermöglicht es, CMA-Bereiche für bestimmte Zwecke zu erstellen, die hauptsächlich als privater Bereich des -Geräts verwendet werden. Mit diesem Parameter wird die maximale Anzahl von CMA-Bereichen im System festgelegt. -Wenn Sie unsicher sind, belassen Sie den Standardwert \glqq 7\grqq{} bei UMA und -\glqq 19\grqq{} bei NUMA. - -\subsection{Track memory changes} -CONFIG\_MEM\_SOFT\_DIRTY [=y] \textbf{[Y]}\\ -Diese Option ermöglicht die Verfolgung von Speicheränderungen durch Einführung eines Soft-Dirty-Bits auf -pte-s. Dieses Bit wird gesetzt, wenn jemand in eine Seite schreibt, genau wie das reguläre Dirty Bit, aber -im Gegensatz zu letzterem kann es von Hand gelöscht werden. Siehe Documentation/admin-guide/mm/soft-dirty.rst -für weitere Details. - -\subsection{Defer initialisation of struct pages to kthreads} -CONFIG\_DEFERRED\_STRUCT\_PAGE\_INIT [=n] \textbf{[N]}\\ -Normalerweise werden alle Strukturseiten beim Frühstart in einem einzigen Thread initialisiert. Auf sehr -großen Rechnern kann dies sehr viel Zeit in Anspruch nehmen. Wenn diese Option gesetzt ist, wird bei großen -Maschinen eine Teilmenge der memmap beim Booten aufgerufen und der Rest parallel initialisiert. Dies kann -sich auf die Leistung von Aufgaben auswirken, die zu Beginn der Lebensdauer des Systems ausgeführt werden, -bis diese kthreads die Initialisierung abgeschlossen haben. - -\subsection{Enable idle page tracking} -CONFIG\_IDLE\_PAGE\_TRACKING [=y] \textbf{[Y]}\\ -Diese Funktion ermöglicht es, die Anzahl der Benutzerseiten zu schätzen, die in einem bestimmten Zeitraum -nicht berührt wurden. Diese Information kann nützlich sein, um die Grenzen der Speichergruppen und/oder die -Platzierung von Aufträgen innerhalb eines Rechenclusters zu optimieren.\\ -Siehe Documentation/admin-guide/mm/idle\_page\_tracking.rst für weitere Einzelheiten. - -\subsection{Device memory (pmem, HMM, etc...) hotplug support} -CONFIG\_ZONE\_DEVICE [=y] \textbf{[Y]}\\ -Die Hotplug-Unterstützung für Gerätespeicher ermöglicht es, pmem oder andere vom Gerätetreiber entdeckte -Speicherregionen in der Memmap zu etablieren. Dies ermöglicht pfn\_to\_page()-Lookups von ansonsten -\glqq gerätephysikalischen\grqq{} Adressen, was unter anderem für die Verwendung einer DAX-Zuordnung -in einer O\_DIRECT-Operation erforderlich ist. Wenn FS\_DAX aktiviert ist, dann sagen Sie Y. - -\subsection{Unaddressable device memory (GPU memory, ...)} -CONFIG\_DEVICE\_PRIVATE [=y] \textbf{[Y]}\\ -Ermöglicht die Erstellung von Strukturseiten zur Darstellung von nicht adressierbarem Gerätespeicher, -d.~h. Speicher, auf den nur vom Gerät (oder einer Gruppe von Geräten) aus zugegriffen werden kann. -Wahrscheinlich sollten Sie auch HMM\_MIRROR auswählen. - -\subsection{Collect percpu memory statistics} -CONFIG\_PERCPU\_STATS [=n] \textbf{[N]}\\ -Diese Funktion sammelt Statistiken und stellt sie über debugfs zur Verfügung. Die Informationen umfassen -globale und pro Chunk-Statistiken, die dazu beitragen können, die Speichernutzung der CPU zu verstehen. - -\subsection{Enable infrastructure for get\_user\_pages()-related unit tests} -CONFIG\_GUP\_TEST [=n] \textbf{[N]}\\ -Stellt /sys/kernel/debug/gup\_test zur Verfügung, das wiederum eine Möglichkeit bietet, ioctl-Aufrufe zu -machen, die kernelbasierte Unit-Tests für die get\_user\_pages*()- und pin\_user\_pages*()-Familie von -API-Aufrufen starten können. Diese Tests umfassen Benchmark-Tests für die schnellen Varianten von -get\_user\_pages*() und pin\_user\_pages*() sowie Smoke-Tests für die nicht schnellen Varianten. -Es gibt auch einen Untertest, der die Ausführung von dump\_page() auf bis zu acht Seiten -(ausgewählt durch Befehlszeilen-Args) innerhalb des Bereichs der User-Space-Adressen ermöglicht. -Diese Seiten werden entweder über pin\_user\_pages*() oder über get\_user\_pages*() angeheftet, wie durch -andere Befehlszeilenargumente angegeben.\\ -Siehe tools/testing/selftests/mm/gup\_test.c - -% 13.23 -\subsection{Enable a module to run time tests on dma\_pool} -CONFIG\_DMAPOOL\_TEST [=n] \textbf{[N]}\\ -Stellt ein Testmodul zur Verfügung, das viele Blöcke unterschiedlicher Größe alloziert und freigibt und -berichtet, wie lange es dauert. Damit soll ein konsistenter Weg gefunden werden, um zu messen, wie sich -Änderungen an den dma\_pool\_alloc/free-Routinen auf die Leistung auswirken. - -\subsection{Anonymous VMS name support} -CONFIG\_ANON\_VMA\_NAME [=y] \textbf{[Y]}\\ -Erlaubt die Benennung anonymer virtueller Speicherbereiche. Mit dieser Funktion können virtuellen -Speicherbereichen Namen zugewiesen werden.\\ -Die zugewiesenen Namen können später aus /proc/pid/maps und -/proc/pid/smaps abgerufen werden und helfen bei der Identifizierung einzelner anonymer Speicherbereiche. -Die Zuweisung eines Namens für einen anonymen virtuellen Speicherbereich kann verhindern, dass dieser -Bereich aufgrund des unterschiedlichen Namens mit benachbarten virtuellen Speicherbereichen zusammengelegt -wird. - -\subsection{Enable userfaultfd() system call} -CONFIG\_USERFAULTFD [=y] \textbf{[Y]}\\ -Aktivieren Sie den Systemaufruf userfaultfd(), der das Abfangen und Behandeln von Seitenfehlern im -Userland ermöglicht. - -\subsection{Userfaultfd write protection support for shmem/hugetlbfs} -CONFIG\_PTE\_MARKER\_UFFD\_WP [=y] \textbf{[Y]}\\ -Ermöglicht die Erstellung von Marker-PTEs für den Userfaultfd-Schreibschutz. -Sie ist erforderlich, um den userfaultfd-Schreibschutz für dateigebundene Speichertypen wie shmem -und hugetlbfs zu aktivieren. - -\subsection{Multi-Gen LRU} -CONFIG\_LRU\_GEN [=y] \textbf{[Y]}\\ -Eine hochleistungsfähige LRU-Implementierung zur Überbelegung von Speicher.\\ -Siehe Documentation/admin-guide/mm/multigen\_lru.rst für Details. - -\subsubsection{Enable by default} -CONFIG\_LRU\_GEN\_ENABLED [=y] \textbf{[Y]}\\ -Mit dieser Option wird das Multi-Gen-LRU standardmäßig aktiviert. - -\subsubsection{Full stats for debugging} -CONFIG\_LRU\_GEN\_STATS [=n] \textbf{[N]}\\ -Aktivieren Sie diese Option nicht, es sei denn, Sie möchten sich die historischen Statistiken der -ausgeschiedenen Generationen zu Fehlersuchzwecken ansehen. -Diese Option hat einen Speicher-Overhead pro memcg und pro Knoten. - -\subsection{Data Access Monitoring \texorpdfstring{$\rightarrow$}{->}} -(Überwachung des Datenzugriffs) - -\subsubsection{DAMON: Data Access Monitoring Framework} -CONFIG\_DAMON [=y] \textbf{[Y]}\\ -Damit wird ein Rahmen geschaffen, der es den Kernel-Subsystemen ermöglicht, die Zugriffshäufigkeit der -einzelnen Speicherbereiche zu überwachen. Diese Informationen können für eine leistungsorientierte -Speicherverwaltung auf DRAM-Ebene nützlich sein. -Weitere Informationen finden Sie unter\\ -\url{https://damonitor.github.io/doc/html/latest-damon/index.html}. - -\paragraph{Data access monitoring operations for virtual address spaces}$~$\\ -CONFIG\_DAMON\_VADDR [=y] \textbf{[Y]}\\ -Damit werden die Standardoperationen zur Überwachung des Datenzugriffs für DAMON erstellt, die -für virtuelle Adressräume funktionieren. - -\paragraph{Data access monitoring operations for the physical address space}$~$\\ -CONFIG\_DAMON\_PADDR [=y] \textbf{[Y]}\\ -Damit werden die Standardvorgänge zur Datenzugriffsüberwachung für DAMON erstellt, -die für den physischen Adressraum funktionieren. - -\subsubsection{DAMON sysfs interface} -CONFIG\_DAMON\_SYSFS [=y] \textbf{[Y]}\\ -Dies bildet die sysfs-Schnittstelle für DAMON. Der Benutzerbereich kann die Schnittstelle für -die Über"-wachung beliebiger Datenzugriffe verwenden. - -\subsubsection{DAMON debugfs interface (DEPRECATED!)} -CONFIG\_DAMON\_DBGFS [=y] \textbf{[N]}\\ -Damit wird die debugfs-Schnittstelle für DAMON erstellt. Die Benutzerraum-Administratoren können -die Schnittstelle für die Überwachung beliebiger Datenzugriffe verwenden. Wenn Sie unsicher sind, -sagen Sie N.\\ -Dies ist veraltet, daher sollten Benutzer auf die sysfs-Schnittstelle (DAMON\_SYSFS) umsteigen. -Wenn Sie auf diese Schnittstelle angewiesen sind und nicht umsteigen können, melden Sie bitte -Ihren Anwendungsfall an damon@lists.linux.dev und linux-mm@kvack.org. - -\subsubsection{Build DAMON-based reclaim (DAMON\_RECLAIM)} -CONFIG\_DAMON\_RECLAIM [=y] \textbf{[Y]}\\ -Damit wird das DAMON-basierte Reklamationssubsystem aufgebaut. Es findet Seiten, auf die lange -Zeit nicht mehr mit DAMON zugegriffen wurde (Cold) und fordert diese zurück. Dies wird als -proaktive und leichtgewichtige Rückgewinnung bei geringem Speicherdruck vorgeschlagen, während -die traditionelle, auf Seitenscans basierende Rückgewinnung bei hohem Druck verwendet wird. - -\subsubsection{Build DAMON-based LRU-lists sorting (DAMON\_LRU\_SORT)} -CONFIG\_DAMON\_LRU\_SORT [=y] \textbf{[Y]}\\ -Damit wird das DAMON-basierte LRU-Listensortier-Subsystem aufgebaut. Es versucht, häufig -zugegriffene (heiße) Seiten zu schützen, während selten zugegriffene (kalte) Seiten unter -Speicherdruck zuerst zurückgefordert werden. - -\section{Networking support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NET [=y] \textbf{[Y]}\\ -Wenn Sie nicht wirklich wissen, was Sie tun, sollten Sie hier Y sagen. Der Grund dafür ist, -dass einige Programme die Netzwerkunterstützung des Kernels benötigen, auch wenn sie auf einem -eigenständigen Rechner laufen, der nicht mit einem anderen Computer verbunden ist. Wenn Sie von -einem älteren Kernel aufrüsten, sollten Sie auch Ihre Netzwerkwerkzeuge aktualisieren, da -Änderungen am Kernel und an den Werkzeugen oft Hand in Hand gehen. Die Werkzeuge sind in dem -Paket \texttt{net-tools} enthalten, dessen Standort und Versionsnummer in -$<$file:Documentation/Changes$>$ angegeben sind.\\ -Für eine allgemeine Einführung in Linux-Netzwerke ist es sehr empfehlenswert, -das NET-HOWTO zu lesen, das unter -\url{http://www.tldp.org/docs.html#howto} verfügbar ist. - -\subsection{Networking options \texorpdfstring{$\rightarrow$}{->}} -(Vernetzungsoptionen) - -\subsubsection{Packet socket} -CONFIG\_PACKET [=y] \textbf{[Y]}\\ -Das Packet-Protokoll wird von Anwendungen verwendet, die direkt mit Netzwerkgeräten kommunizieren, -ohne dass ein dazwischenliegendes Netzwerkprotokoll im Kernel implementiert ist, z.~B. tcpdump. -Wenn Sie wollen, dass diese Anwendungen funktionieren, wählen Sie Y. Um diesen Treiber als Modul -zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{af\_packet} heißen.\\ -Wenn Sie unsicher sind, wählen Sie Y. - -\paragraph{Packet: sockets monitoring interface}$~$\\ -CONFIG\_PACKET\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die PF\_PACKET-Sockel-Überwachungsschnittstelle, die vom Werkzeug -\texttt{ss} verwendet wird. Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Unix domain sockets} -CONFIG\_UNIX [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, wird die Unterstützung für Unix-Domain-Sockets einbezogen; -Sockets sind der Standard-Unix-Mechanismus für den Aufbau von und den Zugriff auf -Netzwerkverbindungen. Viele häufig verwendete Programme wie das X-Window-System und syslog -verwenden diese Sockets, auch wenn Ihr Rechner nicht an ein Netzwerk angeschlossen ist. -Wenn Sie nicht gerade an einem eingebetteten System oder etwas Ähnlichem arbeiten, sollten Sie -hier also unbedingt Y sagen. Sagen Sie Y, wenn Sie nicht genau wissen, was Sie tun. - -\paragraph{UNIX: socket monitoring interface}$~$\\ -CONFIG\_UNIX\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die vom Tool \texttt{ss} verwendete UNIX-Socket-Überwachungsschnittstelle. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Transport Layer Security support} -CONFIG\_TLS [=m] \textbf{[M]}\\ -Aktivierung der Kernel-Unterstützung für das TLS-Protokoll. Dadurch kann die symmetrische -Verschlüsselung des TLS-Protokolls im Kernel durchgeführt werden. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Transport Layer Security HW offload}$~$\\ -CONFIG\_TLS\_DEVICE [=y] \textbf{[Y]}\\ -Aktivierung der Kernel-Unterstützung für die HW-Auslagerung des TLS-Protokolls. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Transport Layer Security TCP stack bypass}$~$\\ -CONFIG\_TLS\_TOE [=n] \textbf{[N]}\\ -Aktivierung der Kernel-Unterstützung für das Legacy-HW-Offload des TLS-Protokolls, das mit der -Semantik des Linux-Netzwerkstacks inkompatibel ist. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Transformation user configuration interface} -CONFIG\_XFRM\_USER [=y] \textbf{[Y]}\\ -Unterstützung für Transformation(XFRM)-Benutzerkonfigurationsschnittstelle wie IPsec, die von -nativen Linux-Tools verwendet wird. Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Compatible ABI support}$~$\\ -CONFIG\_XFRM\_USER\_COMPAT [=n] \textbf{[N]}\\ -Transformation(XFRM)-Benutzerkonfigurationsschnittstelle wie IPsec, die von kompatiblen -Linux"=Anwendungen verwendet wird. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Transformation virtual interface} -CONFIG\_XFRM\_Interface [=m] \textbf{[M]}\\ -Damit wird eine virtuelle Schnittstelle zum Routen des IPsec-Verkehrs bereitgestellt. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Transformation sub policy support} -CONFIG\_XFRM\_SUB\_POLICY [=y] \textbf{[Y]}\\ -Unterstützung von Unterrichtsrichtlinien für Entwickler. Durch die Verwendung der -Unterrichtlinie mit der Hauptrichtlinie können zwei Richtlinien gleichzeitig auf dasselbe -Paket angewendet werden. Eine Richtlinie, die kürzer im Kernel lebt, sollte eine Unterrichtlinie -sein. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Transformation migrate database} -CONFIG\_XFRM\_MIGRATE [=y] \textbf{[Y]}\\ -Eine Funktion zur dynamischen Aktualisierung von Locator(s) einer bestimmten -IPsec"=Sicherheitsassoziation. Diese Funktion ist z.~B. in einer mobilen IPv6-Umgebung mit -IPsec-Konfiguration erforderlich, in der mobile Knoten ihren Verbindungspunkt zum Internet -ändern. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Transformation statistics} -CONFIG\_XFRM\_STATISTICS [=y] \textbf{[Y]}\\ -Diese Statistik ist keine SNMP/MIB-Spezifikation, sondern zeigt Statistiken über -Transformationsfehler (oder Fast-Fehler) bei der Paketverarbeitung für Entwickler. Wenn Sie -unsicher sind, sagen Sie N. - -\subsubsection{PF\_KEY sockets} -CONFIG\_NET\_KEY [=m] \textbf{[M]}\\ -PF\_KEYv2-Buchsenfamilie, kompatibel zu KAME-Buchsen. Sie sind erforderlich, wenn Sie die von -KAME portierten IPsec-Tools verwenden wollen. Sagen Sie Y, wenn Sie nicht wissen, was Sie tun. - -\paragraph{PF\_KEY MIGRATE}$~$\\ -CONFIG\_NET\_KEY\_MIGRATE [=y] \textbf{[Y]}\\ -Hinzufügen einer PF\_KEY MIGRATE Nachricht zur PF\_KEYv2 Socket Familie. Die PF\_KEY -MIGRATE"=Nachricht wird zur dynamischen Aktualisierung von Locator(s) einer bestimmten -IPsec"=Sicherheitsassoziation verwendet. Diese Funktion ist z.~B. in einer mobilen -IPv6"=Umgebung mit IPsec-Konfiguration erforderlich, in der mobile Knoten ihren Verbindungspunkt -zum Internet ändern. Detaillierte Informationen sind im Internet-Entwurf -$<$draft-sugimoto-mip6-pfkey-migrate$>$ zu finden. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{SMC socket protocol family} -CONFIG\_SMC [=m]] \textbf{[M]}\\ -SMC-R bietet eine \glqq Sockets over RDMA\grqq{}-Lösung, die die RDMA over Converged Ethernet -(RoCE)-Technologie nutzt, um AF\_INET-TCP-Verbindungen transparent zu aktualisieren. Die -Linux"=Implementierung der SMC-R-Lösung ist als separate Socket-Familie SMC konzipiert. -Wählen Sie diese Option, wenn Sie SMC-Socket-Anwendungen ausführen möchten. - -\paragraph{SMC socket protocol family}$~$\\ -CONFIG\_SMC\_DIAG [=m]] \textbf{[M]}\\ -Unterstützung für die SMC-Socket-Überwachungsschnittstelle, die von Tools wie \texttt{smcss} verwendet -wird. Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{XDP sockets} -CONFIG\_XDP\_SOCKETS [=y]] \textbf{[Y]}\\ -XDP-Sockets ermöglichen einen Kanal zwischen XDP-Programmen und Userspace-Anwendungen. - -\paragraph{XDP sockets: monitoring interface}$~$\\ -CONFIG\_XDP\_SOCKETS\_DIAG [=m]] \textbf{[M]}\\ -Unterstützung für die vom \texttt{ss}-Tool verwendete PF\_XDP-Socket-Überwachungsschnittstelle. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{TCP/IP networking} -CONFIG\_INET [=y]] \textbf{[Y]}\\ -Dies sind die Protokolle, die im Internet und in den meisten lokalen Ethernets verwendet werden. -Es wird dringend empfohlen hier Y anzugeben (dadurch wird Ihr Kernel um etwa 400~KB vergrößert), -da einige Programme (z.~B. das X-Window-System) TCP/IP verwenden, auch wenn Ihr Rechner nicht -mit einem anderen Computer verbunden ist. Sie erhalten das sogenannte Loopback-Gerät, mit dem -Sie sich selbst anpingen können (was ein großer Spaß ist!). Eine ausgezeichnete Einführung in -die Linux-Netzwerktechnik finden Sie im Linux Networking HOWTO, erhältlich bei -\url{http://www.tldp.org/docs.html#howto}. Wenn Sie hier Y sagen -und auch zu \glqq /proc file system support\grqq{} und \glqq Sysctl support\grqq{} unten, -können Sie verschiedene Aspekte des Verhaltens des TCP/IP-Codes ändern, indem Sie in die -(virtuellen) Dateien in /proc/sys/net/ipv4/* schreiben; die Optionen werden in der Datei -$<$file:Documentation/networking/ip-sysctl.rst$>$ erläutert. -Kurze Antwort: Sagen Sie Y. - -\paragraph{IP: multicasting}$~$\\ -CONFIG\_IP\_MULTICAST [=y] \textbf{[Y]}\\ -Dabei handelt es sich um einen Code zur gleichzeitigen Adressierung mehrerer vernetzter Computer, -der Ihren Kernel um etwa 2~KB vergrößert. Sie brauchen Multicasting, wenn Sie am MBONE teilnehmen -wollen, einem Netz mit hoher Bandbreite über dem Internet, das Audio- und Videoübertragungen -überträgt. Weitere Informationen über MBONE finden Sie im WWW unter -\url{https://www.savetz.com/mbone/}. -Für die meisten Leute ist es sicher, N zu sagen. - -\paragraph{IP: advanced router}$~$\\ -CONFIG\_IP\_ADVANCED\_ROUTER [=y] \textbf{[Y]}\\ -Wenn Sie beabsichtigen, Ihren Linux-Rechner hauptsächlich als Router zu betreiben, -d.~h. als Com\-pu\-ter, der Netz\-werk\-pakete weiterleitet und umverteilt, sagen Sie Y; -Ihnen werden dann mehrere Optionen angezeigt, die eine genauere Kontrolle über den -Routing"=Prozess ermöglichen.\\ -Die Antwort auf diese Frage wirkt sich nicht direkt auf den Kernel aus: Wenn Sie mit N antworten, -überspringt der Konfigurator einfach alle Fragen zum erweiterten Routing. -Beachten Sie, dass Ihr Rechner nur dann als Router fungieren kann, wenn Sie die IP"=Weiterleitung -in Ihrem Kernel aktivieren; dies können Sie tun, indem Sie \glqq /proc file system support\grqq{} -und \glqq Sysctl support\grqq{} mit Y beantworten und die folgende Zeile\\[.5em] -\texttt{echo "1" > /proc/sys/net/ipv4/ip\_forward}\\[.5em] -beim Booten ausführen, nachdem das Dateisystem /proc eingehängt wurde.\\ -Wenn Sie die IP-Weiterleitung einschalten, sollten Sie den rp\_filter in Betracht ziehen, der -eingehende Pakete automatisch zurückweist, wenn der Routing-Tabelleneintrag für ihre Quelladresse -nicht mit der Netzwerkschnittstelle übereinstimmt, an der sie ankommen. Dies hat -Sicherheitsvorteile, weil es das so genannte IP-Spoofing verhindert, kann aber Probleme bereiten, -wenn Sie asymmetrisches Routing verwenden (Pakete von Ihnen zu einem Host nehmen einen anderen -Weg als Pakete von diesem Host zu Ihnen) oder wenn Sie einen nicht routingfähigen Host betreiben, -der mehrere IP-Adressen auf verschiedenen Schnittstellen hat. Um rp\_filter einzuschalten, -verwenden Sie: - -\texttt{echo 1 $>$ /proc/sys/net/ipv4/conf//rp\_filter}\\ -oder - -\texttt{echo 1 $>$ /proc/sys/net/ipv4/conf/all/rp\_filter}\\ -Beachten Sie, dass einige Distributionen dies in Startskripten aktivieren. -Für Details über rp\_filter strict und loose mode lesen Sie -$<$file:Documentation/networking/ip-sysctl.rst$>$. Wenn Sie unsicher sind, geben Sie hier N an. - -\subparagraph{FIB TRIE statistics}$~$\\ -CONFIG\_IP\_FIB\_TRIE\_STATS [=y] \textbf{[Y]}\\ -Behalten Sie die Statistiken über die Struktur der FIB TRIE-Tabelle im Auge. Nützlich zum Testen -und Messen der TRIE-Leistung. - -\subparagraph{IP: policy routing}$~$\\ -CONFIG\_IP\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\ -Normalerweise entscheidet ein Router, was mit einem empfangenen Paket zu tun ist, und zwar -ausschließlich auf der Grundlage der endgültigen Zieladresse des Pakets. Wenn Sie hier Y angeben, -kann der Linux-Router auch die Quelladresse des Pakets berücksichtigen. Darüber hinaus kann auch -das TOS-Feld (Type-Of-Service) des Pakets für Routing-Entscheidungen verwendet werden.\\ -Weitere Informationen finden Sie in der Linux-Dokumentation Advanced Routing and Traffic Control -unter \url{https://lartc.org/howto/lartc.rpdb.html}. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IP: equal cost multipath}$~$\\ -CONFIG\_IP\_ROUTE\_MULTIPATH [=y] \textbf{[Y]}\\ -Normalerweise geben die Routing-Tabellen eine einzige Aktion an, die für ein bestimmtes Paket auf -deterministische Weise durchgeführt wird. Wenn Sie hier jedoch Y sagen, ist es möglich, mehrere -Aktionen an ein Paketmuster zu knüpfen und damit mehrere alternative Wege für diese Pakete -festzulegen. Der Router betrachtet alle diese Pfade als gleich teuer und wählt einen von ihnen -auf nicht-deterministische Weise aus, wenn ein passendes Paket eintrifft. - -\subparagraph{IP: verbose route monitoring}$~$\\ -CONFIG\_IP\_ROUTE\_VERBOSE [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, was empfohlen wird, gibt der Kernel ausführliche Meldungen über das -Routing aus, zum Beispiel Warnungen über empfangene Pakete, die seltsam aussehen und auf einen -Angriff oder ein falsch konfiguriertes System hindeuten könnten. Die Informationen werden vom -klogd-Daemon verarbeitet, der für die Kernelmeldungen zuständig ist (\glqq man klogd\grqq{}). - -\paragraph{IP: kernel level autoconfiguration}$~$\\ -CONFIG\_IP\_ADVANCED\_ROUTER [=n] \textbf{[N]}\\ -Dies ermöglicht die automatische Konfiguration der IP-Adressen von Geräten und der Routing-Tabelle -beim Booten des Kernels auf der Grundlage von Informationen, die entweder über die -Kernel-Befehlszeile oder über BOOTP- oder RARP-Protokolle bereitgestellt werden. -Sie müssen Y nur für plattenlose Maschinen angeben, die zum Booten Netzwerkzugriff benötigen -(in diesem Fall sollten Sie auch Y für \glqq Root file system on NFS\grqq{} angeben), -da alle anderen Maschinen das Netzwerk in ihren Startskripten konfigurieren. - -\paragraph{IP: tunneling}$~$\\ -CONFIG\_NET\_IPIP [=m] \textbf{[M]}\\ -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über -einen Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dieser spezielle Tunneling-Treiber -implementiert die Verkapselung von IP innerhalb von IP, was sich zwar ziemlich sinnlos anhört, aber -nützlich sein kann, wenn Sie Ihren (oder einen anderen) Rechner in einem anderen Netz erscheinen lassen -wollen, als er tatsächlich ist, oder wenn Sie die Möglichkeiten von Mobile-IP nutzen wollen -(wodurch Laptops nahtlos zwischen Netzen wechseln können, ohne ihre IP-Adressen zu ändern). Wenn Sie -diese Option mit Y bestätigen, werden zwei Module ( = Code, der in den laufenden Kernel eingefügt und -aus ihm entfernt werden kann, wann immer Sie wollen) erzeugt. Die meisten Leute werden das nicht -brauchen und können N sagen. - -\paragraph{IP: GRE demultiplexer}$~$\\ -CONFIG\_NET\_IPGRE\_DEMUX [=m] \textbf{[M]}\\ -Dies ist ein Hilfsmodul zum Demultiplexen von GRE-Paketen anhand von GRE-Versionsfeldkriterien. -Erforderlich für die Module \texttt{ip\_gre} und \texttt{pptp}. - -\paragraph{IP: GRE tunnels over IP}$~$\\ -CONFIG\_NET\_IPGRE [=m] \textbf{[M]}\\ -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und -über einen Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dieser spezielle -Tunneling-Treiber implementiert GRE (Generic Routing Encapsulation) und ermöglicht derzeit die -Verkapselung von IPv4 oder IPv6 über eine bestehende IPv4-Infrastruktur. Dieser Treiber ist -nützlich, wenn der andere Endpunkt ein Cisco-Router ist: Cisco mag GRE viel lieber als den -anderen Linux-Tunneltreiber (\glqq IP-Tunneling\grqq{} oben). Außerdem erlaubt GRE die -Weiterverteilung von Multicast durch den Tunnel. - -\subparagraph{IP: broadcast GRE over IP}$~$\\ -CONFIG\_NET\_IPGRE\_BROADCAST [=y] \textbf{[Y]}\\ -Eine Anwendung von GRE/IP ist der Aufbau eines Broadcast-WAN (Wide Area Network), das wie -ein normales Ethernet-LAN (Local Area Network) aussieht, aber über das gesamte Internet -verteilt werden kann. Wenn Sie das tun wollen, sagen Sie hier und bei -\glqq IP-Multicast-Routing\grqq{} unten Y. - -\paragraph{IP: multicast routing}$~$\\ -CONFIG\_IP\_MROUTE [=y] \textbf{[Y]}\\ -Dies wird verwendet, wenn Ihr Rechner als Router für IP-Pakete mit mehreren Zieladressen -fungieren soll. Er wird für das MBONE benötigt, ein Netzwerk mit hoher Bandbreite über dem -Internet, das Audio- und Videoübertragungen überträgt. Um dies zu tun, würden Sie -wahrscheinlich das Programm \texttt{mrouted} ausführen. Wenn Sie davon noch nichts gehört -haben, brauchen Sie es nicht. - -\subparagraph{IP: multicast policy routing}$~$\\ -CONFIG\_IP\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\ -Normalerweise führt ein Multicast-Router einen Userspace-Daemon aus und entscheidet auf der -Grundlage der Quell- und Zieladressen, was mit einem Multicast-Paket geschehen soll. -Wenn Sie hier Y angeben, kann der Multicast-Router auch Schnittstellen und Paketmarkierungen -berücksichtigen und mehrere Instanzen von Userspace-Dämonen gleichzeitig laufen lassen, von -denen jeder eine einzelne Tabelle bearbeitet. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IP: PIM-SM version 1 support}$~$\\ -CONFIG\_IP\_PIMSM\_V1 [=y] \textbf{[Y]}\\ -Kernelseitige Unterstützung für Sparse Mode PIM (Protocol Independent Multicast) Version 1. -Dieses Multicast-Routing-Protokoll ist weit verbreitet, da Cisco es unterstützt. -Sie benötigen eine spezielle Software, um es zu verwenden (pimd-v1).\\ -Weitere Informationen -über PIM finden Sie unter \url{http://netweb.usc.edu/pim/}. Sagen Sie Y, wenn Sie -PIM-SM~v1 verwenden wollen. Beachten Sie, dass Sie hier N sagen können, wenn Sie nur -Dense Mode PIM verwenden wollen. - -\subparagraph{IP: PIM-SM version 2 support}$~$\\ -CONFIG\_IP\_PIMSM\_V2 [=y] \textbf{[Y]}\\ -Kernelseitige Unterstützung für Sparse Mode PIM Version 2. Um dies nutzen zu können, benötigen -Sie einen experimentellen Routing-Daemon, der dies unterstützt (pimd oder gated-5). Dieses -Routing-Protokoll ist nicht weit verbreitet, also sagen Sie N, es sei denn, Sie wollen -damit spielen. - -\paragraph{IP: TCP syncookie support}$~$\\ -CONFIG\_SYN\_COOKIES [=y] \textbf{[Y]}\\ -Normale TCP/IP-Netzwerke sind anfällig für einen Angriff, der als "SYN-Flooding" bekannt ist. -Dieser Denial-of-Service-Angriff verhindert, dass legitime Remote-Benutzer während eines laufenden -Angriffs eine Verbindung zu Ihrem Computer herstellen können, und erfordert vom Angreifer, der von -einem beliebigen Ort im Internet aus operieren kann, nur sehr wenig Arbeit. SYN-Cookies bieten -Schutz gegen diese Art von Angriffen. Wenn Sie hier "Y" eingeben, verwendet der TCP/IP-Stack ein -kryptografisches Herausforderungsprotokoll, das als "SYN-Cookies" bekannt ist, um legitime Benutzer -in die Lage zu versetzen, weiterhin eine Verbindung herzustellen, selbst wenn Ihr Rechner angegriffen -wird. -Die rechtmäßigen Benutzer brauchen ihre TCP/IP-Software nicht zu ändern; SYN-Cookies arbeiten für sie -transparent. Technische Informationen über SYN-Cookies finden Sie unter -\url{https://cr.yp.to/syncookies.html}. Wenn Sie SYN-geflutet werden, ist die vom Kernel gemeldete -Quelladresse wahrscheinlich vom Angreifer gefälscht worden; sie wird nur als Hilfe bei der Rückverfolgung -der Pakete zu ihrer tatsächlichen Quelle gemeldet und sollte nicht als absolute Wahrheit angesehen werden. -SYN-Cookies können eine korrekte Fehlermeldung auf Clients verhindern, wenn der Server wirklich überlastet -ist. Wenn dies häufig vorkommt, schalten Sie sie besser aus. Wenn Sie hier Y angeben, können Sie -SYN-Cookies zur Laufzeit deaktivieren, indem Sie Y zu \glqq /proc file system support\grqq{} und -\glqq Sysctl support\grqq{} -unten angeben und den Befehl \texttt{echo 0 $>$ /proc/sys/net/ipv4/tcp\_syncookies} ausführen -nachdem das /proc-Dateisystem eingehängt wurde. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Virtual (secure) IP: tunneling}$~$\\ -CONFIG\_NET\_IPVTI [=m] \textbf{[M]}\\ -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen -Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dies kann mit xfrm mode tunnel -verwendet werden, um die Vorstellung eines sicheren Tunnels für IPSEC zu vermitteln und dann ein -Routing-Protokoll darüber zu legen. - -\paragraph{IP: Foo (IP protocols) over UDP}$~$\\ -CONFIG\_NET\_FOU [=m] \textbf{[M]}\\ -Mit Foo over UDP kann jedes IP-Protokoll direkt über UDP gekapselt werden, einschließlich Tunneln -(IPIP, GRE, SIT). Durch die Verkapselung in UDP können Netzwerkmechanismen und Optimierungen für UDP -(wie ECMP und RSS) genutzt werden, um einen besseren Service zu bieten. - -\paragraph{IP: FOU encapsulation of IP tunnels}$~$\\ -CONFIG\_NET\_FOU\_IP\_TUNNELS [=y] \textbf{[Y]}\\ -Ermöglicht die Konfiguration von FOU- oder GUE-Kapselung für IP-Tunnel. Wenn diese Option aktiviert ist, -können IP-Tunnel für die Verwendung von FOU- oder GUE-Kapselung konfiguriert werden. - -\paragraph{IP: AH transformation}$~$\\ -CONFIG\_INET\_AH [=m] \textbf{[M]}\\ -Unterstützung für IPsec AH (Authentication Header). -AH kann mit verschiedenen Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht -nur die AH-Unterstützung selbst, sondern auch die generischen Implementierungen der Algorithmen, die -nach RFC~8221 implementiert werden MÜSSEN. Wenn Sie andere Algorithmen benötigen, müssen Sie diese in -der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen aller benötigten Algorithmen -aktivieren, sofern verfügbar. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{IP: ESP transformation}$~$\\ -CONFIG\_INET\_ESP [=m] \textbf{[M]}\\ -Unterstützung für IPsec ESP (Encapsulating Security Payload). -ESP kann mit verschiedenen Verschlüs\-selungs- und Authentifizierungsalgorithmen verwendet werden. Diese -Option aktiviert nicht nur die ESP"=Unterstützung selbst, sondern auch die generischen Implementierungen -der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. Wenn Sie andere Algorithmen benötigen, -müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen aller -benötigten Algorithmen aktivieren, sofern verfügbar. Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{IP: ESP transformation offload}$~$\\ -CONFIG\_INET\_ESP\_OFFLOAD [=m] \textbf{[M]}\\ -Unterstützung für ESP-Transformationsoffload. Dies ist nur dann sinnvoll, wenn das System wirklich IPsec -verwendet und einen hohen Durchsatz erzielen möchte. Ein typisches Desktop-System braucht dies nicht, -selbst wenn es IPsec verwendet. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IP: ESP in TCP encapsulation (RFC~8229)}$~$\\ -CONFIG\_INET\_ESPINTCP [=y] \textbf{[Y]}\\ -Unterstützung für die RFC~8229-Kapselung von ESP und IKE über TCP/IPv4-Sockets. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{IP: IPComp transformation}$~$\\ -CONFIG\_INET\_IPCOMP [=m] \textbf{[M]}\\ -Unterstützung für das IP Payload Compression Protocol -(IPComp) (RFC~3173), das normalerweise für IPsec benötigt wird.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{INET: socket monitoring interface}$~$\\ -CONFIG\_INET\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die INET (TCP, DCCP usw.) Socket"=Überwachungsschnittstelle, die von nativen Linux"=Tools -wie \texttt{ss} verwendet wird. \texttt{ss} ist in iproute2 enthalten und kann derzeit heruntergeladen werden -unter: \url{http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2}\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{UDP: socket monitoring interface}$~$\\ -CONFIG\_INET\_UDP\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die UDP-Socket-Überwachungsschnittstelle, die vom Tool \texttt{ss} verwendet wird. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{RAW: socket monitoring interface}$~$\\ -CONFIG\_INET\_RAW\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die vom \texttt{ss}-Tool verwendete RAW-Socket-Überwachungsschnittstelle. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{INET: allow privileged process to administratively close sockets}$~$\\ -CONFIG\_INET\_DIAG\_DESTROY [=y] \textbf{[Y]}\\ -Stellt eine SOCK\_DESTROY-Operation zur Verfügung, die es privilegierten Prozessen (z.~B. einem -Verbindungsmanager oder einem Netzwerkverwaltungsprogramm wie \texttt{ss}) ermöglicht, von anderen Prozessen -geöffnete Sockets zu schließen. Das Schließen eines Sockets auf diese Weise unterbricht alle blockierenden -Lese-/Schreib-/Verbindungsoperationen auf dem Socket und bewirkt, dass sich zukünftige Socket-Aufrufe so -verhalten, als ob der Socket getrennt worden wäre. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{TCP: advanced congestion control \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_TCP\_CONG\_ADVANCED [=y] \textbf{[Y]}\\ -Unterstützung für die Auswahl verschiedener TCP-Staukontrollmodule. Fast alle Benutzer können hier sicher nein -sagen, und es wird eine sichere Standardauswahl getroffen (CUBIC mit neuem Reno als Fallback). -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Binary Increase Congestion (BIC) control}$~$\\ -CONFIG\_TCP\_CONG\_BIC [=m] \textbf{[M]}\\ -BIC-TCP ist eine rein senderseitige Änderung, die eine lineare RTT-Fairness bei großen Fenstern gewähr"-lei"-stet -und gleichzeitig Skalierbarkeit und begrenzte TCP-Freundlichkeit bietet. Das Protokoll kombiniert zwei -Verfahren, die additive Erhöhung und die binäre Sucherhöhung. Bei großen Überlastungsfenstern ge"-währ"-lei"-stet -die additive Erhöhung mit einem großen Inkrement eine lineare RTT-Fairness sowie eine gute Skalierbarkeit. -Bei kleinen Überlastungsfenstern sorgt die binäre Sucherhöhung für TCP-Freundlichkeit.\\ -Siehe \url{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/} - -\subparagraph{CUBIC TCP}$~$\\ -CONFIG\_TCP\_CONG\_CUBIC [=y] \textbf{[Y]}\\ -Dies ist die Version 2.0 von BIC-TCP, die neben anderen Techniken eine kubische Wachstumsfunktion verwendet.\\ -Siehe \url{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf} - -\subparagraph{TCP Westwood+}$~$\\ -CONFIG\_TCP\_CONG\_WESTWOOD [=m] \textbf{[M]}\\ -TCP Westwood+ ist eine absenderseitige Modifikation des TCP-Reno-Protokollstapels, die die Leistung der -TCP-Überlastungssteuerung optimiert. Es basiert auf einer Ende-zu-Ende-Bandbreitenschätzung, um das -Überlastungsfenster und den Schwellenwert für den langsamen Start nach einer Überlastungsepisode festzulegen. -Auf der Grundlage dieser Schätzung legt TCP Westwood+ adaptiv einen Schwellenwert für den langsamen Start und -ein Überlastungsfenster fest, das die zum Zeitpunkt des Auftretens der Überlastung genutzte Bandbreite -berücksichtigt. TCP Westwood+ erhöht die Fairness gegenüber TCP Reno in kabelgebundenen Netzen und den -Durchsatz über drahtlose Verbindungen erheblich. - -\subparagraph{H-TCP}$~$\\ -CONFIG\_TCP\_CONG\_HTCP [=m] \textbf{[M]}\\* -H-TCP ist eine nur sendeseitige Modifikation des TCP-Reno-Protokollstapels, die die Leistung der -TCP-Überlastungssteuerung für Hochgeschwindigkeitsnetzverbindungen optimiert. Es verwendet einen Mode\-switch, -um die Alpha- und Beta-Parameter von TCP Reno auf der Grundlage der Netzbedingungen und in einer Weise zu -ändern, die gegenüber anderen Reno- und H-TCP-Datenströmen fair ist. - -\subparagraph{High Speed TCP}$~$\\ -CONFIG\_TCP\_CONG\_HSTCP [=m] \textbf{[M]}\\* -Sally Floyds High Speed TCP (RFC~3649) Staukontrolle. Eine Modifikation des -TCP"=Über"-lastungs"-steuerungs"-mechanismus -zur Verwendung mit großen Überlastungsfenstern. In einer Tabelle wird angegeben, um wie viel das -Überlastungsfenster vergrößert werden soll, wenn eine ACK empfangen wird. -Für weitere Einzelheiten siehe \url{https://www.icir.org/floyd/hstcp.html} - -\subparagraph{TCP-Hybla congestion control algorithm}$~$\\ -CONFIG\_TCP\_CONG\_HYBLA [=m] \textbf{[M]}\\* -TCP-Hybla ist eine Änderung, die nur auf der Absenderseite vorgenommen wird, um die Benachteiligung von -Verbindungen mit langen Übertragungszeiten und großen Bandbreiten zu beseitigen, z.~B. wenn -Satellitenverbindungen beteiligt sind, insbesondere wenn sie einen gemeinsamen Engpass mit normalen -terrestrischen Verbindungen teilen. - -\subparagraph{TCP Vegas}$~$\\ -CONFIG\_TCP\_CONG\_VEGAS [=m] \textbf{[M]}\\* -TCP Vegas ist eine absenderseitige Änderung von TCP, die den Beginn einer Überlastung durch Schät"-zung der -Bandbreite vorwegnimmt. TCP Vegas passt die Übertragungsrate durch Änderung des Über"-las"-tungs"-fens"-ters an. -TCP Vegas sollte weniger Paketverluste verursachen, ist aber nicht so aggressiv wie TCP Reno. - -\subparagraph{TCP NV}$~$\\ -CONFIG\_TCP\_CONG\_NV [=m] \textbf{[M]}\\* -TCP NV ist ein Nachfolger von TCP Vegas. Es wurde geändert, um mit 10G-Netzen, Messrauschen durch LRO, GRO und -Unterbrechungskoaleszenz fertig zu werden. Außerdem wird der cwnd-Wert nicht mehr linear, sondern multiplikativ -verringert.\\ -Es ist zu beachten, dass die Stauvermeidung (cwnd wird verringert, wenn die Anzahl der Pakete in der -Warteschlange steigt) im Allgemeinen nicht mit der Staukontrolle (cwnd wird nur verringert, wenn es zu -Paketverlusten kommt) koexistieren kann, da die Fairness nicht gewährleistet ist. Ein Szenario, in dem sie -sicher koexistieren können, ist, wenn die CA-Flüsse RTTs~$\ll$~CC-Flüsse RTTs haben. -Für weitere Einzelheiten siehe \url{http://www.brakmo.org/networking/tcp-nv/} - -\subparagraph{Scalable TCP}$~$\\ -CONFIG\_TCP\_CONG\_SCALABLE [=m] \textbf{[M]}\\* -Scalable TCP ist eine Änderung von TCP nur auf der Absenderseite, die einen MIMD-Algorithmus zur Staukontrolle -verwendet, der einige nette Skalierungseigenschaften hat, obwohl er bekanntermaßen Probleme mit der Fairness hat. -Siehe \url{http://www.deneholme.net/tom/scalable/} - -\subparagraph{TCP Low Priority}$~$\\ -CONFIG\_TCP\_CONG\_LP [=m] \textbf{[M]}\\* -TCP Low Priority (TCP-LP), ein verteilter Algorithmus, dessen Ziel es ist, nur die überschüssige Bandbreite des -Netzes im Vergleich zum \glqq fairen Anteil\grqq{} der Bandbreite, wie er von TCP angestrebt wird, zu nutzen. -Siehe \url{http://www-ece.rice.edu/networks/TCP-LP/} - -\subparagraph{TCP Veno}$~$\\ -CONFIG\_TCP\_CONG\_VENO [=m] \textbf{[M]}\\* -TCP Veno ist eine rein senderseitige Erweiterung von TCP, um einen besseren Durchsatz in drahtlosen Netzen zu -erzielen. TCP Veno nutzt die Zustandsunterscheidung, um die schwierige Beurteilung der Paketverlustart zu umgehen. -TCP Veno verkleinert das Überlastungsfenster als Reaktion auf zufällige Paketverluste. -Siehe \url{http://ieeexplore.ieee.org/xpl/freeabs\_all.jsp?arnumber=1177186} - -\subparagraph{YeAH TCP}$~$\\ -CONFIG\_TCP\_CONG\_YEAH [=m] \textbf{[M]}\\* -YeAH-TCP ist ein absenderseitiger Hochgeschwindigkeits"=TCP"=Überlastungskontrollalgorithmus, der ei"-nen gemischten -Verlust-/Verzögerungsansatz zur Berechnung des Überlastungsfensters verwendet. Seine Entwurfsziele sind hohe -Effizienz, interne, RTT- und Reno-Fairness, Widerstandsfähigkeit gegenüber Verbindungsverlusten und eine möglichst -geringe Belastung der Netzelemente.\\ -Weitere Einzelheiten finden Sie hier: -\url{http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf} or -\href{https://www.gdt.id.au/~gdt/presentations/2010-07-06-questnet-tcp/reference-materials/papers/baiocchi+castellani+vacirca-yeah-tcp-yet-another-highspeed-tcp.pdf} -{Link via www.gdt.id.au} - -\subparagraph{TCP Illinois}$~$\\ -CONFIG\_TCP\_CONG\_ILLINOIS [=m] \textbf{[M]}\\* -TCP-Illinois ist eine absenderseitige Modifikation von TCP Reno für Hochgeschwindigkeitsverbindungen mit langer -Verzögerung. Es nutzt die Round-Trip-Zeit, um die Alpha- und Beta-Parameter anzupassen, um einen höheren -durchschnittlichen Durchsatz zu erreichen und Fairness zu wahren. -Für weitere Einzelheiten siehe: \url{http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html} - -\subparagraph{DataCenter TCP (DCTCP)}$~$\\ -CONFIG\_TCP\_CONG\_DCTCP [=m] \textbf{[M]}\\* -DCTCP nutzt die explizite Überlastungsanzeige (Explicit Congestion Notification, ECN) im Netz, um den Endhosts ein -Multi-Bit-Feedback zu geben. Es wurde entwickelt, um Folgendes zu bieten: -\begin{itemize} - \item[-] Hohe Burst-Toleranz (Incast aufgrund von Partition/Aggregat), -\item[-] Geringe Latenz (kurze Flüsse, Abfragen), -\item[-] hohen Durchsatz (kontinuierliche Datenaktualisierungen, große Dateiübertragungen) mit - handels"-üblichen, flach gepufferten Switches. -\end{itemize} -Alle Switches im Rechenzentrumsnetz, auf denen DCTCP läuft, müssen die ECN-Kenn"-zeichnung unterstützen und so -konfiguriert sein, dass sie bei Erreichen bestimmter Switch-Pufferschwellenwerte ge"-kenn"-zeichnet werden. -Die Standardheuristik für die ECN-Markierungsschwelle für DCTCP auf Switches liegt bei 20 Paketen (30 KB) bei 1 Gbps -und 65 Paketen ($\approx$ 100 KB) bei 10 Gbps, muss aber möglicherweise noch weiter optimiert werden.\\ -Weitere Einzelheiten siehe:\\ -\url{http://simula.stanford.edu/~alizade/Site/DCTCP\_files/dctcp-final.pdf} - -\subparagraph{CAIA Delay-Gradient (CDG)}$~$\\ -CONFIG\_TCP\_CONG\_CDG [=m] \textbf{[M]}\\* -CAIA Delay-Gradient (CDG) ist eine TCP-Überlastungskontrolle, die den TCP-Sender modifiziert, um: -\begin{itemize} - \item[o] Verwendung des Verzögerungsgradienten als Überlastungssignal. - \item[o] mit einer durchschnittlichen Wahrscheinlichkeit, die unabhängig von der RTT ist, zurückzufahren. - \item[o] mit Datenströmen zu koexistieren, die eine verlustbasierte Staukontrolle verwenden. - \item[o] Paketverluste zu tolerieren, die nicht mit der Überlastung zusammenhängen. -\end{itemize} -Für weitere Einzelheiten siehe:\\ -D.A. Hayes und G. Armitage. "Revisiting TCP congestion control using delay gradients".\\ -In Networking 2011. Preprint: \url{http://goo.gl/No3vdg} - -\subparagraph{BBR TCP}$~$\\ -CONFIG\_TCP\_CONG\_BBR [=m] \textbf{[M]}\\* -BBR (Bottleneck Bandwidth and RTT) Die TCP-Überlastungssteuerung zielt darauf ab, die Netzauslastung zu maximieren und Warteschlangen -zu minimieren. Sie erstellt ein explizites Modell der Bottleneck-Zustellrate und der Umlaufverzögerung des Pfades. -Sie toleriert Paketverluste und Verzögerungen, die nicht mit der Überlastung zusammenhängen. Es kann über LAN-, WAN-, Mobilfunk-, -WLAN- oder Kabelmodem-Verbindungen arbeiten. Es kann mit Datenströmen koexistieren, die eine verlustbasierte Staukontrolle verwenden, -und es kann mit flachen Puffern, tiefen Puffern, Bufferbloat, Policern oder AQM-Schemata arbeiten, die kein Verzögerungssignal liefern. -Es erfordert den \texttt{fq} (\glqq Fair Queue\grqq{}) Pacing Packet Scheduler. - -\subparagraph{Default TCP congestion control () \texorpdfstring{$\rightarrow$}{->}}$~$\\ -Wählen Sie die TCP-Überlastungssteuerung aus, die standardmäßig für alle Verbindungen verwendet werden soll. - -\subsubparagraph{Cubic}$~$\\ -CONFIG\_DEFAULT\_CUBIC [=y] \textbf{[Y]}\\* -Für diese Option ist keine Hilfe vorhanden. - -\subsubparagraph{Reno}$~$\\ -CONFIG\_DEFAULT\_RENO [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe vorhanden. - -\paragraph{TCP: MD5 Signature Option support (RFC~2385)}$~$\\ -CONFIG\_TCP\_MD5SIG [=y] \textbf{[Y]}\\* -RFC2385 spezifiziert eine Methode zum MD5-Schutz von TCP-Sitzungen. Die wichtigste (einzige?) Anwendung ist der Schutz von BGP-Sitzungen -zwischen Core-Routern im Internet. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{The IPv6 protocol}$~$\\ -CONFIG\_IPV6 [=y] \textbf{[Y]}\\* -Unterstützung für die IP Version 6 (IPv6).\\ -Allgemeine Informationen über IPv6 finden Sie unter \url{https://en.wikipedia.org/wiki/IPv6}. -Spezielle Informationen über IPv6 unter Linux finden Sie unter Documentation/networking/ipv6.rst und lesen Sie das HOWTO unter -\url{https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/}\\ -Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{ipv6} heißen. - -\subparagraph{IPv6: Router Preference (RFC~4191) support}$~$\\ -CONFIG\_IPV6\_IOAM6\_LWTUNNEL [=y] \textbf{[Y]}\\* -Die Router-Präferenz ist eine optionale Erweiterung der Router-Advertisement-Nachricht, die die Fä"-hig"-keit der Hosts verbessert, -einen geeigneten Router auszuwählen, insbesondere wenn die Hosts in einem Netz mit mehreren Hosts untergebracht sind. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{IPv6: Router Information (RFC~4191) support}$~$\\ -CONFIG\_IPV6\_ROUTE\_INFO [=y] \textbf{[Y]}\\* -Unterstützung von Routeninformationen. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: Enable RC~4429 Optimistic DAD}$~$\\ -CONFIG\_IPV6\_OPTIMISTIC\_DAD [=y] \textbf{[Y]}\\* -Unterstützung für die optimistische Erkennung von doppelten Adressen. Dadurch können automatisch konfigurierte Adressen schneller verwendet werden. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: AH transformation}$~$\\ -CONFIG\_INET6\_AH [=m] \textbf{[M]}\\* -Unterstützung für IPsec AH (Authentication Header). -AH kann mit verschiedenen Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht nur die AH-Unterstützung selbst, -sondern auch die generischen Implementierungen der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. -Wenn Sie andere Algorithmen benötigen, müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen -aller benötigten Algorithmen aktivieren, sofern verfügbar. -Wenn Sie unsicher sind, sagen Sie Y für Ja. - -\subparagraph{IPv6: ESP transformation}$~$\\ -CONFIG\_INET6\_ESP [=m] \textbf{[M]}\\* -Unterstützung für IPsec ESP (Encapsulating Security Payload). -ESP kann mit verschiedenen Ver"-schlüs"-selungs"= und Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht nur die -ESP-Unterstützung selbst, sondern auch die generischen Implementierungen der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. -Wenn Sie andere Algorithmen benötigen, müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen -aller benötigten Algorithmen aktivieren, sofern verfügbar. -Wenn Sie unsicher sind, sagen Sie Y für Ja. - -\subsubparagraph{IPv6: ESP transformation offload}$~$\\ -CONFIG\_INET6\_ESP [=m] \textbf{[M]}\\* -Unterstützung für ESP-Transformationsoffload. Dies ist nur dann sinnvoll, wenn das System wirklich IPsec verwendet und einen hohen -Durchsatz erzielen möchte. Ein typisches Desktop-System braucht dies nicht, selbst wenn es IPsec verwendet. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{IPv6: ESP in TCP encapsulation (RFC~8229)}$~$\\ -CONFIG\_INET6\_ESPINTCP [=y] \textbf{[Y]}\\* -Unterstützung für die RFC~8229-Kapselung von ESP und IKE über TCP/IPv6-Sockets. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: IPComp transformation}$~$\\ -CONFIG\_INET6\_IPCOMP [=m] \textbf{[M]}\\* -Unterstützung für IP Payload Compression Protocol (IPComp) (RFC~3173), typischerweise erforderlich für IPsec. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{IPv6: Mobility}$~$\\ -CONFIG\_IPV6\_MIP6 [=m] \textbf{[M]}\\* -Unterstützung für IPv6-Mobilität, beschrieben in RFC~3775.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: Identifier Locator Addressing (ILA)}$~$\\ -CONFIG\_IPV6\_ILA [=m] \textbf{[M]}\\* -Unterstützung für IPv6 Identifier Locator Addressing (ILA). -ILA ist ein Mechanismus zur Netzwerkvirtualisierung ohne Verkapselung. Das Grundkonzept von ILA besteht darin, dass wir eine -IPv6-Adresse in einen 64-Bit-Locator und einen 64-Bit-Identifier aufteilen. Der Bezeichner ist die Identität einer Entität in der -Kommunikation (\glqq who\grqq{}) und der Locator drückt den Standort der Entität (\glqq where\grqq{}) aus. -ILA kann unter Verwendung der Option \texttt{encap ila} mit dem Befehl \texttt{ip -6 route} konfiguriert werden.\\ -ILA wird in \url{https://tools.ietf.org/html/draft-herbert-nvo3-ila-00} beschrieben. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Virtual (secure) IPv6: tunneling}$~$\\ -CONFIG\_IPV6\_VTI [=m] \textbf{[M]}\\* -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, -der das einkapselnde Protokoll versteht. Dies kann mit xfrm mode tunnel verwendet werden, um die Vorstellung eines sicheren -Tunnels für IPSEC zu vermitteln und dann ein Routing-Protokoll darüber zu legen. - -\subparagraph{IPv6: IPv6-in-IPv4 tunnel (SIT driver)}$~$\\ -CONFIG\_IPV6\_SIT [=m] \textbf{[M]}\\* -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, -der das einkapselnde Protokoll versteht. Dieser Treiber implementiert die Einkapselung von IPv6 in IPv4-Pakete. Dies ist -nützlich, wenn Sie zwei IPv6-Netzwerke über einen reinen IPv4-Pfad verbinden wollen. Wenn Sie hier M sagen, wird ein Modul -namens \texttt{sit} erzeugt. Wenn Sie unsicher sind, sagen Sie Y. - -\subsubparagraph{IPv6: IPv6 Rapid Deployment (6RD)}$~$\\ -CONFIG\_IPV6\_SIT\_6RD [=y] \textbf{[Y]}\\* -IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) baut auf Mechanismen von 6to4 (RFC~3056) auf, um einen -Dienstanbieter in die Lage zu versetzen, IPv6-Unicast-Dienste schnell an IPv4-Standorten einzurichten, für die er -Kundengeräte bereitstellt. -Wie 6to4 verwendet es zustandsloses IPv6 in einer IPv4"=Kapselung, um eine reine IPv4"=Netz"-infra"-struktur zu durch"-queren. -Im Gegensatz zu 6to4 verwendet ein 6rd"=Dienstanbieter ein eigenes IPv6"=Präfix anstelle des festen 6to4"=Präfixes. -Wenn diese Option aktiviert ist, bietet der SIT"=Treiber 6rd"=Funktionalität, indem er eine zusätzliche ioctl"=API zur Konfiguration -des IPv6-Präfixes anstelle des statischen 2002::/16 für 6to4 bereitstellt.\\* -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: IP-in-IPv6 tunnel (RFC~2473)}$~$\\ -CONFIG\_IPV6\_TUNNEL [=m] \textbf{[M]}\\* -Unterstützung für IPv6-in-IPv6- und IPv4-in-IPv6-Tunnel, beschrieben in RFC~2473. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: GRE tunnel (RFC~2473)}$~$\\ -CONFIG\_IPV6\_GRE [=m] \textbf{[M]}\\* -Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, -der das einkapselnde Protokoll versteht. Dieser spezielle Tunneling-Treiber implementiert GRE (Generic Routing Encapsulation) -und ermöglicht derzeit die Verkapselung von IPv4 oder IPv6 über eine bestehende IPv6-Infrastruktur. Dieser Treiber ist nützlich, -wenn der andere Endpunkt ein Cisco-Router ist: Cisco mag GRE viel lieber als den anderen Linux-Tunneltreiber -(\glqq IP-Tunneling\grqq{} oben). Außerdem erlaubt GRE die Umverteilung von Multicast durch den Tunnel.\\ -Wenn Sie hier M sagen, wird ein Modul namens \texttt{ip6\_gre} erzeugt. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: Multiple Routing Tables}$~$\\ -CONFIG\_IPV6\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* -Unterstützung mehrerer Routing-Tabellen. - -\subsubparagraph{IPv6: source address based routing}$~$\\ -CONFIG\_IPV6\_SUBTREES [=y] \textbf{[Y]}\\* -Aktivieren Sie das Routing nach Quelladresse oder Präfix.\\ -Die Zieladresse ist immer noch der primäre Routing"=Schlüssel, so dass das Mischen von normalen und quell"-präfix"-spezifischen Routen -in derselben Routing"=Tabelle manchmal zu einem unbeabsichtigten Routing"=Verhalten führen kann. Dies kann vermieden werden, -indem unterschiedliche Routing"=Tabellen für die normalen und die quellpräfixspezifischen Routen definiert werden.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: multicast routing}$~$\\ -CONFIG\_IPV6\_MROUTE [=y] \textbf{[Y]}\\* -Unterstützung der IPv6-Multicast-Weiterleitung. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{IPv6: multicast policy routing}S~S\\ -CONFIG\_IPV6\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* -Normalerweise führt ein Multicast-Router einen Userspace-Daemon aus und entscheidet auf der Grundlage der Quell- und Zieladressen, -was mit einem Multicast-Paket geschehen soll. Wenn Sie hier Y angeben, kann der Multicast-Router auch Schnittstellen und -Paketmarkierungen berück"-sichtigen und mehrere Instanzen von Userspace-Dämonen gleichzeitig laufen lassen, von denen jeder eine -einzelne Tabelle bearbeitet. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{IPv6: multicast policy routing}S~S\\ -CONFIG\_IPV6\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* -Unterstützung für das IPv6-PIM-Multicast-Routing-Protokoll PIM-SMv2. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: Segment Routing Header encapsulation support}$~$\\ -CONFIG\_IPV6\_SEG6\_LWTUNNEL [=y] \textbf{[Y]}\\* -Unterstützung für die Einkapselung von Paketen in einen äußeren IPv6-Header und einen Segment-Routing-Header -unter Verwendung des leichtgewichtigen Tunnelmechanismus. Aktivieren Sie auch die Unterstützung für die erweiterte lokale -Verarbeitung von SRv6-Paketen auf der Grundlage ihres aktiven Segments. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: Segment Routing HMAC support}$~$\\ -CONFIG\_IPV6\_SEG6\_HMAC [=y] \textbf{[Y]}\\* -Unterstützung für die Erzeugung von HMAC-Signaturen und die Überprüfung von SR-aktivierten Paketen. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: RPL Source Routing Header support}$~$\\ -CONFIG\_IPV6\_RPL\_LWTUNNEL [=y] \textbf{[Y]}\\* -Unterstützung für RFC~6554 RPL Source Routing Header unter Verwendung des Lightweight"=Tunnel"=Mechanismus. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6: IOAM Pre-allocated Trace insertion support}$~$\\ -CONFIG\_IPV6\_IOAM6\_LWTUNNEL [=y] \textbf{[Y]}\\* -Unterstützung für das Einfügen von IOAM Pre-allocated Trace Header unter Verwendung des Lightweight"=Tunnel"=Mechanismus. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{NetLabel subsystem support}$~$\\ -CONFIG\_NETLABEL [=y] \textbf{Y}\\* -NetLabel bietet Unterstützung für explizite Netzwerk-Paketkennzeichnungsprotokolle wie CIPSO und RIPSO. Weitere -Informationen finden Sie unter Documentation/netlabel sowie im NetLabel SourceForge-Projekt für Konfigurationswerkzeuge -und zusätzliche Dokumentation.\\ -$*$ \url{https://github.com/netlabel/netlabel\_tools} -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{MPTCP: Multipath TCP}$~$\\ -CONFIG\_MPTCP [=y] \textbf{Y}\\* -Multipath TCP (MPTCP)-Verbindungen senden und empfangen Daten über mehrere Subflows, um mehrere -Netzwerkpfade zu nutzen. Jeder Subflow verwendet das TCP-Protokoll, und die TCP-Optionen enthalten -Header-Informationen für MPTCP. - -\subparagraph{MPTCP: IPv6 support for Multipath TCP}$~$\\ -CONFIG\_MPTCP\_IPV6 [=y] \textbf{[Y]}\\* -Für diese Option gibt es keine Hilfe. - -\subsubsection{Security Marking} -CONFIG\_NETWORK\_SECMARK [=y] \textbf{[Y]}\\* -Dies ermöglicht die Sicherheitsmarkierung von Netzwerkpaketen, ähnlich wie bei nfmark, aber für -Sicherheitszwecke. Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie -mit N. - -\subsubsection{Timestamping in PHY devices} -CONFIG\_NETWORK\_PHY\_TIMESTAMPING [=y] \textbf{[Y]}\\* -Dies ermöglicht die Zeitstempelung von Netzwerkpaketen durch PHYs (oder andere -MII-Bus-Snooping-Geräte) mit Hardware-Zeitstempelfunktionen. Diese Option fügt einen gewissen -Overhead in den Sende- und Empfangswegen hinzu. Wenn Sie unsicher sind, wie Sie diese Frage -beantworten sollen, antworten Sie mit N. - -\subsubsection{Network packet filtering framework (Netfilter) \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NETFILTER [=y] \textbf{[Y]}\\* -Netfilter ist ein Framework zum Filtern und Verarbeiten von Netzwerkpaketen, die Ihren Linux-Rechner -durchlaufen. Die häufigste Anwendung der Paketfilterung ist der Einsatz Ihres Linux-Rechners als -Firewall zum Schutz eines lokalen Netzwerks vor dem Internet. Die Art von Firewall, die durch diese -Kernelunterstützung bereitgestellt wird, wird als \glqq Paketfilter\grqq{} bezeichnet, was bedeutet, -dass sie einzelne Netzwerkpakete auf der Grundlage von Typ, Quelle, Ziel usw. zurückweisen kann. -Die andere Art von Firewall, eine \glqq proxy-basierte\grqq{} Firewall, ist sicherer, aber -aufdringlicher und mühsamer einzurichten; sie untersucht den Netzwerkverkehr viel genauer, -verändert ihn und hat Kenntnisse über die höheren Protokolle, die ein Paketfilter nicht hat. -Außerdem erfordern proxy-basierte Firewalls oft Änderungen an den Programmen, die auf den lokalen -Clients laufen. Proxy-basierte Firewalls brauchen keine Unterstützung durch den Kernel, aber sie -werden oft mit einem Paketfilter kombiniert, der nur funktioniert, wenn man hier Y sagt.\\ -Sie sollten hier auch Y angeben, wenn Sie Ihren Linux-Rechner als Gateway zum Internet für ein -lokales Netzwerk von Rechnern ohne global gültige IP-Adresse verwenden wollen. Dies nennt man -\glqq masquerading\grqq{}: Wenn einer der Computer in Ihrem lokalen Netzwerk etwas nach außen -senden möchte, kann sich Ihre Box als dieser Computer \glqq maskieren\grqq{}, d.~h. sie leitet -den Datenverkehr an das vorgesehene Ziel nach außen weiter, verändert aber die Pakete so, dass -es so aussieht, als kämen sie von der Firewall-Box selbst. Das funktioniert in beide Richtungen: -Wenn der externe Rechner antwortet, leitet die Linux-Box den Datenverkehr stillschweigend an den -richtigen lokalen Rechner weiter.\\ -Auf diese Weise sind die Computer in Ihrem lokalen Netz für die Außenwelt völlig unsichtbar, -obwohl sie die Außenwelt erreichen und Antworten empfangen können. Es ist sogar möglich, global -sichtbare Server von einem maskierten lokalen Netzwerk aus zu betreiben, indem man einen -Mechanismus namens Portforwarding verwendet. Masquerading wird oft auch als NAT -(Network Address Translation) bezeichnet.\\ -Eine weitere Anwendung von Netfilter ist das transparente Proxying: Wenn ein Rechner im lokalen -Netzwerk versucht, eine Verbindung zu einem externen Host herzustellen, kann Ihr Linux-System den -Datenverkehr transparent an einen lokalen Server weiterleiten, in der Regel einen -Caching-Proxy-Server. Eine weitere Verwendung von Netfilter ist der Aufbau einer Bridging-Firewall. -Wenn Sie eine Bridge mit aktivierter Netzwerk-Paketfilterung verwenden, kann iptables den -überbrückten Verkehr \glqq sehen\grqq{}. Für die Filterung des unteren Netzwerks und der -Ethernet-Protokolle über die Brücke, verwenden Sie ebtables (unter bridge netfilter configuration). -Für netfilter gibt es verschiedene Module, die die bisherigen Mechanismen Masquerading (ipmasqadm), -Paketfilterung (ipchains), transparentes Proxying und Portforwarding ersetzen. -Bitte sehen Sie $<$file:Documentation/Changes$>$ unter \glqq iptables\grqq{} nach, wo diese Pakete -zu finden sind. - -\paragraph{Advanced netfilter configuration}$~$\\ -CONFIG\_NETFILTER\_ADVANCED [=y] \textbf{[Y]}\\* -Wenn Sie hier Y angeben, können Sie zwischen allen Netzfiltermodulen wählen. Wenn Sie N sagen, -werden die ungewöhnlicheren nicht angezeigt, und die grundlegenden Module, die von den meisten -Benutzern benötigt werden, werden standardmäßig mit \glqq M\grqq{} angezeigt. Wenn Sie unsicher -sind, sagen Sie Y. - -\subparagraph{Bridged IP/ARP packets filtering}$~$\\ -CONFIG\_BRIDGE\_NETFILTER [=m] \textbf{[M]}\\* -Wenn Sie diese Option aktivieren, kann arptables bzw. iptables überbrückten ARP- bzw. IP-Verkehr -sehen. Wenn Sie eine Bridging-Firewall wollen, sollten Sie diese Option aktivieren. -Durch das Aktivieren oder Deaktivieren dieser Option wird ebtables nicht aktiviert oder -deaktiviert.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Core Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ -(Kern-Netfilter-Konfiguration) - -\subparagraph{Netfilter ingress support}$~$\\ -CONFIG\_NETFILTER\_INGRESS [=y] \textbf{[Y]}\\* -Damit können Sie Pakete bereits am Eingang über die Netfilter-Infrastruktur klassifizieren. - -\subparagraph{Netfilter egress support}$~$\\ -CONFIG\_NETFILTER\_EGRESS [=y] \textbf{[Y]}\\* -Damit können Sie Pakete vor der Übertragung über die Netfilter-Infrastruktur klassifizieren. - -\subparagraph{Netfilter base hook dump support}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_HOOK [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, unterstützt der Kernel die Auflistung der -Basis-Netzfilter-Hooks über NFNETLINK. Dies ist hilfreich für die Fehlersuche. - -\subparagraph{Netfilter NFACCT over NFNETLINK interface}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_ACCT [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, unterstützt der Kernel die erweiterte Abrechnung über NFNETLINK. - -\subparagraph{Netfilter NFQUEUE over NFNETLINK interface}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_QUEUE [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, unterstützt der Kernel die Warteschlangenbildung für -Pakete über NFNETLINK. - -\subparagraph{Netfilter LOG over NFNETLINK interface}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_LOG [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, bietet der Kernel Unterstützung für die Protokollierung von -Paketen über NFNETLINK. Dadurch werden die bestehenden ipt\_ULOG- und ebg\_ulog-Mechanismen -überflüssig und es ist auch geplant, die alten syslog-basierten ipt\_LOG- und -ip6t\_LOG-Module zu ersetzen. - -\subparagraph{Netfilter OSF over NFNETLINK interface}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_OSF [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, unterstützt der Kernel den passiven OS-Fingerprint über NFNETLINK. - -\subparagraph{Netfilter connection tracking support}$~$\\ -CONFIG\_NF\_CONNTRACK [=m] \textbf{[M]}\\* -Die Verbindungsverfolgung zeichnet auf, welche Pakete Ihren Rechner durchlaufen haben, um -herauszufinden, wie sie zu Verbindungen zusammenhängen. -Dies ist erforderlich, um Masquerading oder andere Arten der Netzwerkadressübersetzung -durchzuführen. Es kann auch verwendet werden, um die Paketfilterung zu verbessern -(siehe \glqq Unterstützung von Verbindungsstatusübereinstimmungen\grqq{} unten). -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Syslog packet logging}$~$\\ -CONFIG\_NF\_LOG\_SYSLOG [=m] \textbf{[M]}\\* -Diese Option aktiviert die Unterstützung für die Paketprotokollierung über Syslog. Sie -unterstützt IPv4, IPV6, ARP und gängige Transportprotokolle wie TCP und UDP. Dies ist eine -einfachere, aber weniger flexible Protokollierungsmethode im Vergleich zu -CONFIG\_NETFILTER\_NETLINK\_LOG. Wenn beide aktiviert sind, kann das zu verwendende Backend -zur Laufzeit mit Hilfe von sysctl-Tunables pro Adressfamilie konfiguriert werden. - -\subparagraph{Connection mark tracking support}$~$\\ -CONFIG\_NF\_CONNTRACK\_MARK [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für Verbindungsmarkierungen, die vom Ziel -\glqq CONNMARK\grqq{} und der Übereinstimmung \glqq connmark\grqq{} verwendet werden. -Ähnlich wie der Markierungswert von Paketen, aber dieser Markierungswert wird in der -conntrack-Sitzung statt in den einzelnen Paketen gespeichert. - -\subparagraph{Connection tracking security mark support}$~$\\ -CONFIG\_NF\_CONNTRACK\_SECMARK [=y] \textbf{[Y]}\\* -Mit dieser Option können Sicherheitsmarkierungen auf Verbindungen angewendet werden. Normalerweise -werden sie von Paketen, die das CONNSECMARK-Ziel verwenden, auf Verbindungen kopiert und von -Verbindungen auf Pakete mit demselben Ziel zurückkopiert, wobei die Pakete ursprünglich über -SECMARK gekennzeichnet wurden.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking zones}$~$\\ -CONFIG\_NF\_CONNTRACK\_ZONES [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Unterstützung für Zonen zur Verfolgung von Verbindungen aktiviert. -Normalerweise muss jede Verbindung eine eindeutige systemweite Identität haben. Zonen für die -Verbindungsverfolgung ermöglichen es, dass mehrere Verbindungen dieselbe Identität verwenden, -solange sie in verschiedenen Zonen enthalten sind. Wenn Sie unsicher sind, sagen Sie `N'. - -\subparagraph{Supply CT list in procfs (OBSOLETE)}$~$\\ -CONFIG\_NF\_CONNTRACK\_PROCFS [=y] \textbf{[Y]}\\* -Mit dieser Option kann die Liste der bekannten Conntrack-Einträge in procfs unter\\ -net/netfilter/nf\_conntrack angezeigt werden. Diese Option wird als veraltet betrachtet, -da das Werkzeug conntrack(8), das Netlink benutzt, verwendet wird. - -\subparagraph{Connection tracking events}$~$\\ -CONFIG\_NF\_CONNTRACK\_EVENTS [=y] \textbf{[Y]}\\* -Wenn diese Option aktiviert ist, stellt der Code für die Verbindungsüberwachung eine -Benachrichtigungskette zur Verfügung, die von anderem Kernel-Code verwendet werden kann, -um über Änderungen im Status der Verbindungsüberwachung informiert zu werden.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking timeout}$~$\\ -CONFIG\_NF\_CONNTRACK\_TIMEOUT [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für die Timeout-Erweiterung der Verbindungsverfolgung. -Damit können Sie Zeitüberschreitungsrichtlinien an den Datenfluss über das CT-Ziel anhängen.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking timestamping}$~$\\ -CONFIG\_NF\_CONNTRACK\_TIMESTAMP [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für die Zeitstempelung der Verbindungsverfolgung. -Dadurch können Sie die Startzeit des Datenflusses speichern und die Zeit für die Beendigung des -Datenflusses (nach dessen Zerstörung) über Ereignisse der Verbindungsverfolgung abrufen. Wenn -Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking labels}$~$\\ -CONFIG\_NF\_CONNTRACK\_LABELS [=y] \textbf{[Y]}\\* -Diese Option ermöglicht die Zuweisung von benutzerdefinierten Flaggenbits zu Einträgen der -Verbindungsverfolgung. Sie kann mit xtables connlabel match und dem nftables ct Ausdruck -verwendet werden. - -\subparagraph{DCCP protocol connection tracking support}$~$\\ -CONFIG\_NF\_CT\_PROTO\_DCCP [=y] \textbf{[Y]}\\* -Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Code für die Verbindungsverfolgung -den Zustand von DCCP"=Verbindungen verfolgen. Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{SCTP protocol connection tracking support}$~$\\ -CONFIG\_NF\_CT\_PROTO\_SCTP [=y] \textbf{[Y]}\\* -Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Verbindungsverfolgungscode -den Status von SCTP"=Verbindungen verfolgen. Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{UDP-Lite protocol connection tracking support}$~$\\ -CONFIG\_NF\_CT\_PROTO\_UPDLITE [=y] \textbf{[Y]}\\* -Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Verbindungsverfolgungscode -eine Zustandsverfolgung bei UDP-Lite"=Verbindungen durchführen. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{Amanda backup protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_AMANDA [=m] \textbf{[M]}\\* -Wenn Sie das Amanda-Backup-Paket \url{http://www.amanda.org/} auf diesem Rechner oder auf -Rechnern, die über diesen Rechner MASQUERADED werden, ausführen, sollten Sie diese -Funktion aktivieren. Dies ermöglicht es dem Verbindungsverfolgungs- und Natting"=Code, die -Unterkanäle zuzulassen, die Amanda für die Kommunikation der Sicherungsdaten, Nachrichten -und des Index benötigt. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{FTP protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_FTP [=m] \textbf{[M]}\\* -Die Verfolgung von FTP-Verbindungen ist problematisch: Für die Verfolgung dieser Verbindungen -und die Durchführung von Masquerading und anderen Formen der Network Address Translation sind -spezielle Hilfsmittel erforderlich. Dies ist FTP-Unterstützung auf Layer 3 mit unabhängiger -Verbindungsverfolgung. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{H.323 protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_H323 [=m] \textbf{[M]}\\* -H.323 ist ein VoIP-Signalisierungsprotokoll der ITU-T. Als eines der wichtigsten VoIP-Protokolle -wird es weithin von Sprach-Hardware und -Software verwendet, darunter Sprach"=Gateways, IP"=Telefone, -Netmeeting, OpenPhone, Gnomemeeting usw. -Mit diesem Modul können Sie H.323 auf einer Verbindungs"-ver"-fol"-gung/NAT"=Firewall unterstützen. -Dieses Modul unterstützt RAS, Fast Start, H.245 Tunnelling, Call Forwarding, RTP/RTCP und T.120 -basierte Audio-, Video-, Fax-, Chat-, Whiteboard-, Dateiübertragung, etc. Für weitere Informationen -besuchen Sie bitte \url{http://nath323.sourceforge.net/}.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IRC protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_IRC [=m] \textbf{[M]}\\* -Es gibt eine weit verbreitete Erweiterung des IRC, das Direct Client-to-Client Protocol (DCC). -Damit können Benutzer Dateien aneinander senden und auch miteinander chatten, ohne dass ein Server -erforderlich ist. DCC Sending wird überall dort verwendet, wo Sie Dateien über IRC senden, und DCC -Chat wird am häufigsten von Eggdrop"=Bots verwendet. Wenn Sie NAT verwenden, ermöglicht Ihnen diese -Erweiterung, Dateien zu senden und Chats zu initiieren. Beachten Sie, dass Sie diese Erweiterung -NICHT benötigen, um Dateien abzurufen oder Chats zu initiieren, oder alles andere im IRC.\\ -Um sie als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{NetBIOS name service protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_NETBIOS\_NS [=m] \textbf{[M]}\\* -NetBIOS-Namensdienstanfragen werden als Broadcast"=Nachrichten von einem unprivilegierten Port -gesendet und mit Unicast"=Nachrichten an denselben Port beantwortet. Das macht es schwierig, sie -mit einer Firewall zu schützen, da die Verbindungsverfolgung nicht mit Broadcasts umgehen kann. -Dieses Hilfsprogramm verfolgt die lokalen NetBIOS"=Namensdienstanfragen und die entsprechenden -Antworten. Er ist auf eine korrekte IP"=Adresskonfiguration angewiesen, insbesondere auf die -Netzmaske und die Broadcast"=Adresse. Wenn sie richtig konfiguriert sind, sollte die Ausgabe von -\texttt{ip address show} etwa so aussehen:\\[.5em] -\texttt{\$ ip -4 address show eth0}\\ -\texttt{4: eth0: $<$BROADCAST,MULTICAST,UP$>$ mtu 1500 qdisc pfifo\_fast qlen 1000}\\ -\texttt{\hspace*{4em} inet 172.16.2.252/24 brd 172.16.2.255 Bereich global eth0}\\[.5em] -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{SNMP service protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_SNMP [=m] \textbf{[M]}\\* -SNMP-Dienstanforderungen werden als Broadcast"=Nachrichten von einem unprivilegierten Port gesendet -und mit Unicast"=Nachrichten an denselben Port beantwortet. Das macht es schwierig, sie mit einer -Firewall zu schützen, da die Verbindungsverfolgung nicht mit Broadcasts umgehen kann. -Dieses Hilfsprogramm verfolgt die lokalen SNMP"=Dienstanfragen und die entsprechenden Antworten. -Es verlässt sich auf die korrekte Konfiguration der IP"=Adresse, insbesondere der Netzmaske und -der Broadcast-Adresse.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{PPtP protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_PPTP [=m] \textbf{[M]}\\* -Dieses Modul fügt Unterstützung für PPTP (Point to Point Tunnelling Protocol, RFC~2637) -Verbindungsverfolgung und NAT hinzu. Wenn Sie PPTP"=Sitzungen über eine Stateful"=Firewall oder -NAT"=Box laufen lassen, sollten Sie diese Funktion aktivieren. -Bitte beachten Sie, dass noch nicht alle PPTP"=Betriebsmodi unterstützt werden. Insbesondere -bestehen diese Einschränkungen: -\begin{itemize} - \item[-] Es wird blind davon ausgegangen, dass Kontrollverbindungen immer in Richtung - PNS$\rightarrow$PAC aufgebaut werden. Dies ist eine Verletzung von RFC~2637. - \item[-] Unterstützt nur einen einzigen Aufruf innerhalb jeder Sitzung -\end{itemize} -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{SANE protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_SANE [=m] \textbf{[M]}\\* -SANE ist ein Protokoll für den Fernzugriff auf Scanner, das durch den Daemon \texttt{saned} -implementiert wird. Wie FTP verwendet es getrennte Kontroll- und Datenverbindungen. -Mit diesem Modul können Sie SANE auf einer Firewall mit Verbindungsverfolgung unterstützen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{SIP protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_SANE [=m] \textbf{[M]}\\* -SIP ist ein Kontroll\-protokoll der Anwendungsschicht, mit dem Multimedia"=Sitzungen -(Konferenzen) wie Internet"=Telefonate aufgebaut, geändert und beendet werden können.\\ -Mit den Modulen \texttt{nf\_conntrack\_sip} und \texttt{nf\_nat\_sip} können Sie das -Protokoll auf einer Verbindungsverfolgung/NATing"=Firewall unterstützen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{TFTP protocol support}$~$\\ -CONFIG\_NF\_CONNTRACK\_TFTP [=m] \textbf{[M]}\\* -TFTP-Verbindungsnachverfolgungshilfe; dies ist erforderlich, je nachdem, wie restriktiv -Ihr Regelwerk ist. Wenn Sie einen tftp"=Client hinter -j SNAT oder -j MASQUERADING verwenden, -benötigen Sie dies. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking netlink interface}$~$\\ -CONFIG\_NF\_CT\_NETLINK [=m] \textbf{[M]}\\* -Diese Option aktiviert die Unterstützung für eine netlink"=basierte Benutzerschnittstelle. - -\subparagraph{Connection tracking timeout tuning via Netlink}$~$\\ -CONFIG\_NF\_CT\_NETLINK\_TIMEOUT [=m] \textbf{[M]}\\* -Mit dieser Option wird die Unterstützung für die Feinabstimmung des Zeitlimits für die -Verbindungsverfolgung aktiviert. Dies ermöglicht es Ihnen, spezifische -Zeitüberschreitungsrichtlinien an Abläufe anzuhängen, anstatt die globale -Zeitüberschreitungsrichtlinie zu verwenden. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Connection tracking helpers in user-space via Netlink}$~$\\ -CONFIG\_NF\_CT\_NETLINK\_HELPER [=m] \textbf{[M]}\\* -Mit dieser Option wird die Infrastruktur für die Verbindungsnachverfolgung im -Benutzerbereich aktiviert. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{NFQUEUE and NFLOG integration with Connection Tracking}$~$\\ -CONFIG\_NETFILTER\_NETLINK\_GLUE\_CT [=y] \textbf{[Y]}\\* -Wenn diese Option aktiviert ist, können NFQUEUE und NFLOG zusammen mit dem Paket, das über -NFNETLINK in die Warteschlange gestellt wurde, Informationen zur Verbindungsverfolgung enthalten. - -\subparagraph{Network Address Translation support}$~$\\ -CONFIG\_NF\_NAT [=m] \textbf{[M]}\\* -Die NAT"=Option ermöglicht Masquerading, Portweiterleitung und andere Formen der vollständigen -Network Address Port Translation. Dies kann durch iptables, ip6tables oder nft kontrolliert -werden. - -\subparagraph{Netfilter nf\_tables support}$~$\\ -CONFIG\_NF\_TABLES [=m] \textbf{[M]}\\* -nftables ist das neue Rahmenwerk zur Paketklassifizierung, das die bestehende -\{ip,ip6,arp,eb\}\_tables-Infrastruktur ersetzen soll. Es bietet eine -Pseudo-Zustandsmaschine mit einem erweiterbaren Befehlssatz (auch als Ausdrücke -bekannt), den das Userspace-Dienstprogramm \texttt{nft} -(\url{https://www.netfilter.org/projects/nftables}) zum Aufbau des Regelsatzes -verwendet. Außerdem enthält es die generische Set-Infrastruktur, die es Ihnen -ermöglicht, Zuordnungen zwischen Übereinstimmungen und Aktionen zu konstruieren, -um die Leistung zu verbessern. Um es als Modul zu kompilieren, wählen Sie hier M. - -\subsubparagraph{Netfilter nf\_tables mixed IPv4/IPv6 tables support}$~$\\ -CONFIG\_NF\_TABLES\_INET [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für eine gemischte -IPv4/IPv6"=\glqq inet\grqq{}"=Tabelle. - -\subsubparagraph{Netfilter nf\_tables netdev tables support}$~$\\ -CONFIG\_NF\_TABLES\_NETDEV [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für die Tabelle \glqq netdev\grqq{}. - -\subsubparagraph{Netfilter nf\_tables number generator module}$~$\\ -CONFIG\_NFT\_NUMGEN [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck für den Zahlengenerator hinzu, der zur -Durchführung der inkrementellen Zählung und der an eine Obergrenze -gebundenen Zufallszahlen verwendet wird. - -\subsubparagraph{Netfilter nf\_tables conntrack module}$~$\\ -CONFIG\_NFT\_CT [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck "ct" hinzu, den Sie verwenden können, um Informationen -zur Verbindungsverfolgung, wie z.~B. den Status des Datenflusses, abzugleichen. - -\subsubparagraph{Netfilter nf\_tables hardware flow offload module}$~$\\ -CONFIG\_NFT\_FLOW\_OFFLOAD [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq flow\_offload\grqq{} hinzu, mit dem Sie -festlegen können, welche Datenströme in die Hardware eingespeist werden. - -\subsubparagraph{Netfilter nf\_tables connlimit module}$~$\\ -CONFIG\_NFT\_CONNLIMIT [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq connlimit\grqq{} hinzu, den Sie verwenden können, -um die Übereinstimmung von Regeln pro Verbindung zu begrenzen. - -\subsubparagraph{Netfilter nf\_tables log module}$~$\\ -CONFIG\_NFT\_LOG [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq log\grqq{} hinzu, den Sie verwenden können, -um Pakete zu protokollieren, die bestimmten Kriterien entsprechen. - -\subsubparagraph{Netfilter nf\_tables limit module}$~$\\ -CONFIG\_NFT\_LOG [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq limit\grqq{} hinzu, den Sie verwenden können, -um die Übereinstimmung von Regeln zu begrenzen. - -\subsubparagraph{Netfilter nf\_tables masquerade support}$~$\\ -CONFIG\_NFT\_MASQ [=m] \textbf{[M]}\\* -Diese Option fügt den \glqq masquerade\grqq{}"=Ausdruck hinzu, den Sie verwenden -können, um NAT im Masquerade"=Flavour durchzuführen. - -\subsubparagraph{Netfilter nf\_tables redirect support}$~$\\ -CONFIG\_NFT\_REDIR [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq redirect\grqq{} hinzu, mit dem Sie NAT -im Redirect"=Flavour durchführen können. - -\subsubparagraph{Netfilter nf\_tables nat module}$~$\\ -CONFIG\_NFT\_NAT [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq nat\grqq{} hinzu, mit dem Sie typische -NAT-Paketumwandlungen (Network Address Translation) durchführen können. - -\subsubparagraph{Netfilter nf\_tables tunnel module}$~$\\ -CONFIG\_NFT\_TUNNEL [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq tunnel\grqq{} hinzu, den Sie zum Festlegen von -Tunneling-Richtlinien verwenden können. - -\subsubparagraph{Netfilter nf\_tables queue module}$~$\\ -CONFIG\_NFT\_QUEUE [=m] \textbf{[M]}\\* -Dies ist erforderlich, wenn Sie die Userspace"=Warteschlangen"=Infrastruktur (auch -bekannt als NFQUEUE) von nftables verwenden wollen. - -\subsubparagraph{Netfilter nf\_tables quota module}$~$\\ -CONFIG\_NFT\_QUEUE [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq quota\grqq{} hinzu, den Sie verwenden können, -um Byte-Quoten zu erzwingen. - -\subsubparagraph{Netfilter nf\_tables reject support}$~$\\ -CONFIG\_NFT\_REJECT [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq reject\grqq{} hinzu, den Sie verwenden -können, um nicht zugelassenen Datenverkehr explizit abzulehnen und über -TCP-Reset/ICMP"=Informationsfehler zu benachrichtigen. - -\subsubparagraph{Netfilter x\_tables over nf\_tables module}$~$\\ -CONFIG\_NFT\_COMPAT [=m] \textbf{[M]}\\* -Dies ist erforderlich, wenn Sie beabsichtigen, eine der vorhandenen x\_tables -match/target-Erweiterungen über das nf\_tables-Framework zu verwenden. - -\subsubparagraph{Netfilter nf\_tables hash module}$~$\\ -CONFIG\_NFT\_HASH [=m] \textbf{[M]}\\* -Diese Option fügt den Ausdruck \glqq hash\grqq{} hinzu, mit dem Sie eine Hash"=Operation -für Register durchführen können. - -\subsubparagraph{Netfilter nf\_tables fib inet support}$~$\\ -CONFIG\_NFT\_FIB\_INET [=m] \textbf{[M]}\\* -Diese Option ermöglicht die Verwendung des FIB-Ausdrucks aus der Inet"=Tabelle. -Die Suche wird an die IPv4- oder IPv6"=FIB delegiert, je nach dem Protokoll -des Pakets. - -\subsubparagraph{Netfilter nf\_tables xfrm/IPSec security association matching}$~$\\ -CONFIG\_NFT\_XFRM [=m] \textbf{[M]}\\* -Diese Option fügt einen Ausdruck hinzu, den Sie verwenden können, um Eigenschaften einer -Paketsicherheitszuordnung zu extrahieren. - -\subsubparagraph{Netfilter nf\_tables socket match support}$~$\\ -CONFIG\_NFT\_SOCKET [=m] \textbf{[M]}\\* -Diese Option ermöglicht den Abgleich auf das Vorhandensein oder Nichtvorhandensein eines -entsprechenden Sockets und seiner Attribute. - -\subsubparagraph{Netfilter nf\_tables passive OS fingerprint support}$~$\\ -CONFIG\_NFT\_OSF [=m] \textbf{[M]}\\* -Mit dieser Option können Pakete von einem bestimmten Betriebssystem abgeglichen -werden. - -\subsubparagraph{Netfilter nf\_tables tproxy support}$~$\\ -CONFIG\_NFT\_TPROXY [=m] \textbf{[M]}\\* -Dadurch wird die Unterstützung für transparente Proxys in nftables verfügbar. - -\subsubparagraph{Netfilter nf\_tables SYNPROXY expression support}$~$\\ -CONFIG\_NFT\_SYNPROXY [=m] \textbf{[M]}\\* -Mit dem SYNPROXY-Ausdruck können Sie TCP-Verbindungen abfangen und mit -Syncookies aufbauen, bevor sie an den Server weitergeleitet werden. -Auf diese Weise können Sie die Nutzung von Verbindungen und Serverressourcen -bei SYN"=Flood"=Angriffen vermeiden. - -\subsubparagraph{Netfilter packet duplication support}$~$\\ -CONFIG\_NF\_DUP\_NETDEV [=m] \textbf{[M]}\\* -Diese Option aktiviert die generische Infrastruktur zur Paketvervielfältigung -für Netfilter. - -\subsubparagraph{Netfilter nf\_tables netdev packet duplication support}$~$\\ -CONFIG\_NFT\_DUP\_NETDEV [=m] \textbf{[M]}\\* -Mit dieser Option wird die Paketverdopplung für die \glqq netdev\grqq{}"=Familie -aktiviert. - -\subsubparagraph{Netfilter nf\_tables netdev packet forwarding support}$~$\\ -CONFIG\_NFT\_FWD\_NETDEV [=m] \textbf{[M]}\\* -Diese Option aktiviert die Paketweiterleitung für die Familie -\glqq netdev\grqq{}. - -\subsubparagraph{Netfilter nf\_tables netdev fib lookups support}$~$\\ -CONFIG\_NFT\_FIB\_NETDEV [=m] \textbf{[M]}\\* -Diese Option ermöglicht die Verwendung des FIB-Ausdrucks aus der -netdev"=Tabelle. Die Suche wird an die IPv4- oder IPv6"=FIB delegiert, je -nach dem Protokoll des Pakets. - -\subsubparagraph{Netfilter nf\_tables netdev fib REJECT support}$~$\\ -CONFIG\_NFT\_REJECT\_NETDEV [=m] \textbf{[M]}\\* -Diese Option aktiviert die REJECT-Unterstützung in der netdev-Tabelle. -Die Erzeugung von Rück"-sende"-paketen wird an die IPv4- oder IPv6-ICMP- oder -TCP-RST-Implementierung delegiert, je nach dem Protokoll des Pakets. - -\subparagraph{Netfilter flow table mixed IPv4/IPv6 module}$~$\\ -CONFIG\_NF\_FLOW\_TABLE\_INET [=m] \textbf{[M]}\\* -Diese Option fügt die gemischte IPv4/IPv6-Unterstützung der Flow Table hinzu. -Um sie als Modul zu kompilieren, wählen Sie hier M. - -\subparagraph{Netfilter flow table module}$~$\\ -CONFIG\_NF\_FLOW\_TABLE [=m] \textbf{[M]}\\* -Diese Option fügt die Kerninfrastruktur der Ablauftabelle hinzu. Um sie als -Modul zu kompilieren, wählen Sie hier M. - -\subsubparagraph{Supply flow table statistics in procfs}$~$\\ -CONFIG\_NF\_FLOW\_TABLE\_PROCFS [=y] \textbf{[Y]}\\* -Diese Option ermöglicht die Anzeige der Flow-Table-Offload-Statistiken in -procfs unter\\ -net/netfilter/nf\_flowtable. - -\subparagraph{Netfilter Xtables support (required for ip\_tables)}$~$\\ -CONFIG\_NETFILTER\_XTABLES [=m] \textbf{[M]}\\* -Dies ist erforderlich, wenn Sie eine der Tabellen ip\_tables, ip6\_tables oder -arp\_tables verwenden wollen. - -\subsubparagraph{Netfilter Xtables 32bit support}$~$\\ -CONFIG\_NETFILTER\_XTABLES\_COMPAT [=y] \textbf{[Y]}\\* -Diese Option bietet eine Übersetzungsschicht, um 32bit arp,ip(6),ebtables-Binärdateien -auf 64bit-Kerneln laufen zu lassen. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph*{*** Xtables combined modules ***}$~$\\ -\textit{(Xtables kombinierte Module)} - -\subsubparagraph{nfmark target and match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MARK [=m] \textbf{[M]}\\* -Diese Option fügt das \glqq MARK\grqq{}-Ziel und die -\glqq mark\grqq{}"=Übereinstimmung -hinzu. Mit dem Netfilter"=Mark"=Matching können Sie Pakete auf der Grundlage des -\glqq nfmark\grqq{}-Werts im Paket abgleichen. Mit dem Ziel können Sie in der -\glqq mangle\grqq{}-Tabelle Regeln erstellen, die das mit dem Paket verbundene -Feld \glqq netfilter mark\grqq{} (nfmark) ändern. Vor dem Routing kann die -nfmark die Routing-Methode beeinflussen und kann auch von anderen Subsystemen -verwendet werden, um ihr Verhalten zu ändern. - -\subsubparagraph{ctmark target and match support}$~$\\ -CONFIG\_NETFILTER\_XT\_CONNMARK [=m] \textbf{[M]}\\* -Diese Option fügt das Ziel \glqq CONNMARK\grqq{} und die Übereinstimmung -\glqq connmark\grqq{} hinzu. -Netfilter ermöglicht es Ihnen, einen Markierungswert -pro Verbindung (auch bekannt als ctmark) zu speichern, ähnlich wie bei der -Paketmarkierung (nfmark). Mit Hilfe dieses Ziels und der Übereinstimmung können -Sie diese Markierung setzen und abgleichen. - -\subsubparagraph{set target and match support}$~$\\ -CONFIG\_NETFILTER\_XT\_SET [=m] \textbf{[M]}\\* -Diese Option fügt das \glqq SET\grqq{}-Ziel und die \glqq set\grqq{}-Übereinstimmung -hinzu. Mit diesem Ziel und dieser Übereinstimmung können Sie Elemente in den von -ipset(8) erstellten Sets hinzufügen/löschen und abgleichen. Um es als Modul zu -kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph*{*** Xtables combined modules ***}$~$\\ -\textit{(Xtables kombinierte Module)} - -\subsubparagraph{AUDIT target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_AUDIT [=m] \textbf{[M]}\\* -Diese Option fügt ein 'AUDIT'-Ziel hinzu, das verwendet werden kann, um -Audit"=Aufzeichnungen für verworfene/akzeptierte Pakete zu erstellen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, -sagen Sie N. - -\subsubparagraph{CHECKSUM target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_CHECKSUM [=m] \textbf{[M]}\\* -Diese Option fuegt ein \glq CHECKSUM\grq{}-Ziel hinzu, das in der iptables -Mangle-Tabelle verwendet werden kann, um fehlerhafte DHCP"=Clients in -virtualisierten Umgebungen zu umgehen. Einige alte DHCP"=Clients lassen Pakete -fallen, weil sie nicht wissen, dass die Prüfsumme normalerweise auf die -Hardware ausgelagert wird und daher als gültig angesehen werden sollte. Dieses -Ziel kann verwendet werden, um die Prüfsumme mit iptables auszufüllen, wenn -solche Pakete über ein virtuelles Netzwerkgerät gesendet werden. Um es als -Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``CLASSIFY'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_CLASSIFY [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq CLASSIFY\grq{}-Ziel hinzu, das es dem Benutzer -ermöglicht, die Priorität eines Pakets festzulegen. Einige qdiscs können -diesen Wert zur Klassifizierung verwenden, darunter sind:\\[.5em] -atm, cbq, dsmark, pfifo\_fast, htb, prio\\[0.5em] -Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``CONNMARK'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_CONNMARK [=m] \textbf{[M]}\\* -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig).\\ -Mit ihr wird -CONFIG\_NETFILTER\_XT\_CONNMARK (kombiniertes connmark/CONNMARK"=Modul) -ausgewählt. - -\subsubparagraph{``CONNSECMARK'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_CONNSECMARK [=m] \textbf{[M]}\\* -Die Zielvorgabe CONNSECMARK kopiert Sicherheitsmarkierungen von Paketen auf -Verbindungen und stellt Sicherheitsmarkierungen von Verbindungen auf Pakete -wieder her (wenn die Pakete nicht bereits markiert sind). -Er wird normalerweise in Verbindung mit dem SECMARK"=Ziel verwendet.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, -sagen Sie N. - -\subsubparagraph{``CT'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_CT [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq CT\grq{}-Ziel hinzu, das es ermöglicht, anfängliche -Parameter für die Verbindungsverfolgung wie zu übermittelnde Ereignisse -und den zu verwendenden Helfer anzugeben.\\Um es als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``DSCP'' and ``TOS'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_DSCP [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq DSCP\grq{}-Ziel hinzu, mit dem Sie das DSCP-Feld -(Differentiated Services Codepoint) des IPv4/IPv6-Headers manipulieren können. -Das DSCP-Feld kann einen beliebigen Wert zwischen 0x0 und einschließlich 0x3f -haben. Es fügt auch das \glqq TOS\grqq{}-Ziel hinzu, mit dem Sie Regeln in -der \glqq Mangle\grqq{}-Tabelle erstellen können, die das \glqq Type Of -Service\grqq{}-Feld eines IPv4- oder das Prioritätsfeld eines IPv6-Pakets -vor dem Routing ändern.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, -wählen Sie N. - -\subsubparagraph{``HL'' hoplimit target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_HL [=m] \textbf{[M]}\\* -Diese Option fügt die Ziele \glqq HL\grqq{} (für IPv6) und \glqq TTL\grqq{} -(für IPv4) hinzu, die es dem Benutzer ermöglichen, den -Hoplimit-/Time-to-live-Wert des IP-Headers zu ändern. Während es sicher ist, -den Hoplimit/TTL-Wert zu dekrementieren, erlauben die Module auch, den -Hoplimit-Wert des Headers zu erhöhen und auf beliebige Werte zu setzen. -Dies ist EXTREM GEFÄHRLICH, da man leicht unsterbliche Pakete erzeugen kann, -die sich ewig im Netz drehen. - -\subsubparagraph{``HMARK'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_HMARK [=m] \textbf{[M]}\\* -Diese Option fügt das Ziel \glqq HMARK\grqq{} hinzu. Mit diesem Ziel können Sie -in den Tabellen \glqq raw\grqq{} und \glqq mangle\grqq{} Regeln erstellen, -die die skbuff-Marke mittels Hash-Berechnung innerhalb eines bestimmten -Bereichs setzen. Die nfmark kann die Routing-Methode beeinflussen und kann -auch von anderen Teilsystemen verwendet werden, um deren Verhalten zu ändern. -Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{IDLETIMER target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_IDLETIMER [=m] \textbf{[M]}\\* -Diese Option fügt das Ziel \glqq IDLETIMER\grqq{} hinzu. -Jedes übereinstimmende Paket setzt den Timer zurück, der mit dem Label -verbunden ist, das beim Hinzufügen der Regel angegeben wurde. Wenn der -Timer abläuft, löst er eine sysfs-Benachrichtigung aus. Die verbleibende -Zeit bis zum Ablauf kann über sysfs ausgelesen werden. Um es als Modul zu -kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``LED'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_LED [=m] \textbf{[M]}\\* -Diese Option fügt ein `LED'-Ziel hinzu, mit dem Sie LEDs als Reaktion auf -bestimmte Pakete, die Ihren Rechner passieren, blinken lassen können. -Dies kann dazu verwendet werden, eine freie LED in eine Netzwerkaktivitäts-LED -zu verwandeln, die z.~B. nur bei FTP-Übertragungen blinkt. -Oder Sie könnten eine LED haben, die jedes Mal für ein oder zwei Minuten -aufleuchtet, wenn sich jemand über SSH mit Ihrem Rechner verbindet. Damit dies -funktioniert, benötigen Sie Unterstützung für die Klasse \glqq led\grqq{}. So -erstellen Sie einen LED-Auslöser für eingehenden SSH-Verkehr:\\[.5em] -\texttt{iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000}\\[.5em] -Verbinden Sie dann den neuen Auslöser mit einer LED auf Ihrem System:\\[.5em] -\texttt{echo netfilter-ssh $>$ /sys/class/leds/$<$ledname$>$/trigger}\\[.5em] -Weitere Informationen zu den auf Ihrem System verfügbaren LEDs finden Sie unter\\ -Documentation/leds/leds-class.rst - -\subsubparagraph{LOG target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_LOG [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq LOG\grq{}-Ziel hinzu, das es Ihnen erlaubt, Regeln in -jeder iptables-Tabelle zu erstellen, die den Paket-Header im Syslog aufzeichnen. -Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``MARK'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_MARK [=m] \textbf{[M]}\\* -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Mit ihr wird -CONFIG\_NETFILTER\_XT\_MARK (kombiniertes Mark/MARK-Modul) ausgewählt. - -\subsubparagraph{``SNAT and DNAT'' targets support}$~$\\ -CONFIG\_NETFILTER\_XT\_NAT [=m] \textbf{[M]}\\* -Mit dieser Option werden die Ziele SNAT und DNAT aktiviert. Um es als Modul zu -kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``NETMAP'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_NETMAP [=m] \textbf{[M]}\\* -NETMAP ist eine Implementierung der statischen 1:1-NAT-Zuordnung von Netzwerkadressen. -Sie bildet den Teil der Netzwerkadresse ab, während der Teil der Hostadresse intakt bleibt. - -\subsubparagraph{``NFLOG'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_NFLOG [=m] \textbf{[M]}\\* -Diese Option aktiviert das NFLOG-Ziel, das es ermöglicht, Nachrichten über nfnetlink\_log -zu protokollieren. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``NFQUEUE'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_NFQUEUE [=m] \textbf{[M]}\\* -Dieses Ziel hat das alte, veraltete QUEUE-Ziel ersetzt. Im Gegensatz zu QUEUE unterstützt -es 65535 verschiedene Warteschlangen, nicht nur eine. Um es als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``NOTRACK'' target support (DEPRECATED)}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_NFQUEUE [=m] \textbf{[M]}\\* -\textit{Für diese Option gibt es keine Hilfe.} - -\subsubparagraph{``RATEEST'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_RATEEST [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq RATEEST\grq{}-Ziel hinzu, das es ermöglicht, Raten ähnlich wie -bei TC-Schätzern zu messen. Die \glq Rateest\grq{}-Übereinstimmung kann zum Abgleich mit den -gemessenen Raten verwendet werden. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{REDIRECT target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_REDIRECT [=m] \textbf{[M]}\\* -REDIRECT ist ein Spezialfall von NAT: Alle eingehenden Verbindungen werden auf die Adresse -der eingehenden Schnittstelle abgebildet, so dass die Pakete zum lokalen Rechner gelangen, -anstatt durchzugehen. Dies ist nützlich für transparente Proxies. Um es als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{MASQUERADE target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\* -Masquerading ist ein Spezialfall von NAT: Alle ausgehenden Verbindungen werden so verändert, -dass sie von einer bestimmten Schnittstellenadresse zu kommen scheinen, und wenn die Schnittstelle -ausfällt, gehen diese Verbindungen verloren. Dies ist nur für Einwahlkonten mit dynamischer -IP-Adresse nützlich (d.~h. Ihre IP-Adresse wird bei der nächsten Einwahl eine andere sein). -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``TEE'' -- packet cloning to alternate destination}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_TEE [=m] \textbf{[M]}\\* -Diese Option fügt ein \glqq TEE\grqq{}-Ziel hinzu, mit dem ein Paket geklont werden kann und dieser -Klon zu einem anderen Nexthop umgeleitet wird. - -\subsubparagraph{``TPROXY'' target transparent proxying support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_TPROXY [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq TPROXY\grq{}-Ziel hinzu, das dem REDIRECT-Ziel ähnlich ist. -Es kann nur in der Mangle-Tabelle verwendet werden und ist nützlich, um den Verkehr an einen -transparenten Proxy umzuleiten. Im Gegensatz zu REDIRECT ist sie \textbf{nicht} von der -Netfilter-Verbindungsverfolgung und NAT abhängig. Damit es funktioniert, müssen Sie bestimmte -iptables-Regeln konfigurieren und Policy-Routing verwenden. Weitere Informationen zur Einrichtung -finden Sie unter\\ -Documentation/networking/tproxy.rst.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``TRACE'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_TRACE [=m] \textbf{[M]}\\* -Mit dem TRACE-Ziel können Sie Pakete markieren, so dass der Kernel jede Regel protokolliert, -die mit den Paketen übereinstimmt, während diese die Tabellen, Ketten und Regeln durchlaufen. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``SECMARK'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_SECMARK [=m] \textbf{[M]}\\* -Die SECMARK-Zielvorgabe ermöglicht die Sicherheitsmarkierung von Netzpaketen zur Verwendung mit -Sicherheits"=Subsystemen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, -sagen Sie N. - -\subsubparagraph{``TCPMSS'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_TCPMSS [=m] \textbf{[M]}\\* -Diese Option fügt ein \glq TCPMSS\grq{}-Ziel hinzu, das es Ihnen erlaubt, den MSS-Wert von -TCP SYN-Paketen zu ändern, um die maximale Größe für diese Verbindung zu kontrollieren -(normalerweise wird sie auf die MTU Ihrer ausgehenden Schnittstelle minus 40 begrenzt). -Dies wird verwendet, um kriminell hirnlose ISPs oder Server zu überwinden, die ICMP Fragmentation -Needed Pakete blockieren. Dieses Problem äußert sich darin, dass von der Linux-Firewall/vom Router -aus alles gut funktioniert, aber die Rechner dahinter nie große Pakete austauschen können: -\begin{itemize} - \item Webbrowser stellen eine Verbindung her und bleiben dann hängen, ohne dass Daten empfangen werden. - \item Kleine E-Mails funktionieren gut, aber große E-Mails bleiben hängen. - \item ssh funktioniert gut, aber scp hängt sich nach dem ersten Handshaking auf. -\end{itemize} -Abhilfe: Aktivieren Sie diese Option und fügen Sie eine Regel in Ihre Firewall-Konfiguration ein, z.~B:\\[.5em] -\texttt{iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \symbol{`\\}}\\ -\texttt{\hspace*{6em} -j TCPMSS --clamp-mss-to-pmtu}\\[.5em] -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``TCPOPTSTRIP'' target support}$~$\\ -CONFIG\_NETFILTER\_XT\_TARGET\_TCPOPTSTRIP [=m] \textbf{[M]}\\* -Diese Option fügt ein \glqq TCPOPTSTRIP\grqq{}-Ziel hinzu, mit dem Sie TCP-Optionen aus TCP-Paketen -entfernen können. - -\subsubparagraph*{*** Xtables matches ***}$~$\\ -\textit{(Xtables Übereinstimmungen)} - -\subsubparagraph{``addrtype'' address type match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_ADDRTYPE [=m] \textbf{[M]}\\* -Mit dieser Option können Sie festlegen, was das Routing von einer Adresse hält, -z.~B. UNICAST, \mbox{LOCAL}, BROADCAST, ... \hspace{.5em} -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``bpf'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_BPF [=m] \textbf{[M]}\\* -Der BPF-Abgleich wendet einen Linux-Socket-Filter auf jedes Paket an und akzeptiert diejenigen, -für die der Filter einen Wert ungleich Null liefert. Um es als Modul zu kompilieren, wählen Sie -hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``control group'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CGROUP [=m] \textbf{[M]}\\* -Mit dem Socket/Prozess-Kontrollgruppenabgleich können Sie lokal erzeugte Pakete anhand der -Zugehörigkeit von Prozessen zur net\_cls-Kontrollgruppe abgleichen. - -\subsubparagraph{``cluster'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CLUSTER [=m] \textbf{[M]}\\* -Mit dieser Option können Sie arbeitsteilige Cluster von Netzwerkservern/zustandsfähigen Firewalls -aufbauen, ohne einen dedizierten Router/Server/Switch für den Lastausgleich zu haben. -Grundsätzlich gibt diese Übereinstimmung wahr zurück, wenn das Paket von diesem Clusterknoten -verarbeitet werden muss. Somit sehen alle Knoten alle Pakete und diese Übereinstimmung entscheidet, -welcher Knoten welche Pakete bearbeitet. Der Algorithmus für die Arbeitsteilung basiert auf dem -Hashing der Quelladressen. Wenn Sie hier Y oder M sagen, versuchen Sie -\texttt{iptables -m cluster --help} für weitere Informationen. - -\subsubparagraph{``comment'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_COMMENT [=m] \textbf{[M]}\\* -Diese Option fügt einen \glqq Kommentar\grqq{}-Dummy-Match hinzu, der es Ihnen erlaubt, -Kommentare in Ihren iptables-Regelsatz einzufügen. Wenn Du es als Modul kompilieren willst, -sag hier M und lies $<$file:Documentation/kbuild/modules.rst$>$. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``connbytes'' per-connection counter match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CONNBYTES [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq Connbytes\grqq{}-Übereinstimmung hinzu, mit der Sie die Anzahl -der Bytes und/oder Pakete für jede Richtung innerhalb einer Verbindung abgleichen können. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``connlabel'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CONNLABEL [=m] \textbf{[M]}\\* -Mit dieser Zuordnung können Sie benutzerdefinierte Bezeichnungen testen und einer Verbindung -zuweisen. Der Kernel speichert nur Bit-Werte -- die Zuordnung von Namen zu Bits wird vom -Userspace vorgenommen. Anders als bei connmark können einer Verbindung mehr als 32~Flaggenbits -gleichzeitig zugewiesen werden. - -\subsubparagraph{``connlimit'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CONNLIMIT [=m] \textbf{[M]}\\* -Mit diesem Abgleich können Sie die Anzahl der parallelen Verbindungen zu einem Server pro -Client-IP-Adresse (oder Adressblock) abgleichen. - -\subsubparagraph{``connmark'' connection mark match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CONNMARK [=m] \textbf{[M]}\\* -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der -Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_CONNMARK (kombiniertes -connmark/CONNMARK-Modul). - -\subsubparagraph{``conntrack'' connection tracking match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CONNTRACK [=m] \textbf{[M]}\\* -Dies ist ein allgemeines conntrack Abgleichsmodul, eine Obermenge des state match. Es ermöglicht -den Abgleich zusätzlicher Conntrack-Informationen, was in komplexen Konfigurationen wie -NAT-Gateways mit mehreren Internetverbindungen oder Tunneln nützlich ist. Um es als Modul zu -kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``cpu'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_CPU [=m] \textbf{[M]}\\* -Mit dem CPU-Abgleich können Sie Pakete auf der Grundlage der CPU abgleichen, die das Paket gerade -bearbeitet. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``dccp'' protocol match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_DCCP [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, können Sie die iptables-Übereinstimmung \glqq dccp\grqq{} verwenden, -um auf DCCP-Quell-/Zielports und DCCP-Flags zu reagieren. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``devgroup'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_DEVGROUP [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq Gerätegruppe\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung -mit der Gerätegruppe ermöglicht, der ein Netzwerkgerät zugeordnet ist. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``dscp'' and ``tos'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_DSCP [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq DSCP\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit -dem DSCP-Feld des IPv4/IPv6-Headers (Differentiated Services Codepoint) ermöglicht. Das -DSCP-Feld kann einen beliebigen Wert zwischen 0x0 und 0x3f einschließlich haben. Außerdem -wird eine \glqq tos\grqq{}-Übereinstimmung hinzugefügt, die es Ihnen ermöglicht, Pakete auf -der Grundlage der \glqq Type Of Service\grqq{}-Felder des IPv4-Pakets abzugleichen -(die dieselben Bits wie DSCP haben). Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``ecn'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_ECN [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq ECN\grqq{}-Übereinstimmung hinzu, mit der Sie die ECN-Felder -des IPv4- und TCP-Headers abgleichen können. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``esp'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_ESP [=m] \textbf{[M]}\\* -Mit dieser Abgleichserweiterung können Sie einen Bereich von SPIs im ESP-Header von -IPSec-Paketen abgleichen. Um sie als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``hashlimit'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_HASHLIMIT [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq hashlimit\grqq{}-Übereinstimmung hinzu. Im Gegensatz zu -\glqq limit\grqq{} erstellt diese Über"-ein"-stim"-mung dynamisch eine Hash-Tabelle von -Limit-Buckets, die auf Ihrer Auswahl von Quell-/"-Ziel"-adressen und/oder Ports basiert. -Sie ermöglicht es Ihnen, Richtlinien wie -\glqq 10kpps für eine bestimmte Zieladresse\grqq{} oder \glqq 500pps von einer -bestimmten Quelladresse\grqq{} mit einer einzigen Regel auszudrücken. - -\subsubparagraph{``helper'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_HASHLIMIT [=m] \textbf{[M]}\\* -Helper Matching ermöglicht es Ihnen, Pakete in dynamischen Verbindungen, die von einem -conntrack-Helper verfolgt werden, anzupassen, z.~B. nf\_conntrack\_ftp\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie Y. - -\subsubparagraph{``hl'' hoplimit/TTL match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_HL [=m] \textbf{[M]}\\* -Mit dem HL-Matching können Sie Pakete basierend auf dem Hoplimit im IPv6-Header oder dem -Time-to-Live-Feld im IPv4-Header des Pakets abgleichen. - -\subsubparagraph{``ipcomp'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_IPCOMP [=m] \textbf{[M]}\\* -Mit dieser Match-Erweiterung können Sie einen Bereich von CPIs (16 Bits) im IPComp"=Header -von IPSec"=Paketen abgleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``iprange'' address range match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_IPRANGE [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq iprange\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, -eine Übereinstimmung auf der Grundlage eines IP-Adressbereichs zu erzielen. -(Normalerweise passt iptables nur auf einzelne Adressen mit einer optionalen Maske.) -Wenn Sie unsicher sind, sagen Sie M. - -\subsubparagraph{``ipvs'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_IPVS [=m] \textbf{[M]}\\* -Mit dieser Option können Sie die IPVS-Eigenschaften eines Pakets abgleichen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``l2tp'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_L2TP [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq L2TP\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, -die Header"=Felder des L2TP"=Protokolls abzugleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``length'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_LENGTH [=m] \textbf{[M]}\\* -Mit dieser Option können Sie die Länge eines Pakets mit einem bestimmten Wert oder einer -Reihe von Werten vergleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``limit'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_LIMIT [=m] \textbf{[M]}\\* -Mit dem Limit-Matching können Sie die Rate kontrollieren, mit der eine Regel abgeglichen -werden kann: Dies ist vor allem in Kombination mit dem LOG-Target (\glqq LOG-Target-Unterstützung\grqq{}, -unten) und zur Vermeidung einiger Denial-of-Service-Angriffe nützlich. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``mac'' address match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_MAC [=m] \textbf{[M]}\\* -Mit dem MAC-Abgleich können Sie Pakete auf der Grundlage der Ethernet-Quelladresse des Pakets -abgleichen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``mark'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_MARK [=m] \textbf{[M]}\\* -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung -von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MARK (kombiniertes Mark/MARK-Modul). - -\subsubparagraph{``multiport'' Multiple port match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_MULTIPORT [=m] \textbf{[M]}\\* -Mit dem Multiport-Matching können Sie TCP- oder UDP-Pakete auf der Grundlage einer Reihe von Quell- -oder Zielports abgleichen: Normalerweise kann eine Regel nur einen einzigen Bereich von Ports -abgleichen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``nfacct'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_NFACCT [=m] \textbf{[M]}\\* -Mit dieser Option können Sie die erweiterte Buchhaltung über nfnetlink\_acct verwenden. Um es als -Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``osf'' Passive OS fingerprint match}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_OSF [=m] \textbf{[M]}\\* -Mit dieser Option wird das Modul Passive OS Fingerprinting ausgewählt, das einen passiven Abgleich -des entfernten Betriebssystems durch die Analyse eingehender TCP SYN-Pakete ermöglicht. Die Regeln -und die Ladesoftware können von der Website \url{http://www.ioremap.net/projects/osf} -heruntergeladen werden. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``owner'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_OWNER [=m] \textbf{[M]}\\* -Mit dem Socket-Eigentümer-Abgleich können Sie lokal erzeugte Pakete danach abgleichen, wer den -Socket erstellt hat: der Benutzer oder die Gruppe. Es ist auch möglich, zu prüfen, ob ein Socket -tatsächlich existiert. - -\subsubparagraph{IPSEC ``policy'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_POLICY [=m] \textbf{[M]}\\* -Der Richtlinienabgleich ermöglicht es Ihnen, Pakete auf der Grundlage der IPsec-Richtlinie -abzugleichen, die bei der Entkapselung verwendet wurde bzw. bei der Einkapselung verwendet -werden wird. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``physdev'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_PHYSDEV [=m] \textbf{[M]}\\* -Der Physdev-Paketabgleich gleicht die physischen Bridge-Ports ab, an denen das IP-Paket angekommen -ist oder die es verlassen wird. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``pkttype'' packet type match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_PKTTYPE [=m] \textbf{[M]}\\* -Der Pakettyp-Abgleich ermöglicht es Ihnen, ein Paket anhand seiner \glqq Klasse\grqq{} abzugleichen, -z.~B. BROADCAST, MULTICAST, ...\\ -Typische Verwendung:\\[.5em] -\texttt{iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG}\\[.5em] -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``quota'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_QUOTA [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq quota\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit -einem Byte-Zähler ermöglicht. Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und -lesen Sie\\ -$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``rateest'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_RATEEST [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq Rateest\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit -der durch das RATEEST-Ziel geschätzten Rate ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``realm'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_REALM [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq realm\grqq{}-Übereinstimmung hinzu, die es Ihnen erlaubt, den -Realm-Schlüssel aus dem Routing-Subsystem innerhalb von iptables zu verwenden. Diese -Übereinstimmung ähnelt ziemlich genau der Option CONFIG\_NET\_CLS\_ROUTE4 in tc world. -Wenn Du es als Modul kompilieren willst, sage hier M und lies -$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``recent'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_RECENT [=m] \textbf{[M]}\\* -Dieser Abgleich wird verwendet, um eine oder mehrere Listen mit kürzlich verwendeten Adressen -zu erstellen und dann einen Abgleich mit dieser Liste bzw. diesen Listen durchzuführen. -Kurze Optionen sind verfügbar, indem man \texttt{iptables -m recent -h} verwendet. -Offizielle Website: \url{http://snowman.net/projects/ipt_recent/} - -\subsubparagraph{``sctp'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_SCTP [=m] \textbf{[M]}\\* -Wenn diese Option aktiviert ist, können Sie die \glqq sctp\grqq{}-Übereinstimmung verwenden, -um auf SCTP"=Quell\mbox{-/}Zielports und SCTP"=Chunk"=Typen abzustimmen. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und -lesen Sie $<$file:Documentation/kbuild/modules.rst$>$. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``socket'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_SOCKET [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq Socket\grqq{}-Übereinstimmung hinzu, die verwendet werden kann, -um Pakete zu finden, für die ein TCP- oder UDP-Socket-Lookup einen gültigen Socket findet. -Sie kann in Kombination mit dem MARK-Ziel und dem Policy-Routing verwendet werden, um voll -funktionsfähige, nicht ortsgebundene Sockets zu implementieren. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``state'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_STATE [=m] \textbf{[M]}\\* -Mit dem Verbindungsstatusabgleich können Sie Pakete auf der Grundlage ihrer Beziehung -zu einer verfolgten Verbindung (d.~h. früheren Paketen) abgleichen. Dies ist ein -leistungsfähiges Werkzeug zur Klassifizierung von Paketen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``statistic'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_STATISTIC [=m] \textbf{[M]}\\* -Diese Option fügt einen \glqq statistischen\grqq{} Abgleich hinzu, der es ermöglicht, -Pakete periodisch oder zufällig mit einem bestimmten Prozentsatz abzugleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``string'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_STRING [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq String\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, -nach Muster"-über"-ein"-stim"-mungen in Paketen zu suchen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``tcpmss'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_TCPMSS [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq tcpmss\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, -den MSS-Wert von TCP SYN-Paketen zu untersuchen, der die maximale Paketgröße für diese -Verbindung kontrolliert. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``time'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_TIME [=m] \textbf{[M]}\\* -Diese Option fügt eine \glqq Zeit\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, -eine Übereinstimmung auf der Grundlage der Ankunftszeit des Pakets -(auf dem Rechner, auf dem der Netfilter läuft) oder der Abfahrtszeit/des Abfahrtsdatums -(für lokal erzeugte Pakete) zu erzielen. Wenn Sie hier Y für Ja sagen, versuchen Sie -\texttt{iptables -m time --help} um weitere Informationen zu erhalten. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``u32'' match support}$~$\\ -CONFIG\_NETFILTER\_XT\_MATCH\_U32 [=m] \textbf{[M]}\\* -u32 ermöglicht es Ihnen, Mengen von bis zu 4 Bytes aus einem Paket zu extrahieren, sie mit -bestimmten Masken mit UND zu verknüpfen, sie um bestimmte Beträge zu verschieben und zu prüfen, -ob die Ergebnisse in einem der angegebenen Bereiche liegen. -Die Angabe, was extrahiert werden soll, ist allgemein genug, um Header mit im Paket -gespeicherten Längen, wie z.~B. IP- oder TCP-Header-Längen, zu überspringen. -Details und Beispiele sind im Quelltext des Kernelmoduls zu finden. - -\paragraph{IP set support} \texorpdfstring{$\rightarrow$}{->}$~$\\ -CONFIG\_IP\_SET [=m] \textbf{[M]}\\* -Diese Option erweitert den Kernel um die Unterstützung von IP-Sets. Um die Sets zu definieren -und zu verwenden, benötigen Sie das Userspace-Dienstprogramm ipset(8). Sie können die Sets in -netfilter über die \glqq set\grqq{}-Übereinstimmung und das \glqq SET\grqq{}-Ziel verwenden. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Maximum number of IP sets}$~$\\ -CONFIG\_IP\_SET\_MAX [=256] \textbf{[256]}\\ -Sie können hier den Standardwert für die maximale Anzahl von IP-Sets für den Kernel festlegen. -Der Wert kann durch den Modulparameter \glqq max\_sets\grqq{} des Moduls \glqq ip\_set\grqq{} -überschrieben werden.\\[.5em] -Symbol: IP\_SET\_MAX [=256]\\ -Type : Ganzzahl (integer)\\ -Bereich: [2 65534] - -\subparagraph{bitmap:ip set support}$~$\\ -CONFIG\_IP\_SET\_BITMAP\_IP [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs bitmap:ip set hinzu, mit dem man IPv4-Adressen -(oder Netzwerkadressen) aus einem Bereich speichern kann.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{bitmap:ip,mac set support}$~$\\ -CONFIG\_IP\_SET\_BITMAP\_IPMAC [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs bitmap:ip,mac set hinzu, mit dem man Paare -von IPv4-Adressen und (Quell-)MAC-Adressen aus einem Bereich speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{bitmap:port set support}$~$\\ -CONFIG\_IP\_SET\_BITMAP\_PORT [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs bitmap:port set hinzu, mit dem man -TCP/UDP"=Portnummern aus einem Bereich speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IP [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip set hinzu, mit dem man beliebige -IPv4- oder IPv6-Adressen (oder Netzwerkadressen) in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip,mark set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IPMARK [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip,mark set hinzu, mit dem man -IPv4/IPv6-Adress- und Markenpaare speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip,port set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IPPORT [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip,port set hinzu, mit dem man -IPv4/IPv6-Adressen und Protokoll/Port-Paare speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip,port,ip set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IPPORTIP [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip,port,ip set hinzu, mit dem man -IPv4/IPv6-Adress-, Protokoll/Port- und IPv4/IPv6-Adress-Tripel in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip,port,net set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IPPORTNET [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip,port,net hinzu, mit dem man -IPv4/IPv6"=Adress-, Protokoll/Port- und IPv4/IPv6"=Netzwerkadressen/Präfix"=Tripel in -einem Set speichern kann.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:ip,mac set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_IPMAC [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:ip,mac set hinzu, mit dem man Paare -von IPv4/IPv6-Adressen und MAC (Ethernet-Adresse) in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:mac set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_MAC [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:mac set hinzu, mit dem man -MAC"=Elemente (Ethernet"=Adressen) in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:net,port,net set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_NETPORTNET [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:net,port,net set hinzu, mit dem man -zwei IPv4/IPv6-Subnetze und ein Protokoll/Port in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - - -\subparagraph{hash:net set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_NET [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:net set hinzu, mit dem man -IPv4/IPv6"=Netzwerkadressen/Präfixe in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:net,net set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_NETNET [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:net,net set hinzu, mit dem man -IPv4/IPv6"=Netzwerkadressen/Präfixpaare in einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:net,port set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_NETPORT [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:net,port set hinzu, mit dem -man IPv4/IPv6"=Netzwerkadressen/Präfix und Protokoll/Port"=Paare als Elemente in einem -Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{hash:net,iface set support}$~$\\ -CONFIG\_IP\_SET\_HASH\_NETIFACE [=m] \textbf{[M]}\\ -Diese Option fügt die Unterstützung des Typs hash:net,port set hinzu, mit dem man -IPv4/IPv6"=Netzwerkadressen/Präfix und Schnittstellennamenpaare als Elemente in -einem Set speichern kann. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{list:set set support}$~$\\ -CONFIG\_IP\_SET\_LIST\_SET [=m] \textbf{[M]}\\ -Mit dieser Option wird die Unterstützung des Typs list:set hinzugefügt. In dieser Art -von Set kann man den Namen anderer Sets speichern und es bildet eine geordnete -Vereinigung der Mitglieds"=Sets. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{IP virtual server support \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_IP\_VS [=m] \textbf{[M]}\\ -Mit der Unterstützung von IP Virtual Server können Sie einen hochleistungsfähigen virtuellen -Server auf der Grundlage eines Clusters von zwei oder mehr realen Servern erstellen. Diese -Option muss für mindestens einen der Computer im Cluster aktiviert werden, der die eingehenden -Verbindungen zu einer einzelnen IP-Adresse abfängt und sie an reale Server weiterleitet.\\ -Es sind drei Techniken zur Verteilung von Anfragen implementiert: virtueller Server über NAT, -virtueller Server über Tunneling und virtueller Server über direktes Routing. -Mit Hilfe der verschiedenen Planungs"-algorithmen kann ausgewählt werden, zu welchem Server die -Verbindung geleitet wird, so dass ein Lastausgleich zwischen den Servern erreicht werden kann. -Weitere Informationen und das Verwaltungsprogramm finden Sie unter der folgenden URL: -\url{http://www.linuxvirtualserver.org/}.\\ -Wenn Sie es im Kernel kompilieren wollen, geben Sie Y an. Um es als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IPv6 support for IPVS}$~$\\ -CONFIG\_IP\_VS\_IPV6 [=y] \textbf{[Y]}\\ -Hinzufügen von IPv6-Unterstützung zu IPVS. -Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph{IP virtual server debugging}$~$\\ -CONFIG\_IP\_VS\_DEBUG [=n] \textbf{[N]}\\ -Geben Sie hier Y ein, wenn Sie zusätzliche Meldungen erhalten möchten, die bei der Fehlersuche -im Code des virtuellen IP"=Servers nützlich sind. Sie können die Debug"=Ebene -in /proc/sys/net/ipv4/vs/debug\_level ändern. - -\subparagraph{IPVS connection table size (the Nth power of 2)}$~$\\ -CONFIG\_IP\_VS\_TAB\_BITS [=15] \textbf{[15]}\\ -\textit{Größe der IPVS-Verbindungstabelle (die n-te Potenz von 2)}\\ -Die IPVS-Verbindungs-Hashtabelle verwendet das Verkettungsschema, um Hash-Kollisionen zu behandeln. -Durch die Verwendung einer großen IPVS"=Verbindungs"=Hashtabelle werden Konflikte bei -Hunderttausenden von Verbindungen in der Hashtabelle erheblich reduziert.\\ -Beachten Sie, dass die Tabellengröße eine Potenz von 2 sein muss. Die Tabellengröße ist der -Wert von 2~hoch der von Ihnen eingegebenen Zahl. Die zu wählende Zahl liegt zwischen 8 und 27 -für 64BIT (sonst 20), die Standardzahl ist 12, was eine Tabellengröße von 4096 bedeutet. -Geben Sie die Zahl nicht zu klein ein, sonst verlieren Sie Leistung. Sie können die -Tabellengröße selbst anpassen, je nach Ihrer virtuellen Serveranwendung. Es ist gut, die -Tabellengröße nicht viel kleiner als die Anzahl der Verbindungen pro Sekunde, multipliziert -mit der durchschnittlichen Dauer der Verbindung in der Tabelle, festzulegen. -Zum Beispiel, Ihr virtueller Server bekommt 200~Verbindungen pro Sekunde, die Verbindung dauert -im Durchschnitt 200~Sekunden in der Verbindungstabelle, die Tabellengröße sollte nicht viel -kleiner als 200x200 sein, es ist gut, die Tabellengröße 32768 (2**15) zu setzen. -Ein weiterer Hinweis: Jede Verbindung belegt effektiv 128~Bytes und jeder Hash-Eintrag 8~Bytes, -so dass Sie abschätzen können, wie viel Speicher für Ihre Box benötigt wird.\\ -Sie können diese Zahl überschreiben, indem Sie den Modulparameter -conn\_tab\_bits setzen oder indem Sie \texttt{ip\_vs.conn\_tab\_bits=?} an die -Kernel"=Befehlszeile anhängen, wenn IP VS integriert kompiliert wurde. -Symbol: IP\_VS\_TAB\_BITS [=15]\\ -Typ: Ganzzahl (integer)\\ -Bereich (range): [8 27] - -\subparagraph*{*** IPVS transport protocol load balancing support ***}$~$\\ -\textit{(*** Unterstützung des IPVS-Transportprotokolls für den Lastausgleich ***)} - -\subparagraph{TCP load balancing support}$~$\\ -CONFIG\_IP\_VS\_PROTO\_TCP [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung des TCP-Transportprotokolls für den Lastausgleich. -Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph{UDP load balancing support}$~$\\ -CONFIG\_IP\_VS\_PROTO\_UDP [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung des UDP-Transportprotokolls für den Lastausgleich. -Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph{ESP load balancing support}$~$\\ -CONFIG\_IP\_VS\_PROTO\_ESP [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung des Transportprotokolls ESP (Encapsulation Security -Payload) für den Lastausgleich. Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph{AH load balancing support}$~$\\ -CONFIG\_IP\_VS\_PROTO\_AH [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung für den Lastausgleich des AH -(Authentication Header)"=Transportprotokolls. Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph{SCTP load balancing support}$~$\\ -CONFIG\_IP\_VS\_PROTO\_SCTP [=y] \textbf{[Y]}\\ -Diese Option aktiviert die Unterstützung des SCTP-Transportprotokolls für den Lastausgleich. -Sagen Sie Y, wenn Sie unsicher sind. - -\subparagraph*{*** IPVS scheduler ***}$~$\\ -\textit{(*** IPVS-Scheduler/Zeitplaner ***)} - -\subparagraph{round-robin scheduling}$~$\\ -CONFIG\_IP\_VS\_RR [=m] \textbf{[M]}\\ -Der Round-Robin-Scheduling-Algorithmus leitet die Netzverbindungen einfach nach dem -Rotationsprinzip an verschiedene reale Server weiter. -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{weighted round-robin scheduling}$~$\\ -CONFIG\_IP\_VS\_WRR [=m] \textbf{[M]}\\ -Der gewichtete Round-Robin-Planungsalgorithmus leitet Netzverbindungen auf der Grundlage von -Server"-gewichten in einem Round-Robin-Verfahren an verschiedene reale Server weiter. -Server mit höherer Gewichtung erhalten neue Verbindungen zuerst als solche mit geringerer -Gewichtung, und Server mit höherer Gewichtung erhalten mehr Verbindungen als solche mit -geringerer Gewichtung und Server mit gleicher Gewichtung erhalten gleiche Verbindungen. -Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{least-connection scheduling}$~$\\ -CONFIG\_IP\_VS\_LC [=m] \textbf{[M]}\\ -Der Least-Connection-Scheduling-Algorithmus leitet Netzwerkverbindungen an den Server -mit der geringsten Anzahl aktiver Verbindungen weiter. -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{weighted least-connection scheduling}$~$\\ -CONFIG\_IP\_VS\_WLC [=m] \textbf{[M]}\\ -Der gewichtete Least-Connection-Scheduling-Algorithmus leitet die Netzwerkverbindungen zu -dem Server mit den wenigsten aktiven Verbindungen, normalisiert durch das Servergewicht. -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{weighted failover scheduling}$~$\\ -CONFIG\_IP\_VS\_FO [=m] \textbf{[M]}\\ -Der gewichtete Failover-Planungsalgorithmus leitet die Netzwerkverbindungen an den Server -mit der höchsten Gewichtung, der gerade verfügbar ist. Wenn Sie ihn im Kernel kompilieren -wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{weighted overflow scheduling}$~$\\ -CONFIG\_IP\_VS\_OVF [=m] \textbf{[M]}\\ -Der gewichtete Überlaufplanungsalgorithmus leitet die Netzwerkverbindungen zu dem Server -mit dem höchsten Gewicht, der gerade verfügbar ist, und geht zum nächsten über, wenn die -aktiven Verbindungen das Gewicht des Knotens überschreiten. -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{locality-based least-connection scheduling}$~$\\ -CONFIG\_IP\_VS\_LBLC [=m] \textbf{[M]}\\ -Der ortsbezogene Planungsalgorithmus für die kleinste Verbindung ist für den -IP-Lastausgleich bestimmt. Er wird normalerweise in Cache-Clustern verwendet. -Dieser Algorithmus leitet Pakete, die für eine IP-Adresse bestimmt sind, in der -Regel an ihren Server weiter, wenn der Server aktiv und ausgelastet ist. Wenn -der Server überlastet ist (die Anzahl seiner aktiven Verbindungen ist größer als -sein Gewicht) und es einen Server mit halber Auslastung gibt, wird dieser -IP"=Adresse der gewichtete Server mit der geringsten Verbindung zugewiesen. -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu -kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{locality-based least-connection with replication scheduling}$~$\\ -CONFIG\_IP\_VS\_LBLCR [=m] \textbf{[M]}\\ -Der ortsbezogene Algorithmus zur Planung der kleinsten Verbindung mit Replikation ist -ebenfalls für den IP"=Lastausgleich bestimmt. Er wird normalerweise in Cache"=Clustern -verwendet. Er unterscheidet sich von der LBLC"=Planung wie folgt: Der Lastverteiler -unterhält Zuordnungen von einem Ziel zu einer Gruppe von Serverknoten, die das Ziel -bedienen können. Anfragen für ein Ziel werden dem Knoten mit der geringsten Verbindung -in der Servergruppe des Ziels zugewiesen. Wenn alle Knoten in der Servergruppe überlastet -sind, wird ein Knoten mit der geringsten Verbindung im Cluster ausgewählt und der -Servergruppe für das Ziel hinzugefügt. Wenn der Serversatz für die angegebene Zeit nicht -geändert wurde, wird der am stärksten belastete Knoten aus dem Serversatz entfernt, um -ein hohes Maß an Replikation zu vermeiden. -Wenn Sie es im Kernel kompilieren wollen, geben Sie Y an. Um es als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{destination hashing scheduling}$~$\\ -CONFIG\_IP\_VS\_DH [=m] \textbf{[M]}\\ -Der Ziel-Hash-Scheduling-Algorithmus weist den Servern Netzwerkverbindungen zu, indem er -eine statisch zugewiesene Hash-Tabelle nach ihren Ziel-IP-Adressen durchsucht. -Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{source hashing scheduling}$~$\\ -CONFIG\_IP\_VS\_SH [=m] \textbf{[M]}\\ -Der Source-Hashing-Scheduling-Algorithmus weist den Servern Netzwerkverbindungen zu, indem -er eine statisch zugewiesene Hash-Tabelle nach ihren Quell-IP-Adressen durchsucht. -Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, -wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{maglev hashing scheduling}$~$\\ -CONFIG\_IP\_VS\_MH [=m] \textbf{[M]}\\ -Der Maglev Consistent Hashing Scheduling Algorithmus stellt den Maglev Hashing Algorithmus -von Google als IPVS Scheduler zur Verfügung. Er weist den Servern Netzwerkverbindungen zu, -indem er eine statisch zugewiesene spezielle Hash"=Tabelle, die so genannte Lookup"=Tabelle, -nachschlägt. Der Maglev"=Hash"=Algorithmus weist jedem Ziel eine Präferenzliste aller Positionen -der Nachschlagetabelle zu.\\ -Durch diesen Vorgang gibt das Maglev-Hashing jedem der Ziele einen nahezu gleichen Anteil an -der Nach"-schlage"-tabelle und sorgt für eine minimale Störung durch die Verwendung der -Nachschlagetabelle. Wenn sich die Menge der Ziele ändert, wird eine Verbindung wahrscheinlich -an dasselbe Ziel wie zuvor gesendet.\\ -Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{shortest expected delay scheduling}$~$\\ -CONFIG\_IP\_VS\_SED [=m] \textbf{[M]}\\ -Der Scheduling-Algorithmus mit der kürzesten erwarteten Verzögerung weist die Netzverbindungen -dem Server mit der kürzesten erwarteten Verzögerung zu. Die erwartete Verzögerung, die der -Auftrag erfährt, ist $(C_i + 1) / U_i$, wenn er an den i-ten Server gesendet wird, wobei $C_i$ -die Anzahl der Verbindungen auf dem i-ten Server und $U_i$ die feste Dienstrate (Gewicht) des -i-ten Servers ist.\\ -Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{never queue scheduling}$~$\\ -CONFIG\_IP\_VS\_NQ [=m] \textbf{[M]}\\ -Der Algorithmus für die Planung der Warteschlange \glqq Never Queue\grqq{} basiert auf einem Modell mit -zwei Geschwindigkeiten. Wenn ein ungenutzter Server verfügbar ist, wird der Auftrag an den -ungenutzten Server geschickt, anstatt auf einen schnellen Server zu warten. Wenn kein freier -Server verfügbar ist, wird der Auftrag an den Server geschickt, bei dem die erwartete Verzögerung -am geringsten ist (Scheduling"=Algorithmus mit der kürzesten erwarteten Verzögerung).\\ -Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{weighted random twos choice least-connection scheduling}$~$\\ -CONFIG\_IP\_VS\_TWOS [=m] \textbf{[M]}\\ -Der Algorithmus für die gewichtete zufällige Zweierauswahl der geringsten Verbindungen wählt zwei zufällige -reale Server aus und leitet die Netzverbindungen zu dem Server mit den wenigsten aktiven Verbindungen, -normiert durch das Servergewicht.\\ -Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph*{*** IPVS SH scheduler ***}$~$\\ -\textit{(*** IPVS-SH-Scheduler/Zeitplaner ***)} - -\subparagraph{IPVS source hashing table size (the Nth power of 2)}$~$\\ -CONFIG\_IP\_VS\_SH\_TAB\_BITS [=8] \textbf{[8]}\\ -Der Quell-Hashing-Scheduler ordnet Quell-IPs den in einer Hash-Tabelle gespeicherten Zielen zu. -Diese Tabelle wird für jedes Ziel so lange abgearbeitet, bis alle Plätze in der Tabelle gefüllt sind. -Wenn Gewichte verwendet werden, damit die Ziele mehr Verbindungen erhalten können, wird die Tabelle -proportional zu den angegebenen Gewichten gekachelt. Die Tabelle muss groß genug sein, um alle Ziele, -multipliziert mit ihren jeweiligen Gewichten, effektiv aufzunehmen. -Symbol: IP\_VS\_SH\_TAB\_BITS [=8]\\ -Typ: Ganzzahl (integer)\\ -Bereich: [4 20] - -\subparagraph*{*** IPVS MH scheduler ***}$~$\\ -\textit{(*** IPVS-MH-Scheduler/Zeitplaner ***)} - -\subparagraph{IPVS maglev hashing table index of size (the prime numbers)}$~$\\ -CONFIG\_IP\_VS\_MH\_TAB\_INDEX [=12] \textbf{[12]}\\ -Der Maglev-Hashing-Scheduler ordnet Quell-IPs Zielen zu, die in einer Hash-Tabelle gespeichert sind. -Diese Tabelle wird durch eine Präferenzliste der Positionen jedem Ziel zugewiesen, bis alle Slots in -der Tabelle gefüllt sind. Der Index bestimmt die Primzahl für die Größe der Tabelle: 251, 509, 1021, -2039, 4093, 8191, 16381, 32749, 65521 oder 131071. Bei der Verwendung von Gewichtungen, die es den -Zielen ermöglichen, mehr Verbindungen zu erhalten, wird der Tabelle ein Betrag proportional zu den -angegebenen Gewichtungen zugewiesen. Die Tabelle muss groß genug sein, um alle Ziele, multipliziert -mit ihren jeweiligen Gewichtungen, effektiv aufzunehmen.\\ -Symbol: IP\_VS\_MH\_TAB\_INDEX [=12]\\ -Typ : Ganzzahl (integer)\\ -Bereich : [8 17] - -\subparagraph*{*** IPVS application helper ***}$~$\\ -\textit{(*** IPVS-Anwendungshilfe ***)} - -\subparagraph{FTP protocol helper}$~$\\ -CONFIG\_IP\_VS\_FTP [=m] \textbf{[M]}\\ -FTP ist ein Protokoll, das IP-Adressen und/oder Portnummern in der Nutzlast überträgt. -Im virtuellen Server über Network Address Translation können die IP-Adresse und die Portnummer -des realen Servers nicht direkt an die Clients in FTP-Verbindungen gesendet werden, so dass -ein FTP-Protokollhelfer erforderlich ist, um die Verbindung zu verfolgen und sie in die des -virtuellen Dienstes zurückzuverwandeln.\\ -Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Netfilter connection tracking}$~$\\ -CONFIG\_IP\_VS\_NFCT [=y] \textbf{[Y]}\\ -Durch die Unterstützung der Netfilter-Verbindungsverfolgung kann der IPVS-Verbindungsstatus -zu Filterzwecken in das Netfilter-Framework exportiert werden. - -\subparagraph{SIP persistence engine}$~$\\ -CONFIG\_IP\_VS\_PE\_SIP [=m] \textbf{[M]}\\ -Persistenz auf Basis der SIP Call-ID zulassen - -\paragraph{IP: Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ -\textit{IP: Netzfilter-Konfiguration} - -\subparagraph{IPv4 socket lookup support}$~$\\ -CONFIG\_NF\_SOCKET\_IPV4 [=m] \textbf{[M]}\\ -Diese Option aktiviert die IPv4-Socket-Lookup-Infrastruktur. Dies ist für die -Socket-Übereinstimmung \{ip,nf\}tables erforderlich. - -\subparagraph{IPv4 tproxy support}$~$\\ -CONFIG\_NF\_TPROXY\_IPV4 [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{IPv4 nf\_tables support}$~$\\ -CONFIG\_NF\_TABLES\_IPV4 [=y] \textbf{[Y]}\\ -Diese Option aktiviert die IPv4-Unterstützung für nf\_tables. - -\subsubparagraph{IPv4 nf\_tables packet duplication support}$~$\\ -CONFIG\_NFT\_DUP\_IPV4 [=y] \textbf{[Y]}\\ -Dieses Modul ermöglicht die Unterstützung der IPv4-Paketduplikation für nf\_tables. - -\subsubparagraph{nf\_tables fib / ip route lookup support}$~$\\ -CONFIG\_NFT\_FIB\_IPV4 [=m] \textbf{[M]}\\ -Dieses Modul ermöglicht IPv4-FIB-Lookups, z.~B. für Reverse Path Filtering. -Es ermöglicht auch die Abfrage der FIB nach dem Routentyp, z.~B. lokal, Unicast, -Multicast oder Blackhole. - -\subparagraph{ARP nf\_tables support}$~$\\ -CONFIG\_NF\_TABLES\_ARP [=y] \textbf{[Y]}\\ -Diese Option aktiviert die ARP-Unterstützung für nf\_tables. - -\subparagraph{Netfilter IPv4 packet duplication to alternate destination}$~$\\ -CONFIG\_NF\_DUP\_IPV4 [=m] \textbf{[M]}\\ -Diese Option aktiviert den nf\_dup\_ipv4"=Kern, der ein IPv4"=Paket dupliziert, -um es an ein anderes Ziel umzuleiten. - -\subparagraph{ARP packet logging}$~$\\ -CONFIG\_NF\_LOG\_ARP [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. - -\subparagraph{IPv4 packet logging}$~$\\ -CONFIG\_NF\_LOG\_IPV4 [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. - -\subparagraph{IPv4 packet rejection}$~$\\ -CONFIG\_NF\_REJECT\_IPV4 [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{Basic SNMP-ALG support}$~$\\ -CONFIG\_NF\_NAT\_SNMP\_BASIC [=m] \textbf{[M]}\\ -Dieses Modul implementiert ein Application Layer Gateway (ALG) für SNMP"=Payloads. -In Verbindung mit NAT ermöglicht es einem Netzwerkmanagementsystem den Zugang zu -mehreren privaten Netzwerken mit widersprüchlichen Adressen. Dabei werden die IP-Adressen -in den SNMP-Payloads so geändert, dass sie mit der IP-Layer-NAT-Zuordnung übereinstimmen. -Dies ist die \glqq Grundform\grqq{} von SNMP"=ALG, wie in RFC~2962 beschrieben.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{IP tables support (required for filtering/masq/NAT)}$~$\\ -CONFIG\_IP\_NF\_IPTABLES [=m] \textbf{[M]}\\ -iptables ist ein allgemeines, erweiterbares Framework zur Paketidentifizierung. -Die Subsysteme fuer Paketfilterung und vollstaendiges NAT (Masquerading, Portweiterleitung, etc.) -benutzen dies nun: sage hier Y oder M, wenn Du eines davon benutzen willst. -Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``ah'' match support}$~$\\ -CONFIG\_IP\_NF\_MATCH\_AH [=m] \textbf{[M]}\\ -Mit dieser Match-Erweiterung können Sie einen Bereich von SPIs im AH-Header von IPSec-Paketen abgleichen. -Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``ecn'' match support}$~$\\ -CONFIG\_IP\_NF\_MATCH\_ECN [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_ECN aus. - -\subsubparagraph{``rpfilter'' reverse path filter match support}$~$\\ -CONFIG\_IP\_NF\_MATCH\_RPFILTER [=m] \textbf{[M]}\\ -Mit dieser Option können Sie Pakete abgleichen, deren Antworten über die Schnittstelle hinausgehen würden, -über die das Paket eingegangen ist. -Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. Das Modul wird \texttt{ipt\_rpfilter} heißen. - -\subsubparagraph{``ttl'' match support}$~$\\ -CONFIG\_IP\_NF\_MATCH\_TTL [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_HL aus. - -\subsubparagraph{Packet filtering}$~$\\ -CONFIG\_IP\_NF\_FILTER [=m] \textbf{[M]}\\ -Paketfilterung definiert eine Tabelle \texttt{filter}, die eine Reihe von Regeln für einfache -Paketfilterung bei der lokalen Eingabe, Weiterleitung und lokalen Ausgabe enthält. Siehe die Manpage -für iptables(8).\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{REJECT target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_REJECT [=m] \textbf{[M]}\\ -Mit dem REJECT-Ziel kann eine Filterregel angeben, dass als Antwort auf ein eingehendes Paket -ein ICMP-Fehler ausgegeben werden soll, anstatt es stillschweigend zu verwerfen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{SYNPROXY target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_SYNPROXY [=m] \textbf{[M]}\\ -Das SYNPROXY-Ziel ermöglicht es Ihnen, TCP-Verbindungen abzufangen und sie unter Verwendung von -Syncookies aufzubauen, bevor sie an den Server weitergeleitet werden. Auf diese Weise können Sie -die Verfolgung von Verbindungen und die Nutzung von Serverressourcen bei SYN-Flood-Angriffen vermeiden.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -%14.1.15.5.10.7 -\subsubparagraph{iptables NAT support}$~$\\ -CONFIG\_IP\_NF\_NAT [=m] \textbf{[M]}\\ -Dies aktiviert die \texttt{nat}-Tabelle in iptables. Dies erlaubt Masquerading, Portweiterleitung und -andere Formen der vollständigen Network Address Port Translation. -Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{MASQUERADE target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt NETFILTER\_XT\_TARGET\_MASQUERADE aus. - -\subsubsubparagraph{NETMAP target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_NETMAP [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung -von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_NETMAP aus. - -\subsubsubparagraph{REDIRECT target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_REDIRECT [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung -von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_REDIRECT aus. - -\subsubparagraph{Packet mangling}$~$\\ -CONFIG\_IP\_NF\_MANGLE [=m] \textbf{[M]}\\ -Diese Option fügt eine \glqq mangle\grqq{}-Tabelle zu iptables hinzu: siehe die Manpage für -iptables(8). -Diese Tabelle wird fuer verschiedene Paketveraenderungen benutzt, die beeinflussen koennen, -wie das Paket weitergeleitet wird. -Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{ECN target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_ECN [=m] \textbf{[M]}\\ -Diese Option fügt ein \glqq ECN\grqq{}-Ziel hinzu, das in der iptables"=Mangeltabelle verwendet -werden kann. -Sie können dieses Ziel verwenden, um die ECN-Bits aus dem IPv4-Header eines IP-Pakets zu entfernen. -Dies ist besonders nützlich, wenn Sie bestehende ECN-Blackholes im Internet umgehen müssen, -aber die ECN-Unterstützung nicht generell abschalten wollen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{``TTL'' target support}$~$\\ -CONFIG\_IP\_NF\_TARGET\_TTL [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option, die dem Benutzer die Arbeit erleichtert (z.~B. wenn -er oldconfig verwendet). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_HL aus. - -\subsubparagraph{raw table support (required for NOTRACK/TRACE)}$~$\\ -CONFIG\_IP\_NF\_RAW [=m] \textbf{[M]}\\ -Diese Option fügt eine "rohe" Tabelle zu iptables hinzu. Diese Tabelle ist die allererste im -Netfilter-Framework und hakt sich bei den PREROUTING- und OUTPUT"=Ketten ein. -Wenn Sie sie als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{Security table}$~$\\ -CONFIG\_IP\_NF\_SECURITY [=m] \textbf{[M]}\\ -Diese Option fügt eine \glqq Security\grqq{}-Tabelle zu iptables hinzu, für die Verwendung -mit der Mandatory Access Control (MAC) Richtlinie. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ARP tables support}$~$\\ -CONFIG\_IP\_NF\_ARPTABLES [=m] \textbf{[M]}\\ -arptables ist ein allgemeiner, erweiterbarer Rahmen für die Paketidentifizierung. Die -ARP-Paketfilter- und -Manipulations-Subsysteme verwenden es: Sagen Sie hier Y oder M, -wenn Sie eines von beiden verwenden wollen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{ARP packet filtering}$~$\\ -CONFIG\_IP\_NF\_ARPFILTER [=m] \textbf{[M]}\\ -Die ARP-Paketfilterung definiert eine Tabelle \glqq filter\grqq{}, die eine Reihe von -Regeln für die einfache ARP"=Paketfilterung am lokalen Eingang und am lokalen Ausgang enthält. -Auf einer Bridge können Sie auch Filterregeln für weitergeleitete ARP-Pakete angeben. -Siehe die Manpage für arptables(8). -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{ARP payload mangling}$~$\\ -CONFIG\_IP\_NF\_ARP\_MANGLE [=m] \textbf{[M]}\\ -Ermöglicht die Änderung der ARP-Paket-Nutzlast: Quell- und Ziel-Hardware- und Netzwerkadressen. - -\paragraph{IPv6: Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ -\textit{IPv6: Netzfilter-Konfiguration} - -\subparagraph{IPv6 socket lookup support}$~$\\ -CONFIG\_NF\_SOCKET\_IPV6 [=m] \textbf{[M]}\\ -Diese Option aktiviert die IPv6-Socket-Lookup-Infrastruktur. Dies ist für die -Socket-Übereinstimmung \{ip6,nf\}tables erforderlich. - -\subparagraph{IPv6 tproxy support}$~$\\ -CONFIG\_NF\_TPROXY\_IPV6 [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{IPv6 nf\_tables support}$~$\\ -CONFIG\_NF\_TABLES\_IPV6 [=y] \textbf{[Y]}\\ -Diese Option aktiviert die IPv6-Unterstützung für nf\_tables. - -\subsubparagraph{IPv6 nf\_tables packet duplication support}$~$\\ -CONFIG\_NFT\_DUP\_IPV6 [=y] \textbf{[Y]}\\ -Dieses Modul ermöglicht die Unterstützung der IPv6-Paketduplikation für nf\_tables. - -\subsubparagraph{nf\_tables fib / ipv6 route lookup support}$~$\\ -CONFIG\_NFT\_FIB\_IPV6 [=m] \textbf{[M]}\\ -Dieses Modul ermöglicht IPv6-FIB-Lookups, z.~B. für Reverse Path Filtering. -Es ermöglicht auch die Abfrage der FIB nach dem Routentyp, z.~B. lokal, Unicast, -Multicast oder Blackhole. - -\subparagraph{Netfilter IPv6 packet duplication to alternate destination}$~$\\ -CONFIG\_NF\_DUP\_IPV6 [=m] \textbf{[M]}\\ -Diese Option aktiviert den nf\_dup\_ipv6"=Kern, der ein IPv6"=Paket dupliziert, -um es an ein anderes Ziel umzuleiten. - -\subparagraph{IPv6 packet rejection}$~$\\ -CONFIG\_NF\_REJECT\_IPV6 [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{IPv6 packet logging}$~$\\ -CONFIG\_NF\_LOG\_IPV6 [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. - -\subparagraph{IP6 tables support (required for filtering)}$~$\\ -CONFIG\_IP6\_NF\_IPTABLES [=m] \textbf{[M]}\\ -ip6tables ist ein allgemeines, erweiterbares Framework zur Paketidentifizierung. -Derzeit nutzen nur das Paketfilter- und Paketmangling-Subsystem für IPv6 dieses System, -aber die Verbindungsverfolgung wird folgen. -Sagen Sie hier Y oder M, wenn Sie eines dieser Systeme verwenden wollen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``ah'' match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_AH [=m] \textbf{[M]}\\ -Mit diesem Modul kann man AH-Pakete abgleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``eui64'' address check}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_EUI64 [=m] \textbf{[M]}\\ -Dieses Modul führt eine Überprüfung der IPv6-Quelladresse durch und vergleicht die letzten -64~Bits mit der EUI64"=Adresse (die von der MAC"=Adresse geliefert wird)\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``frag'' Fragmentation header match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_FRAG [=m] \textbf{[M]}\\ -Mit dem Fragmentierungsabgleich können Sie Pakete auf der Grundlage des Fragmentierungsheaders -des Pakets abgleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``hbh'' hop-by-hop and ``dst'' opts header match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_OPTS [=m] \textbf{[M]}\\ -Dies ermöglicht es, Pakete auf der Grundlage der Hop-by-Hop- und Zieloptions-Header eines -Pakets abzugleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``hl'' hoplimit match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_HL [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_HL aus. - -\subsubparagraph{``ipv6header'' IPv6 Extension Headers Match}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_IPV6HEADER [=m] \textbf{[M]}\\ -Dieses Modul ermöglicht es, Pakete auf der Grundlage der ipv6-Erweiterungsheader abzugleichen. - -\subsubparagraph{``mh'' match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_MH [=m] \textbf{[M]}\\ -Mit diesem Modul kann man MH-Pakete abgleichen. - -\subsubparagraph{``rpfilter'' reverse path filter match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_RPFILTER [=m] \textbf{[M]}\\ -Mit dieser Option können Sie Pakete abgleichen, deren Antworten über die Schnittstelle -hinausgehen würden, über die das Paket eingegangen ist. -Um es als Modul zu kompilieren, wählen Sie hier M. -Wenn Sie unsicher sind, sagen Sie N. Das Modul wird \texttt{ip6t\_rpfilter} heißen. - -\subsubparagraph{``rt'' Routing header match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_RT [=m] \textbf{[M]}\\ -Mit dem rt-Matching können Sie Pakete auf der Grundlage des Routing-Headers des Pakets abgleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``srh'' Segment Routing header match support}$~$\\ -CONFIG\_IP6\_NF\_MATCH\_SRH [=m] \textbf{[M]}\\ -Mit dem srh-Abgleich können Sie Pakete auf der Grundlage des Segment"=Routing"=Headers des -Pakets abgleichen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{``HL'' hoplimit target support}$~$\\ -CONFIG\_IP6\_NF\_TARGET\_HL [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option, die dem Benutzer die Arbeit erleichtert -(z.~B. wenn er oldconfig verwendet). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_HL. - -\subsubparagraph{Packet filtering}$~$\\ -CONFIG\_IP6\_NF\_FILTER [=m] \textbf{[M]}\\ -Paketfilterung definiert eine Tabelle \texttt{filter}, die eine Reihe von Regeln für einfache -Paketfilterung bei der lokalen Eingabe, Weiterleitung und lokalen Ausgabe enthält. Siehe die Manpage -für iptables(8).\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{REJECT target support}$~$\\ -CONFIG\_IP6\_NF\_TARGET\_REJECT [=m] \textbf{[M]}\\ -Mit dem REJECT-Ziel kann eine Filterregel angeben, dass als Antwort auf ein eingehendes Paket -ein ICMPv6"=Fehler ausgegeben werden soll, anstatt es stillschweigend zu verwerfen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{SYNPROXY target support}$~$\\ -CONFIG\_IP6\_NF\_TARGET\_SYNPROXY [=m] \textbf{[M]}\\ -Das SYNPROXY-Ziel ermöglicht es Ihnen, TCP-Verbindungen abzufangen und sie unter Verwendung von -Syncookies aufzubauen, bevor sie an den Server weitergeleitet werden. Auf diese Weise können Sie -die Verfolgung von Verbindungen und die Nutzung von Serverressourcen bei SYN-Flood-Angriffen vermeiden.\\ -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{Packet mangling}$~$\\ -CONFIG\_IP6\_NF\_MANGLE [=m] \textbf{[M]}\\ -Diese Option fügt eine \glqq mangle\grqq{}-Tabelle zu iptables hinzu: siehe die Manpage für -iptables(8). -Diese Tabelle wird fuer verschiedene Paketveraenderungen benutzt, die beeinflussen koennen, -wie das Paket weitergeleitet wird. -Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{raw table support (required for TRACE)}$~$\\ -CONFIG\_IP6\_NF\_RAW [=m] \textbf{[M]}\\ -Diese Option fügt eine "rohe" Tabelle zu ip6tables hinzu. Diese Tabelle ist die allererste im -Netfilter-Framework und hakt sich bei den PREROUTING- und OUTPUT"=Ketten ein. -Wenn Sie sie als Modul kompilieren wollen, sagen Sie hier M und lesen Sie -$<$file:Documentation/kbuild/modules.rst$>$. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{Security table}$~$\\ -CONFIG\_IP6\_NF\_SECURITY [=m] \textbf{[M]}\\ -Diese Option fügt eine \glqq Security\grqq{}-Tabelle zu iptables hinzu, für die Verwendung -mit der Mandatory Access Control (MAC) Richtlinie. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubparagraph{ip6tables NAT support}$~$\\ -CONFIG\_IP6\_NF\_NAT [=m] \textbf{[M]}\\ -Dies aktiviert die \texttt{nat}-Tabelle in ip6tables. Dies ermöglicht Masquerading, -Portweiterleitung und andere Formen der vollständigen Network Address Port Translation. -Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsubparagraph{MASQUERADE target support}$~$\\ -CONFIG\_IP6\_NF\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\ -Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers -(z.~B. bei der Ausführung von oldconfig). Sie wählt NETFILTER\_XT\_TARGET\_MASQUERADE aus. - -\subsubsubparagraph{NPT (Network Prefix translation) target support}$~$\\ -CONFIG\_IP6\_NF\_TARGET\_NPT [=m] \textbf{[M]}\\ -Diese Option fügt die Ziele \texttt{SNPT} und \texttt{DNPT} hinzu, -die eine zustandslose IPv6-zu-IPv6"=Netzwerk"-präfix"-übersetzung gemäß RFC~6296 durchführen. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Ethernet Bridge nf\_tables support \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_NF\_TABLES\_BRIDGE [=m] \textbf{[M]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\paragraph{Netfilter nf\_table bridge meta support}$~$\\ -CONFIG\_NFT\_BRIDGE\_META [=m] \textbf{[M]}\\ -Hinzufügen der Unterstützung für den Meta-Schlüssel der Bridge. - -\paragraph{Netfilter nf\_table bridge reject support}$~$\\ -CONFIG\_NFT\_BRIDGE\_REJECT [=m] \textbf{[M]}\\ -Hinzufügen der Unterstützung für das Zurückweisen von Paketen. - -\paragraph{IPv4/IPV6 bridge connection tracking support}$~$\\ -CONFIG\_NF\_CONNTRACK\_BRIDGE [=m] \textbf{[M]}\\ -Die Verbindungsverfolgung zeichnet auf, welche Pakete Ihren Rechner durchlaufen haben, um -herauszufinden, wie sie zu Verbindungen zusammenhängen. Dies wird verwendet, um die Paketfilterung -über zustandsabhängige Richtlinien zu verbessern. Aktivieren Sie dies, wenn Sie ein natives -Tracking durch die Bridge wünschen. Dies ist ein Ersatz für die -\glqq br\_netfilter\grqq{}"=Infrastruktur. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Ethernet Bridge tables (ebtables) support \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_BRIDGE\_NF\_EBTABLES [=m] \textbf{[M]}\\ -ebtables ist ein allgemeines, erweiterbares Rahmenwerk zur Identifizierung von Frames/Paketen. -Sagen Sie hier Y oder M, wenn Sie Ethernet-Filterung/NAT/Brouting auf der Ethernet-Bridge -durchführen wollen. - -\subparagraph{ebt: broute table support}$~$\\ -CONFIG\_BRIDGE\_EBT\_BROUTE [=m] \textbf{[M]}\\ -Die ebtables-Broutetabelle wird verwendet, um Regeln zu definieren, die zwischen Bridging- und -Routing-Frames entscheiden und Linux die Funktionalität eines Brouters verleihen. -Siehe die Manpage für ebtables(8) und Beispiele auf der ebtables-Website. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: filter table support}$~$\\ -CONFIG\_BRIDGE\_EBT\_T\_FILTER [=m] \textbf{[M]}\\ -Die ebtables-Filtertabelle wird verwendet, um Regeln für die Filterung von Frames am lokalen -Eingang, an der Weiterleitung und am lokalen Ausgang festzulegen. Siehe die Manpage für ebtables(8). -Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: nat table support}$~$\\ -CONFIG\_BRIDGE\_EBT\_T\_NAT [=m] \textbf{[M]}\\ -Die Tabelle ebtables nat wird verwendet, um Regeln zu definieren, die die MAC-Quelladresse -(MAC SNAT) oder die MAC-Zieladresse (MAC DNAT) ändern. Siehe die Manpage für ebtables(8). -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: 802.3 filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_T\_NAT [=m] \textbf{[M]}\\ -Mit dieser Option wird die Unterstützung für 802.3-Ethernet-Frames hinzugefügt. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: among filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_AMONG [=m] \textbf{[M]}\\ -Diese Option fügt die Option \glqq among match\grqq{} hinzu, die den Abgleich der -MAC-Quell- und/oder Zieladresse mit einer Liste von Adressen ermöglicht. Optional können -auch MAC/IP"=Adresspaare abgeglichen werden, z.~B. für Anti-Spoofing-Regeln. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: ARP filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_ARP [=m] \textbf{[M]}\\ -Diese Option fügt die ARP-Übereinstimmung hinzu, die das Filtern von ARP- und -RARP-Headerfeldern ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: IP filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_IP [=m] \textbf{[M]}\\ -Diese Option fügt den IP"=Abgleich hinzu, der eine grundlegende Filterung der -IP"=Header"=Felder er"-mög"-licht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: IP6 filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_IP6 [=m] \textbf{[M]}\\ -Diese Option fügt die IP6-Übereinstimmung hinzu, die eine grundlegende Filterung -von IPV6"=Header"=feldern ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: limit match support}$~$\\ -CONFIG\_BRIDGE\_EBT\_LIMIT [=m] \textbf{[M]}\\ -Diese Option fügt die Grenzübereinstimmung hinzu, mit der Sie die Rate kontrollieren können, -mit der eine Regel übereinstimmen kann. Diese Übereinstimmung ist das Äquivalent der -iptables"=Limit"=Übereinstimmung. -Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie\\ -$<$file:Documentation/kbuild/modules.rst$>$. -Wenn Sie unsicher sind, sagen Sie "N". - -\subparagraph{ebt: mark filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_MARK [=m] \textbf{[M]}\\ -Diese Option fügt die Markierungsübereinstimmung hinzu, die den Abgleich von Frames auf -der Grundlage des \glqq nfmark\grqq{}-Wertes im Frame ermöglicht. Dieser kann durch das -Markierungsziel gesetzt werden. Dieser Wert ist derselbe wie der, der in -iptables mark match und target verwendet wird. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: packet type filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_PKTTYPE [=m] \textbf{[M]}\\ -Diese Option fügt den Pakettyp-Match hinzu, der einen Abgleich des Pakettyps auf der -Grundlage seiner Ethernet-\glqq Klasse\grqq{} -(wie vom generischen Netzwerkcode bestimmt) ermöglicht: -Broadcast, Multicast, für diesen Host allein oder für einen anderen Host. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: STP filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_STP [=m] \textbf{[M]}\\ -Diese Option fügt die Spanning Tree Protocol-Übereinstimmung hinzu, die das Filtern -von STP-Header-Feldern ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: 802.1Q VLAN filter support}$~$\\ -CONFIG\_BRIDGE\_EBT\_VLAN [=m] \textbf{[M]}\\ -Diese Option fügt die 802.1Q-Vlan-Übereinstimmung hinzu, die die Filterung von -802.1Q-Vlan-Feldern ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: arp reply target support}$~$\\ -CONFIG\_BRIDGE\_EBT\_ARPREPLY [=m] \textbf{[M]}\\ -Diese Option fügt das arp-Antwort-Ziel hinzu, das das automatische Senden von arp-Antworten -auf arp-Anfragen ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: dnet target support}$~$\\ -CONFIG\_BRIDGE\_EBT\_DNET [=m] \textbf{[M]}\\ -Diese Option fügt das Ziel MAC DNAT hinzu, das die Änderung der MAC-Zieladresse -von Frames ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: mark target support}$~$\\ -CONFIG\_BRIDGE\_EBT\_MARK\_T [=m] \textbf{[M]}\\ -Diese Option fügt das Markierungsziel hinzu, das die Markierung von Rahmen durch Setzen -des Wertes \glqq nfmark\grqq{} im Rahmen ermöglicht. Dieser Wert ist derselbe wie der, -der in iptables mark match and target verwendet wird. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: redirect target support}$~$\\ -CONFIG\_BRIDGE\_EBT\_REDIRECT [=m] \textbf{[M]}\\ -Diese Option fügt das MAC-Redirect-Ziel hinzu, das es ermöglicht, die MAC-Zieladresse -eines Frames in die des Geräts zu ändern, auf dem er angekommen ist. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, wählen Sie N. - -\subparagraph{ebt: snat target support}$~$\\ -CONFIG\_BRIDGE\_EBT\_SNAT [=m] \textbf{[M]}\\ -Diese Option fügt das Ziel MAC SNAT hinzu, das die Änderung der MAC-Quelladresse von -Frames ermöglicht. -Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: log support}$~$\\ -CONFIG\_BRIDGE\_EBT\_LOG [=m] \textbf{[M]}\\ -Diese Option fügt den Log Watcher hinzu, den Sie in jeder Regel in jeder -ebtables-Tabelle verwenden können. Er zeichnet Informationen über den Frame-Header im Syslog auf. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{ebt: nflog support}$~$\\ -CONFIG\_BRIDGE\_EBT\_NFLOG [=m] \textbf{[M]}\\ -Diese Option aktiviert den nflog watcher, der es ermöglicht, Nachrichten über die netfilter -logging API zu protokollieren, die entweder das alte LOG-Ziel, das alte ULOG-Ziel oder -nfnetlink\_log als Backend verwenden kann. -Diese Option fügt den nflog watcher hinzu, den Sie in jeder Regel in jeder ebtables-Tabelle -verwenden können. -Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{BPF based packet filtering framework (BPFILTER) \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_BPFILTER [=n] \textbf{[N]}\\* -Dies baut ein experimentelles bpfilter-Framework auf, das darauf abzielt, -netfilter-kompatible Funktionalität über BPF bereitzustellen. - -\subsubsection{The DCCP Protocol \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_IP\_DCCP [=n] \textbf{[N]}\\* -Protokoll zur Staukontrolle bei Datagrammen (RFC~4340)\\ -Von \url{https://www.ietf.org/rfc/rfc4340.txt}: Das Datagram Congestion Control Protocol (DCCP) -ist ein Transportprotokoll, das bidirektionale Unicast-Verbindungen von überlastungsgesteuerten, -unzuverlässigen Datagrammen implementiert. Es sollte für Anwendungen wie Streaming Media, -Internet-Telefonie und Online-Spiele geeignet sein.\\ -Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird dccp heißen. -Im Zweifelsfall sagen Sie N. - -\subsubsection{The SCTP Protocol \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_IP\_SCTP [=m] \textbf{[M]}\\* -Stream Control Übertragungsprotokoll -Aus RFC~2960 \url{http://www.ietf.org/rfc/rfc2960.txt}.\\[.5em] -\glqq SCTP ist ein zuverlässiges Transportprotokoll, das auf einem verbindungslosen Paketnetz -wie IP aufbaut. Es bietet seinen Benutzern die folgenden Dienste: -\begin{itemize} - \item[--] Bestätigte fehlerfreie, nicht duplizierte Übertragung von Nutzdaten, - \item[--] Datenfragmentierung zur Anpassung an die ermittelte Pfad-MTU-Größe, - \item[--] sequentielle Zustellung von Benutzernachrichten innerhalb mehrerer Ströme mit - einer Option für die Zustellung einzelner Benutzernachrichten in der Reihenfolge ihres Eintreffens, - \item[--] optionale Bündelung mehrerer Benutzernachrichten in einem einzigen SCTP-Paket, und - \item[--] Fehlertoleranz auf Netzebene durch Unterstützung von Multi-Homing an einem oder beiden - Enden einer Assoziation.\grqq{} -\end{itemize} -Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sctp} genannt. Debug-Meldungen werden vom dynamischen -Debugging-Framework des Kernels behandelt. -Im Zweifelsfall sagen Sie N. - -\paragraph{SCTP: Debug object counts}$~$\\ -CONFIG\_SCTP\_DBG\_OBJCNT [=n] \textbf{[N]}\\ -Wenn Sie Y sagen, wird die Debugging-Unterstützung für die Zählung der Art von Objekten, die derzeit -zugewiesen sind, aktiviert. Dies ist nützlich für die Identifizierung von Speicherlecks. -Diese Debug-Informationen können Sie sich ansehen mit -\texttt{cat /proc/net/sctp/sctp\_dbg\_objcnt}\\ -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Default SCTP cookie HMAC encoding () \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_SCTP\_DBG\_OBJCNT [=n] \textbf{[N]}\\ -Mit dieser Option wird der Standard-Hmac-Algorithmus für den sctp-Cookie festgelegt. -Im Zweifelsfall wählen Sie \texttt{md5}. - -\subparagraph{Enable optional MD5 hmac cookie generation}$~$\\ -CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_MD5 [=n] \textbf{[N]}\\ -Optionale MD5 hmac-basierte SCTP-Cookie-Generierung aktivieren. - -\subparagraph{Enable optional SHA1 hmac cookie generation}$~$\\ -CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_SHA1 [=y] \textbf{[Y]}\\ -Optionale SHA1 hmac-basierte SCTP-Cookie-Generierung aktivieren. - -\subparagraph{Use no hmac alg in SCTP cookie generation}$~$\\ -CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_NONE [=n] \textbf{[N]}\\ -Keinen hmac-Algorithmus bei der Erzeugung von SCTP-Cookies verwenden. - -\paragraph{Enable optional MD5 hmac cookie generation}$~$\\ -CONFIG\_SCTP\_COOKIE\_HMAC\_MD5 [=y] \textbf{[Y]}\\ -Optionale MD5 hmac-basierte SCTP-Cookie-Generierung aktivieren. - -\paragraph{Enable optional SHA1 hmac cookie generation}$~$\\ -CONFIG\_SCTP\_COOKIE\_HMAC\_SHA1 [=y] \textbf{[Y]}\\ -Optionale SHA1 hmac-basierte SCTP-Cookie-Generierung aktivieren. - -\subsubsection{The Reliable Datagram Sockets Protocol} -CONFIG\_RDS [=m] \textbf{[M]}\\ -\textit{(Das Zuverlässige Datagramm-Socket-Protokoll)}\\ -Das RDS-Protokoll (Reliable Datagram Sockets) bietet eine zuverlässige, sequenzierte -Zustellung von Datagrammen über Infiniband oder TCP. - -\paragraph{RDS over Infiniband}$~$\\ -CONFIG\_RDS\_RDMA [=m] \textbf{[M]}\\ -Erlaubt RDS, Infiniband als Transportmittel zu verwenden. -Dieser Transport unterstützt RDMA"=Vor"-gän"-ge. - -\paragraph{RDS over TCP}$~$\\ -CONFIG\_RDS\_TCP [=m] \textbf{[M]}\\ -Erlaubt RDS, TCP als Transportmittel zu verwenden. -Dieser Transport unterstützt keine RDMA"=Vor"-gän"-ge. - -\paragraph{RDS debugging messages}$~$\\ -CONFIG\_RDS\_DEBUG [=n] \textbf{[N]}\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subsubsection{The TIPC Protocol \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_TIPC [=m] \textbf{[M]}\\* -Das TIPC-Protokoll (Transparent Inter Process Communication) ist speziell für die Kommunikation -innerhalb eines Clusters konzipiert. Dieses Protokoll stammt von Ericsson, wo es seit vielen Jahren -in Carrier-Grade-Cluster-Anwendungen eingesetzt wird. Weitere Informationen über TIPC finden Sie -unter \url{http://tipc.sourceforge.net}. Diese Protokollunterstützung ist auch als Modul verfügbar -(= Code, der in den laufenden Kernel eingefügt und wieder entfernt werden kann, wann immer Sie wollen). -Das Modul wird \texttt{tipc} genannt. Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M -und lesen Sie $<$file:Documentation/kbuild/modules.rst$>$. -Im Zweifelsfall sagen Sie N. - -\paragraph{InfiniBand media type support}$~$\\ -CONFIG\_TIPC\_MEDIA\_IB [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, wird die Unterstützung für die Ausführung von TIPC auf IP-over-InfiniBand-Geräten aktiviert. - -\paragraph{IP/UDP media type support}$~$\\ -CONFIG\_TIPC\_MEDIA\_UDP [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, wird die Unterstützung für die Ausführung von TIPC über IP/UDP aktiviert. - -\paragraph{TIPC encryption support}$~$\\ -CONFIG\_TIPC\_CRYPTO [=y] \textbf{[Y]}\\ -Wenn Sie hier Y eingeben, wird die TIPC-Verschlüsselung unterstützt. Alle TIPC-Nachrichten werden mit dem derzeit -modernsten Algorithmus ver-/entschlüsselt: AEAD AES-GCM (wie IPSec oder TLS), bevor sie den TIPC-Stack verlassen/eingehen. -Das Setzen der Schlüssel aus dem Benutzerbereich erfolgt über Netlink durch ein Benutzerprogramm -(z.~B. das iproute2-Tool \glqq tipc\grqq{}). - -\paragraph{TIPC: socket monitoring interface}$~$\\ -CONFIG\_TIPC\_DIAG [=m] \textbf{[M]}\\ -Unterstützung für die von \texttt{ss} tool verwendete TIPC-Socket-Überwachungsschnittstelle. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Asynchronous Transfer Mode (ATM)} -CONFIG\_ATM [=m] \textbf{[M]}\\* -ATM ist eine Hochgeschwindigkeitsnetztechnologie für lokale Netze und Weitverkehrsnetze. Sie verwendet eine feste Paketgröße -und ist verbindungsorientiert, was die Aushandlung von Mindestbandbreitenanforderungen ermöglicht. -Um an einem ATM-Netz teilnehmen zu können, benötigt Ihr Linux-System eine ATM-Netzwerkkarte. Wenn Sie eine solche haben, -sagen Sie hier und beim Treiber Ihrer ATM-Karte unten Y. -Beachten Sie, dass Sie eine Reihe von User-Space-Programmen benötigen, um ATM tatsächlich nutzen zu können. -Siehe die Datei $<$file:Documentation/networking/atm.rst$>$ für weitere Details. - -\paragraph{Classical IP over ATM}$~$\\ -CONFIG\_ATM\_CLIP [=m] \textbf{[M]}\\ -Klassisches IP über ATM für PVCs und SVCs, mit Unterstützung von InARP und ATMARP. Wenn Sie mit anderen IP-Hosts in Ihrem -ATM-Netz kommunizieren wollen, werden Sie in der Regel entweder hier oder bei \glqq LAN-Emulation (LANE)\grqq{} unten Y sagen. - -\subparagraph{Do NOT send ICMP if no neighbour}$~$\\ -CONFIG\_ATM\_CLIP\_NO\_ICMP [=n] \textbf{[N]}\\ -Normalerweise wird eine \glqq ICMP host unreachable\grqq{}-Meldung gesendet, wenn ein Nachbar nicht erreicht werden kann, -weil es in der ATMARP-Tabelle des Kernels keinen VC zu ihm gibt. Dies kann zu Problemen führen, wenn ATMARP-Tabelleneinträge -während der Revalidierung kurzzeitig entfernt werden. Wenn Sie hier Y sagen, werden Pakete an solche Nachbarn stattdessen -stillschweigend verworfen. - -\paragraph{LAN Emulation (LANE) support}$~$\\ -CONFIG\_ATM\_LANE [=m] \textbf{[M]}\\ -Die LAN-Emulation emuliert die Dienste bestehender LANs über ein ATM-Netz. Neben dem Betrieb als normaler -ATM-Endstations-Client kann der Linux-LANE-Client auch als Proxy-Client fungieren und Pakete zwischen ELAN- und -Ethernet-Segmenten überbrücken. Sie benötigen LANE, wenn Sie MPOA ausprobieren wollen. - -\subparagraph{Multi-Protocol Over ATM (MPOA) support}$~$\\ -CONFIG\_ATM\_MPOA [=m] \textbf{[M]}\\ -Multi-Protocol Over ATM ermöglicht ATM-Edge-Geräten wie Routern, Bridges und an ATM angeschlossenen Hosts die Einrichtung -direkter ATM-VCs über Teilnetzgrenzen hinweg. Diese Shortcut"=Verbindungen umgehen Router und verbessern die -Gesamtleistung des Netzes. - -\paragraph{RFC1483/2684 Bridged protocols}$~$\\ -CONFIG\_ATM\_BR2684 [=m] \textbf{[M]}\\ -ATM-PVCs können Ethernet-PDUs gemäß RFC~2684 (früher 1483) übertragen. -Dieses Gerät verhält sich aus Sicht des Kernels wie ein Ethernet, wobei der Verkehr über ATM-PVCs (derzeit 1 PVC/Gerät) -übertragen wird. -Dies wird manchmal über DSL"=Leitungen verwendet. Im Zweifelsfall sagen Sie N. - -\subparagraph{Per-VC IP filter kludge}$~$\\ -CONFIG\_ATM\_BR2684\_IPFILTER [=n] \textbf{[N]}\\ -Dies ist ein experimenteller Mechanismus für Benutzer, die eine große Anzahl von IP-only vcc's terminieren müssen. -Aktivieren Sie dies nur, wenn Sie sicher sind, dass Sie wissen, was Sie tun. - -\subsubsection{Layer Two Tunneling Protocol (L2TP) \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_L2TP [=m] \textbf{[M]}\\* -Layer 2 Tunneling Protokoll\\ -Aus RFC~2661 \url{http://www.ietf.org/rfc/rfc2661.txt}. -L2TP erleichtert das Tunneln von Paketen über ein zwischengeschaltetes Netz auf eine Weise, die sowohl für Endnutzer -als auch für Anwendungen so transparent wie möglich ist.\\ -L2TP wird häufig zum Tunneln von PPP-Verkehr über IP-Tunnel verwendet. Ein IP-Tunnel kann Tausende von einzelnen -PPP"=Verbindungen übertragen. L2TP wird auch als VPN"=Protokoll verwendet, das bei Heimarbeitern für die Verbindung -zu ihren Büros beliebt ist.\\ -Mit L2TPv3 können neben PPP auch andere Protokolle über L2TP"=Tunnel übertragen werden. L2TPv3 ist im RFC~3931 -\url{http://www.ietf.org/rfc/rfc3931.txt} definiert.\\ -Die Kernel-Komponente verarbeitet nur L2TP-Datenpakete: ein Userland-Daemon verarbeitet L2TP als Kontrollprotokoll -(Tunnel- und Sitzungsaufbau). Ein solcher Daemon ist OpenL2TP (\url{http://openl2tp.org/}).\\ -Wenn Sie L2TP nicht benötigen, wählen Sie N. Um den gesamten L2TP-Code als Modul zu kompilieren, wählen Sie hier M. - -\paragraph{L2TP debugfs support}$~$\\ -CONFIG\_L2TP\_DEBUGFS [=m] \textbf{[M]}\\ -Unterstützung für ein l2tp-Verzeichnis im debugfs-Dateisystem. Dies kann verwendet werden, um den internen Zustand -der l2tp-Treiber für die Problemanalyse zu speichern. -Wenn Sie unsicher sind, sagen Sie 'Y'. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_debugfs} heißen. - -\paragraph{L2TPv3 support}$~$\\ -CONFIG\_L2TP\_V3 [=y] \textbf{[Y]}\\ -Layer 2 Tunneling Protokoll Version 3\\ -Aus RFC 3931 \url{http://www.ietf.org/rfc/rfc3931.txt}. -Das Layer 2 Tunneling Protocol (L2TP) bietet einen dynamischen Mechanismus zum Tunneln von -Layer-2-(L2)-\glqq Schaltungen\grqq{} über ein paketorientiertes Datennetz (z.~B. über IP). -L2TP, das ursprünglich in RFC~2661 definiert wurde, ist eine Standardmethode zum Tunneln von -Point-to-Point Protocol (PPP)-Sitzungen [RFC~1661]. L2TP wurde inzwischen für das Tunneln einer -Reihe von anderen L2-Protokollen übernommen, darunter ATM, Frame Relay, HDLC und sogar rohe Ethernet-Frames. -Wenn Sie eine Verbindung zu L2TPv3-Geräten herstellen oder rohe Ethernet-Frames mit L2TP tunneln wollen, -geben Sie hier Y an. Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{L2TP IP encapsulation for L2TPv3}$~$\\ -CONFIG\_L2TP\_IP [=m] \textbf{[M]}\\ -Unterstützung für L2TP-over-IP-Socket-Familie.\\ -Das L2TPv3-Protokoll definiert zwei mögliche Verkapselungen für L2TP-Rahmen, nämlich UDP und einfaches IP -(ohne UDP). Dieser Treiber stellt eine neue L2TPIP-Socket-Familie zur Verfügung, mit der -L2TPv3"=Benutzerspace"=Daemons L2TP/IP-Tunnel-Sockets erstellen können, wenn keine UDP"=Kapselung -erforderlich ist. Wenn L2TP in IP-Paketen übertragen wird, verwendet es die IP-Protokollnummer 115, -so dass dieser Port in Firewalls aktiviert werden muss.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_ip} heißen. - -\subparagraph{L2TP ethernet pseudowire support for L2TPv3}$~$\\ -CONFIG\_L2TP\_ETH [=m] \textbf{[M]}\\ -Unterstützung für die Übertragung von rohen Ethernet-Frames über L2TPv3.\\ -Aus RFC~4719 \url{http://www.ietf.org/rfc/rfc4719.txt}.\\ -Das Layer 2 Tunneling Protocol, Version 3 (L2TPv3) kann als Kontrollprotokoll und zur Datenkapselung -verwendet werden, um Pseudodrähte für den Transport von Layer-2-Paketdateneinheiten über ein IP-Netzwerk -einzurichten [RFC~3931]. Dieser Treiber stellt für jede L2TP-Ethernet-Pseudowire-Instanz eine virtuelle -Ethernet-Schnittstelle zur Verfügung. Standard-Linux-Tools können verwendet werden, um der lokalen -virtuellen Schnittstelle eine IP-Adresse zuzuweisen oder die Schnittstelle zu einer Bridge hinzuzufügen. -Wenn Sie L2TPv3 verwenden, werden Sie diese Option mit Sicherheit aktivieren wollen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_eth} heißen. - -\subsubsection{802.1d Ethernet Bridging} -CONFIG\_L2TP [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, kann Ihr Linux-Rechner als Ethernet-Bridge fungieren, d.~h. die verschiedenen -Ethernet-Segmente, an die er angeschlossen ist, erscheinen den Teilnehmern als ein einziges Ethernet. -Mehrere solcher Bridges können zusammenarbeiten, um mit Hilfe des IEEE 802.1 Spanning-Tree-Algorithmus -noch größere Netze von Ethernets zu bilden. Da es sich hierbei um einen Standard handelt, arbeiten Linux-Bridges -ordnungsgemäß mit anderen Bridge-Produkten von Drittanbietern zusammen.\\ -Um die Ethernet-Bridge zu benutzen, benötigen Sie die Bridge-Konfigurationswerkzeuge; siehe\\ -$<$file:Documentation/networking/bridge.rst$>$ -für den Standort. Bitte lesen Sie das Bridge-Mini-HOWTO für weitere Informationen.\\ -Wenn Sie die iptables-Unterstützung zusammen mit der Bridge-Unterstützung aktivieren, verwandeln Sie Ihre Bridge -in eine Bridging-IP-Firewall. iptables sieht dann die IP-Pakete, die überbrückt werden, so dass Sie dies beim Einrichten Ihrer -Firewall-Regeln berücksichtigen müssen. Wenn Sie die Unterstützung von arptables beim Bridging aktivieren, kann arptables den -überbrückten ARP-Verkehr in der arptables FORWARD-Kette sehen.\\ -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{bridge} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{IGMP/MLD snooping}$~$\\ -CONFIG\_BRIDGE\_IGMP\_SNOOPING [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, kann die Ethernet-Brücke Multicast-Verkehr auf der Grundlage des von jedem Anschluss -empfangenen IGMP/MLD-Verkehrs selektiv weiterleiten.\\ -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{VLAN filtering}$~$\\ -CONFIG\_BRIDGE\_VLAN\_FILTERING [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, kann die Ethernet-Bridge selektiv Datenverkehr auf der Grundlage der VLAN"=Informationen -in den Paketen empfangen und weiterleiten, die auf dem Bridge"=Port oder Bridge"=Gerät konfiguriert sind. -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{MRP protocol}$~$\\ -CONFIG\_BRIDGE\_MRP [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, kann die Ethernet-Bridge das MRP"=Protokoll zur Erkennung von Schleifen ausführen. -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{CFM protocol}$~$\\ -CONFIG\_BRIDGE\_CFM [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, kann die Ethernet-Bridge das CFM-Protokoll gemäß 802.1Q Abschnitt~12.14 ausführen. -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu verringern. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Distributed Switch Architecture \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NET\_DSA [=m] \textbf{[M]}\\* -Sagen Sie Y, wenn Sie die Unterstützung für die von der verteilten Switch"=Architektur -unterstützten Hardware"=Switches aktivieren möchten. - -\paragraph{No-op tag driver}$~$\\ -CONFIG\_NET\_DSA\_TAG\_NONE [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für Switches aktivieren wollen, die keine Frames über den CPU-Port taggen. - -\paragraph{Tag driver for Atheros AR9331 SoC with built-in switch}$~$\\ -CONFIG\_NET\_DSA\_TAG\_AR9331 [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Tagging von Frames für den -Atheros AR9331 SoC mit integriertem Switch aktivieren möchten. - -\paragraph{Tag driver for Broadcom switches using in-frame headers}$~$\\ -CONFIG\_NET\_DSA\_TAG\_BRCM [=m] \textbf{[M]}\\ -Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Switches aktivieren möchten, -die das Tag nach der MAC-Quelladresse platzieren. - -\paragraph{Tag driver for Broadcom legacy switches using in-frame headers}$~$\\ -CONFIG\_NET\_DSA\_TAG\_BRCM\_LEGACY [=m] \textbf{[M]}\\ -Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Legacy-Switches aktivieren möchten, -die das Tag nach der MAC-Quelladresse platzieren. - -\paragraph{Tag driver for Broadcom switches using prepended headers}$~$\\ -CONFIG\_NET\_DSA\_TAG\_BRCM\_PREPEND [=m] \textbf{[M]}\\ -Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Switches aktivieren möchten, -bei denen das Tag vor dem Ethernet-Header (vorangestellt) platziert wird. - -\paragraph{Tag driver for Hirschmann Hellcreek TSN switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_HELLCREEK [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung von Tagging"=Frames für die -Hirschmann Hellcreek TSN"=Switches aktivieren wollen. - -\paragraph{Tag driver for Latiq / Intel GSWIP switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_GSWIP [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung von Tagging-Frames für die Lantiq / Intel GSWIP-Switches aktivieren möchten. - -\paragraph{Tag driver for Marvell switches using DSA headers}$~$\\ -CONFIG\_NET\_DSA\_TAG\_DSA [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Marvell-Switches, -die DSA-Header verwenden, aktivieren möchten. - -\paragraph{Tag driver for Marvell switches using EtherType DSA headers}$~$\\ -CONFIG\_NET\_DSA\_TAG\_EDSA [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Marvell-Switches, -die EtherType DSA-Header verwenden, aktivieren möchten. - -\paragraph{Tag driver for Mediatek switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_MTK [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für Mediatek-Switches aktivieren möchten. - -\paragraph{Tag driver for Microchip 8795/937x/9477/9893 families of switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_KSZ [=m] \textbf{[M]}\\ -Sagen Sie Y, wenn Sie die Unterstützung für Tagging-Frames für die Microchip\\ -Switch"=Familien~8795/937x/9477/9893 aktivieren möchten. - -\paragraph{Tag driver for Ocelot family of switches, using NPI port}$~$\\ -CONFIG\_NET\_DSA\_TAG\_OCELOT [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie das NPI-Tagging für die Ocelot-Switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959) -aktivieren möchten. In diesem Modus wird den Frames über den Ethernet-CPU-Port ein hardwaredefinierter -Injection/Extraction-Frame-Header vorangestellt. Die Flusssteuerung (PAUSE-Frames) über den CPU-Port -wird in diesem Modus nicht unterstützt. - -\paragraph{Tag driver for Ocelot family of switches, using VLAN}$~$\\ -CONFIG\_NET\_DSA\_TAG\_OCELOT\_8021Q [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für die Kennzeichnung von Frames mit einem benutzerdefinierten VLAN-basierten -Header aktivieren möchten. Frames, die einen Zeitstempel benötigen, wie z.~B. PTP, werden nicht über Ethernet, -sondern über registerbasiertes MMIO übertragen. Die Flusssteuerung über den CPU-Port ist in diesem Modus funktionsfähig. -Bei Verwendung dieses Modus stehen weniger TCAM-Ressourcen (VCAP IS1, IS2, ES0) für die Verwendung mit tc-flower zur Verfügung. - -\paragraph{Tag driver for Qualcomm Atheros QCA8k switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_QCA [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für die Qualcomm Atheros QCA8K-Switches aktivieren möchten. - -\paragraph{Tag driver for Realtek 4 byte protocol A tags}$~$\\ -CONFIG\_NET\_DSA\_TAG\_RTL4\_A [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Realtek-Switches mit 4-Byte-Protokoll-A-Tags, -wie sie im Realtek RTL8366RB zu finden sind, aktivieren möchten. - -\paragraph{Tag driver for Realtek 8 byte protocol 4 tags}$~$\\ -CONFIG\_NET\_DSA\_TAG\_RTL8\_4 [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für Realtek-Switches mit 8-Byte-Protokoll-4-Tags, -wie dem Realtek RTL8365MB-VC, aktivieren möchten. - -\paragraph{Tag driver for Renesas RZ/N1 A5PSW switch}$~$\\ -CONFIG\_NET\_DSA\_TAG\_RZN1\_A5PSW [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Tagging von Frames für den eingebetteten Renesas RZ/N1-Switch -aktivieren möchten, der ein 8-Byte-Tag nach der Ziel-MAC-Adresse verwendet. - -\paragraph{Tag driver for SMSC/Microchip LAN9303 family of switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_LAN9303 [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für die SMSC/Microchip LAN9303-Switch-Familie -aktivieren möchten. - -\paragraph{Tag driver for NXP SJA1105 switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_SJA1105 [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames mit der NXP SJA1105-Switch-Familie aktivieren möchten. -Sowohl das native Tagging-Protokoll (das nur für link-lokalen Verkehr gilt) als auch das nicht-native Tagging -(basierend auf einem benutzerdefinierten 802.1Q-VLAN-Header) sind verfügbar. - -\paragraph{Tag driver for switches using a trailer tag}$~$\\ -CONFIG\_NET\_DSA\_TAG\_TRAILER [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Markieren von Frames mit einem angehängten (Trailed) Tag -aktivieren wollen. z.~B. Marvell 88E6060. - -\paragraph{Tag driver for XRS700x switches}$~$\\ -CONFIG\_NET\_DSA\_TAG\_XRS700X [=m] \textbf{[M]}\\ -Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für Arrow SpeedChips XRS700x-Switches, -die einen Ein-Byte-Tag-Anhänger verwenden, aktivieren möchten. - -\subsubsection{802.1Q/802.1ad VLAN Support} -CONFIG\_VLAN\_8021Q [=m] \textbf{[M]}\\ -Wenn Sie diese Option wählen, können Sie 802.1Q-VLAN-Schnittstellen auf Ihren Ethernet-Schnittstellen erstellen. -802.1Q VLAN unterstützt fast alles, was eine normale Ethernet-Schnittstelle kann, einschließlich Firewalling, -Bridging und natürlich IP-Verkehr. Um VLANs effektiv nutzen zu können, benötigen Sie das Dienstprogramm \texttt{ip}. -Weitere Informationen finden Sie auf der VLAN-Webseite: -\url{http://www.candelatech.com/~greear/vlan.html}\\ -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{8021q} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{GVRP (GARP VLAN Registration Protocol) support}$~$\\ -CONFIG\_VLAN\_8021Q\_GVRP [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um die GVRP"=Endsystemunterstützung zu aktivieren. GVRP wird für die automatische -Weitergabe von registrierten VLANs an Switches verwendet. -Wenn Sie unsicher sind, wählen Sie N. - -\paragraph{MVRP (Multiple VLAN Registration Protocol) support}$~$\\ -CONFIG\_VLAN\_8021Q\_MVRP [=y] \textbf{[Y]}\\ -Wählen Sie diese Option, um die MVRP"=Endsystemunterstützung zu aktivieren. MVRP wird für die automatische -Weitergabe von registrierten VLANs an Switches verwendet; es ersetzt GVRP und ist nicht abwärtskompatibel. -Wenn Sie unsicher sind, wählen Sie N. - -\subsubsection{ANSI/IEEE~802.2 LLC type 2 Support} -CONFIG\_LLC2 [=m] \textbf{[M]}\\* -Dies ist eine Logical Link Layer Typ 2, verbindungsorientierte Unterstützung. -Wählen Sie diese Option, wenn Sie Unterstützung für PF\_LLC-Sockets haben möchten. - -\subsubsection{Appletalk protocol support} -CONFIG\_ATALK [=m] \textbf{[M]}\\* -AppleTalk ist das Protokoll, das Apple-Computer zur Kommunikation in einem Netzwerk verwenden können. -Wenn Ihr Linux-Rechner an ein solches Netzwerk angeschlossen ist und Sie sich mit ihm verbinden möchten, -sagen Sie Y. Sie müssen das Paket netatalk verwenden, damit Ihr Linux-Rechner als Druck- und Dateiserver -für Macs fungieren und auf AppleTalk-Drucker zugreifen kann.\\ -Besuchen Sie \url{http://www.zettabyte.net/netatalk/} im WWW für weitere Einzelheiten. EtherTalk ist der -Name für AppleTalk über Ethernet und das billigere und langsamere LocalTalk ist AppleTalk über ein -proprietäres Apple-Netzwerk unter Verwendung serieller Verbindungen. EtherTalk und LocalTalk werden von -Linux vollständig unterstützt. -Allgemeine Informationen darüber, wie man Linux, Windows-Rechner und Macs miteinander verbindet, finden -Sie im WWW unter \url{http://www.eats.com/linux\_mac\_win.html}. Das NET3-4-HOWTO, erhältlich unter -\url{http://www.tldp.org/docs.html#howto}, enthält ebenfalls wertvolle Informationen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{appletalk} heißen. -Sie wollen ihn mit Sicherheit als Modul kompilieren, damit Sie Ihren AppleTalk-Stack neu starten können, -ohne Ihren Rechner neu zu starten. Ich habe gehört, dass der GNU-Boykott von Apple vorbei ist, so dass -sogar politisch korrekte Leute hier Y sagen dürfen. - -\paragraph{Appletalk interfaces support}$~$\\ -CONFIG\_DEV\_APPLETALK [=m] \textbf{[M]}\\ -AppleTalk ist das Protokoll, das Apple-Computer zur Kommunikation in einem Netzwerk verwenden können. -Wenn Ihr Linux-Rechner an ein solches Netzwerk angeschlossen ist und Sie IP über das Netzwerk nutzen -möchten oder wenn Sie eine LocalTalk-Karte haben und diese für die Verbindung mit dem AppleTalk-Netzwerk -nutzen möchten, sagen Sie Y. - -\subparagraph{Appletalk-IP driver support}$~$\\ -CONFIG\_IPDDP [=m] \textbf{[M]}\\ -Dies ermöglicht IP-Netzwerke für Benutzer, die nur AppleTalk-Netzwerke zur Verfügung haben. Diese Funktion -ist experimentell. Mit diesem Treiber können Sie IP innerhalb von AppleTalk einkapseln (z.~B. wenn Ihr -Linux-Rechner in einem reinen AppleTalk-Netzwerk steckt) oder entkapseln (z.~B. wenn Sie Ihren -Linux-Rechner als Internet-Gateway für einen Zoo von mit AppleTalk verbundenen Macs einsetzen wollen).\\ -Bitte lesen Sie die Datei $<$file:Documentation/networking/ipddp.rst$>$ für weitere Informationen. -Wenn Sie hier Y angeben, wird die AppleTalk-IP"=Unterstützung in den Kernel kompiliert. In diesem Fall -können Sie entweder Verkapselung oder Entkapselung verwenden, aber nicht beides. Mit den folgenden zwei -Fragen entscheiden Sie, was Sie wollen. -Um die AppleTalk-IP"=Unterstützung als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{ipddp} heißen. -In diesem Fall können Sie sowohl Encapsulation als auch Decapsulation gleichzeitig -verwenden, indem Sie zwei Kopien des Moduls laden und unterschiedliche Werte für die Moduloption -ipddp\_mode angeben. - -\subsubparagraph{IP to Appletalk-IP Encapsulation support}$~$\\ -CONFIG\_IPDDP\_ENCAP [=y] \textbf{[Y]}\\ -Wenn Sie hier Y angeben, kann der AppleTalk-IP-Code IP-Pakete in AppleTalk-Rahmen einkapseln; das ist -nützlich, wenn Ihr Linux-Rechner in einem AppleTalk-Netzwerk steckt (das hoffentlich irgendwo einen -Entkapsler enthält). Bitte lesen Sie $<$file:Documentation/networking/ipddp.rst$>$ für weitere Informationen. - -\subsubsection{CCITT X.25 Packet Layer} -CONFIG\_X25 [=n] \textbf{[N]}\\* -X.25 ist eine Reihe von standardisierten Netzwerkprotokollen, ähnlich wie Frame Relay; die eine physische -Leitung von Ihrem Rechner zum X.25-Netzeingangspunkt kann mehrere logische Punkt-zu-Punkt-Verbindungen -(so genannte \glqq virtuelle Schaltungen\grqq{}) zu anderen Computern, die an das X.25-Netz angeschlossen -sind, übertragen. Regierungen, Banken und andere Organisationen verwenden es in der Regel, um sich -untereinander zu verbinden oder um Wide Area Networks (WANs) zu bilden. Viele Länder haben öffentliche -X.25-Netze. X.25 besteht aus zwei Protokollen: dem übergeordneten Packet Layer Protocol (PLP) -(geben Sie hier ein Y ein, wenn Sie das wollen) und dem untergeordneten Data Link Layer Protocol LAPB -(geben Sie unten ein Y für \glqq LAPB Data Link Driver\grqq{} ein, wenn Sie das wollen).\\ -Weitere Informationen über X.25 finden Sie unter \url{https://www.sangoma.com/tutorials/x25/} und -\url{http://docwiki.cisco.com/wiki/X.25}. Informationen über X.25 für Linux sind in den Dateien\\ -$<$file:Documentation/networking/x25.rst$>$ und $<$file:Documentation/networking/x25-iface.rst$>$ enthalten. -Man verbindet sich mit einem X.25-Netzwerk entweder mit einer dedizierten Netzwerkkarte, die das -X.21-Protokoll verwendet (noch nicht von Linux unterstützt), oder man kann X.25 über eine -Standard-Telefonleitung mit einem gewöhnlichen Modem (sagen Sie Y zu \glqq X.25 async driver\grqq{} unten) -oder über Ethernet mit einer gewöhnlichen Ethernet-Karte und dem LAPB over Ethernet (sagen Sie Y zu -\glqq LAPB Data Link Driver\grqq{} und \glqq LAPB over Ethernet driver\grqq{} unten). -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{x25} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{LAPB Data Link Driver} -CONFIG\_LAPB [=n] \textbf{[N]}\\* -Link Access Procedure, Balanced (LAPB) ist die Datenverbindungsschicht (d.~h. der untere Teil) des -X.25-Protokolls. Es bietet einen zuverlässigen Verbindungsdienst, um Datenrahmen mit einem anderen -Host auszutauschen, und wird für den Transport von Protokollen höherer Ebenen verwendet -(hauptsächlich X.25 Packet Layer, der höhere Teil von X.25, aber auch andere sind möglich). -Normalerweise wird LAPB mit speziellen X.21-Netzwerkkarten verwendet, aber Linux unterstützt LAPB -derzeit nur über Ethernet"=Verbindungen. Wenn Sie LAPB"=Verbindungen über Ethernet nutzen wollen, -sagen Sie hier und im \glqq LAPB over Ethernet driver\grqq{} unten Y.\\ -Lesen Sie $<$file:Documentation/networking/lapb-module.rst$>$ für technische Details. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{lapb} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Phonet protocols family} -CONFIG\_PHONET [=m] \textbf{[M]}\\* -Das Phone Network-Protokoll (PhoNet) ist ein paketorientiertes Kommunikationsprotokoll, das -von Nokia für die Verwendung mit seinen Modems entwickelt wurde. -Es ist erforderlich, damit Maemo die zellulare Datenkonnektivität nutzen kann (sofern unterstützt). -Es kann auch verwendet werden, um Nokia-Telefone von einem Linux-Computer aus zu steuern, obwohl -AT-Befehle möglicherweise einfacher zu verwenden sind. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{phonet} genannt. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{6LoWPAN Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_6LOWPAN [=m] \textbf{[M]}\\* -Dies ermöglicht IPv6 über Low Power Wireless Personal Area Network -- \glqq 6LoWPAN\grqq{}, -das von \mbox{IEEE} 802.15.4 oder Bluetooth-Stacks unterstützt wird. - -\paragraph{6LoWPAN debugfs support}$~$\\ -CONFIG\_6LOWPAN\_DEBUGFS [=y] \textbf{[Y]}\\ -Dies ermöglicht die Unterstützung von 6LoWPAN-Debugfs. Zum Beispiel um IPHC"=Kontextinformationen -zur Laufzeit zu manipulieren. - -\paragraph{Next Header and Generic Header Compression Support \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_6LOWPAN\_NHC [=m] \textbf{[M]}\\* -Unterstützung für die in RFC~6282 und RFC~7400 definierte Komprimierung des nächsten Headers -und des generischen Headers. - -\subparagraph{Destination Options Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_DEST [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Destination Options Header Kompression nach RFC~6282. - -\subparagraph{Fragment Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_FRAGMENT [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Fragment Header Kompression nach RFC~6282. - -\subparagraph{Hop-by-Hop Option Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_HOP [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Hop-by-Hop Options Header Kompression nach RFC~6282. - -\subparagraph{IPv6 Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_IPV6 [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Header Kompression nach RFC~6282. - -\subparagraph{Mobility Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_MOBILITY [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Mobility Header Kompression nach RFC~6282. - -\subparagraph{Routing Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_ROUTING [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Routing Header Kompression nach RFC~6282. - -\subparagraph{UDP Header Support}$~$\\ -CONFIG\_6LOWPAN\_NHC\_UDP [=m] \textbf{[M]}\\ -6LoWPAN IPv6 UDP Header Kompression nach RFC~6282. - -\subparagraph{GHC Hop-by-Hop Options Header Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_HOP [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Hop-by-Hop-Option generische Header-Kompression gemäß RFC~7400. - -\subparagraph{GHC UDP Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_UDP [=m] \textbf{[M]}\\ -6LoWPAN IPv6 UDP generische Header-Kompression gemäß RFC~7400. - -\subparagraph{GHC ICMPv6 Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_ICMPV6 [=m] \textbf{[M]}\\ -6LoWPAN IPv6 ICMPv6 generische Header-Kompression gemäß RFC~7400. - -\subparagraph{GHC Destination Options Header Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_DEST [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Zieloption generische Header-Kompression gemäß RFC~7400. - -\subparagraph{GHC Fragmentation Options Header Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_FRAG [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Fragmentierungsoption generische Header-Kompression gemäß RFC~7400. - -\subparagraph{GHC Routing Options Header Support}$~$\\ -CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_ROUTE [=m] \textbf{[M]}\\ -6LoWPAN IPv6 Routing Option generische Header-Kompression nach RFC~7400. - -\subsubsection{IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_IEEE802154 [=m] \textbf{[M]}\\* -Die IEEE-Norm 802.15.4 definiert ein drahtloses persönliches Nahbereichsnetz mit niedriger Datenrate, geringer -Leistung und geringer Komplexität. Es wurde entwickelt, um Netze von Sensoren, Schaltern und anderen -Automatisierungsgeräten zu organisieren. Die maximal zulässige Datenrate beträgt 250~kb/s und der typische -persönliche Aktionsradius liegt bei 10~m. -Sagen Sie hier Y, um LR-WPAN-Unterstützung in den Kernel zu kompilieren, oder sagen Sie M, -um sie als Module zu kompilieren. - -\paragraph{IEEE 802.15.4 experimental netlink support}$~$\\ -CONFIG\_IEEE802154\_EXPERIMENTAL [=y] \textbf{[Y]}\\ -Fügt experimentelle Netlink-Unterstützung für nl802154 hinzu. - -\paragraph{IEEE 802.15.4 socket interface}$~$\\ -CONFIG\_IEEE802154\_SOCKET [=m] \textbf{[M]}\\ -Socket-Schnittstelle für IEEE 802.15.4. Enthält eine DGRAM-Socket"=Schnittstelle für 802.15.4"=Datenrahmen. -Außerdem RAW"=Socket"=Schnittstelle zum Aufbau von MAC"=Headern aus dem Userspace. - -\paragraph{6lowpan support over IEEE 802.15.4}$~$\\ -CONFIG\_IEEE802154\_6LOWPAN [=m] \textbf{[M]}\\ -IPv6-Komprimierung über IEEE 802.15.4. - -\paragraph{Generic IEEE 802.15.4 Soft Networking Stack (mac802154)}$~$\\ -CONFIG\_MAC802154 [=m] \textbf{[M]}\\ -Diese Option aktiviert den hardwareunabhängigen IEEE 802.15.4-Netzwerkstack für SoftMAC-Geräte (die nur die PHY-Ebene des -IEEE 802.15.4-Standards implementieren).\\ -Hinweis: Diese Implementierung ist weder zertifiziert, noch mit allen Funktionen ausgestattet! Die Kompatibilität -mit anderen Implementierungen ist noch nicht getestet worden! -Wenn Sie planen, HardMAC IEEE 802.15.4 Geräte zu verwenden, können Sie hier N angeben. Alternativ können Sie auch M -angeben, um es als Modul zu kompilieren. - -\subsubsection{QoS and/or fair queueing \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NET\_SCHED [=y] \textbf{[Y]}\\* -Wenn der Kernel mehrere Pakete über ein Netzwerkgerät senden muss, muss er entscheiden, welche er zuerst -sendet, welche er verzögert und welche er verwirft. Dies ist die Aufgabe der Warteschlangendisziplinen. -Es wurden mehrere verschiedene Algorithmen vorgeschlagen, wie dies \glqq gerecht\grqq{} geschehen kann. -Wenn Sie hier N sagen, erhalten Sie den Standard-Paketplanungsalgorithmus, der ein FIFO"=Verfahren -ist (wer zuerst kommt, wird zuerst bedient). Wenn Sie hier Y angeben, können Sie aus mehreren -alternativen Algorithmen wählen, die dann an verschiedene Netzwerkgeräte angeschlossen werden können. -Dies ist z.~B. nützlich, wenn einige Ihrer Netzwerkgeräte Echtzeitgeräte sind, die eine bestimmte -Mindestdatenflussrate benötigen, oder wenn Sie die maximale Datenflussrate für Datenverkehr -begrenzen müssen, der bestimmten Kriterien entspricht. -Dieser Code wird als experimentell betrachtet.\\ -Um diese Scheduler zu verwalten, benötigen Sie die Dienstprogramme auf Benutzerebene aus dem -Paket iproute2+tc unter -\url{https://www.kernel.org/pub/linux/utils/net/iproute2/}.\\ -Dieses Paket enthält auch einige Dokumentation; mehr dazu finden Sie unter\\ -\url{http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2}.\\ -Diese Quality of Service (QoS)-Unterstützung ermöglicht es Ihnen, Differentiated Services -(diffserv) und Resource Reservation Protocol (RSVP) auf Ihrem Linux-Router zu verwenden, -wenn Sie auch die entsprechenden Klassifizierer unten mit Y bestätigen. -Dokumentation und Software finden Sie unter -\url{http://diffserv.sourceforge.net/}. -Wenn Sie hier und bei \glqq /proc file system\grqq{} Y sagen, können Sie Statusinformationen -über Paketplaner aus der Datei /proc/net/psched lesen. -Die verfügbaren Scheduler werden in den folgenden Fragen aufgelistet; -Sie können so viele mit Y für Ja beantworten, wie Sie möchten. Wenn Sie unsicher sind, -sagen Sie jetzt N. - -\paragraph*{*** Queueing/Scheduling ***}$~$\\ -\textit{(Warteschlangen/Planung)} - -\paragraph{Hierachical Token Bucket (HTB)}$~$\\ -CONFIG\_NET\_SCH\_HTB [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den HTB-Algorithmus (Hierarchical Token Buckets) für die Paketplanung -verwenden möchten. Siehe \url{http://luxik.cdi.cz/~devik/qos/htb/} für das vollständige Handbuch -und ausführliche Artikel. HTB ist in seinen Zielen dem CBQ sehr ähnlich, hat jedoch andere -Eigenschaften und einen anderen Algorithmus. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_htb} heißen. - -\paragraph{Hierachical Fair Service Curve (HFSC)}$~$\\ -CONFIG\_NET\_SCH\_HFSC [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Hierarchical Fair Service Curve (HFSC) -verwenden möchten. Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_hfsc} heißen. - -\paragraph{Multi Band Priority Queueing (PRIO)}$~$\\ -CONFIG\_NET\_SCH\_PRIO [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie einen n-Band-Prioritätswarteschlangen-Paketplaner verwenden möchten. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_prio} heißen. - -\paragraph{Hardware Multiqueue-aware Multi Band Queueing (MULTIQ)}$~$\\ -CONFIG\_NET\_SCH\_MULTIQ [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie einen n-Band-Warteschlangen-Paketplaner verwenden möchten, um Geräte -mit mehreren Hardware-Sendewarteschlangen zu unterstützen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_multiq} heißen. - -\paragraph{Random Early Detection (RED)}$~$\\ -CONFIG\_NET\_SCH\_RED [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Random Early Detection (RED)-Paketplanungsalgorithmus verwenden -möchten. -Siehe oben in $<$file:net/sched/sch\_red.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_red} heißen. - -\paragraph{Stochastic Fair Blue (SFB)}$~$\\ -CONFIG\_NET\_SCH\_SFB [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Stochastic Fair Blue (SFB) Paketplanungsalgorithmus verwenden -möchten. -Siehe den Anfang von $<$file:net/sched/sch\_sfb.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_sfb} heißen. - -\paragraph{Stochastic Fairness Queueing (SFQ)}$~$\\ -CONFIG\_NET\_SCH\_SFQ [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Stochastic Fairness Queueing (SFB) Paketplanungsalgorithmus -verwenden möchten. -Siehe den Anfang von $<$file:net/sched/sch\_sfq.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_sfq} heißen. - -\paragraph{True Link Equalizer (TEQL)}$~$\\ -CONFIG\_NET\_SCH\_TEQL [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus True Link Equalizer (TLE) verwenden -möchten. Diese Warteschlangendisziplin ermöglicht die Kombination mehrerer physischer Geräte -zu einem virtuellen Gerät. -Siehe den Anfang von $<$file:net/sched/sch\_teql.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_teql} heißen. - -\paragraph{Token Bucket Filter (TBF)}$~$\\ -CONFIG\_NET\_SCH\_TBF [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den Token Bucket Filter (TBF) Paketplanungsalgorithmus verwenden wollen. -Siehe den Anfang von $<$file:net/sched/sch\_tbf.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_tbf} heißen. - -\paragraph{Credit Based Shaper (CBS)}$~$\\ -CONFIG\_NET\_SCH\_CBS [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Credit Based Shaper (CBS)-Paketplanungsalgorithmus -verwenden möchten. -Siehe den Anfang von $<$file:net/sched/sch\_cbs.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_cbs} heißen. - -\paragraph{Earliest TxTime First (ETF)}$~$\\ -CONFIG\_NET\_SCH\_ETF [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Earliest TxTime First (ETF) -verwenden möchten. -Siehe den Anfang von $<$file:net/sched/sch\_etf.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_etf} heißen. - -\paragraph{Time Aware Priority (taprio) Scheduler}$~$\\ -CONFIG\_NET\_SCH\_TAPRIO [=m] \textbf{[M]}\\* -Geben Sie hier Y ein, wenn Sie den Algorithmus für die zeitabhängige -Prioritätsplanung (taprio) verwenden möchten. -Siehe den Anfang von $<$file:net/sched/sch\_taprio.c$>$ für weitere Details. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_taprio} genannt. - -\paragraph{Generic Random Early Detection (GRED)}$~$\\ -CONFIG\_NET\_SCH\_GRED [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den GRED-Algorithmus (Generic Random Early -Detection) zur Paketplanung für einige Ihrer Netzwerkgeräte verwenden -wollen (siehe oben in $<$file:net/sched/sch\_red.c$>$ für Details -und Referenzen über den Algorithmus). -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_gred} heißen. - -\paragraph{Network emulator (NETEM)}$~$\\ -CONFIG\_NET\_SCH\_NETEM [=m] \textbf{[M]}\\* -Sagen Sie Y, wenn Sie Netzwerkverzögerungen, -verluste und die -Umordnung von Paketen emulieren wollen. Dies ist oft nützlich, -um Netzwerke beim Testen von Anwendungen oder Protokollen zu simulieren. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{sch\_netem}.\\ -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Deficit Round Robin scheduler (DRR)}$~$\\ -CONFIG\_NET\_SCH\_DRR [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Deficit -Round Robin (DRR) verwenden wollen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_drr} genannt.\\ -Wenn Sie unsicher sind, geben Sie N an. - -\paragraph{Multi-queue priority scheduler (MQPRIO)}$~$\\ -CONFIG\_NET\_SCH\_MQPRIO [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den Multi-queue Priority Scheduler verwenden wollen. Dieser Scheduler ermöglicht -die Auslagerung von QOS auf NICs, die die Auslagerung von QOS-Schedulern unterstützen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_mqprio} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{SKB priority queue scheduler (SKBPRIO)}$~$\\ -CONFIG\_NET\_SCH\_SKBPRIO [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den SKB-Prioritätswarteschlangenplaner verwenden -wollen. Dadurch werden Pakete gemäß skb\texorpdfstring{$\rightarrow$}{->}priority eingeplant, was für -Anforderungspakete in DoS-Abwehrsystemen wie Gatekeeper nützlich ist. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_skbprio} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{CHOose and Keep responsive flow scheduler (CHOKE)}$~$\\ -CONFIG\_NET\_SCH\_CHOKE [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den CHOKe-Paketplaner verwenden wollen -(CHOose und Keep für responsive Flows, CHOose und Kill für unresponsive Flows). -Dies ist eine Variante von RED, die versucht, Datenflüsse zu bestrafen, die -die Warteschlange monopolisieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_choke} heißen. - -\paragraph{Quick Fair Queueing scheduler (QFQ)}$~$\\ -CONFIG\_NET\_SCH\_QFQ [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den Paketplanungsalgorithmus Quick Fair Queueing -Scheduler (QFQ) verwenden möchten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_qfq} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Controlled Delay AQM (CODEL)}$~$\\ -CONFIG\_NET\_SCH\_CODEL [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus mit kontrollierter -Verzögerung (CODEL) verwenden möchten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_codel} genannt. -Wenn Sie unsicher sind, geben Sie N an. - -\paragraph{Fair Queue Controlled Delay AQM (FQ\_CODEL)}$~$\\ -CONFIG\_NET\_SCH\_FQ\_CODEL [=y] \textbf{[Y]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus FQ Controlled -Delay (FQ\_CODEL) verwenden möchten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_fq\_codel} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Common Application Kept Enhanced (CAKE)}$~$\\ -CONFIG\_NET\_SCH\_CAKE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den CAKE-Algorithmus (Common Applications -Kept Enhanced) für die Warteschlangenverwaltung verwenden wollen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_cake} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Fair Queue}$~$\\ -CONFIG\_NET\_SCH\_FQ [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den FQ-Paketplanungsalgorithmus verwenden -möchten. -FQ führt eine Flussseparation durch und ist in der Lage, die vom -TCP-Stack in sk\texorpdfstring{$\rightarrow$}{->}sk\_pacing\_rate -(für lokal erzeugten Verkehr) festgelegten Geschwindigkeitsanforderungen -zu erfüllen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_fq} heißen. -Wenn Sie unsicher sind, geben Sie N an. - -\paragraph{Heavy-Hitter Filter (HHF)}$~$\\ -CONFIG\_NET\_SCH\_HHF [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Heavy-Hitter Filter -(HHF) verwenden möchten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_hhf} heißen. - -\paragraph{Proportional Integral controller Enhanced (PIE) scheduler}$~$\\ -CONFIG\_NET\_SCH\_PIE [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus -Proportional-Integral-Controller Enhanced Scheduler verwenden möchten. -Für weitere Informationen siehe \url{https://tools.ietf.org/html/rfc8033}\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_pie} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Flow Queue Proportional Integral controller Enhanced (FQ-PIE) scheduler}$~$\\ -CONFIG\_NET\_SCH\_FQ\_PIE [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Flow Queue Proportional -Integral Controller Enhanced (FQ-PIE) verwenden möchten.\\ -Weitere Informationen finden Sie unter \url{https://tools.ietf.org/html/rfc8033}\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{sch\_fq\_pie} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Ingress/classifier-action Qdisc}$~$\\ -CONFIG\_NET\_SCH\_INGRESS [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Klassifikatoren für eingehende und/oder ausgehende Pakete -verwenden wollen. Diese qdisc tut nichts anderes, als Klassifikatoren auszuführen, -die auch mit Aktionen verbunden sein können. Im Falle von ausgehenden Paketen werden -die Klassifikatoren, die diese qdisc enthält, im Sendepfad ausgeführt, bevor das -eigentliche Enqueuing zu einer egress qdisc erfolgt. -Wenn Sie unsicher sind, sagen Sie Y. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird sch\_ingress mit dem Alias \texttt{sch\_clsact} heißen. - -\paragraph{Plug network traffic until release (PLUG)}$~$\\ -CONFIG\_NET\_SCH\_PLUG [=m] \textbf{[M]}\\* -Diese Warteschlangen-Disziplin ermöglicht es dem Userspace, über die Netlink-Schnittstelle -eine Netzwerk"=Ausgabewarteschlange anzuschließen bzw. abzuschließen. Wenn er einen -Enqueue"=Befehl erhält, fügt er einen Plug in die Ausgangswarteschlange ein, der bewirkt, -dass die nachfolgenden Pakete in die Warteschlange gestellt werden, bis ein Dequeue-Befehl -über Netlink eintrifft, wodurch der Plug entfernt und der normale Paketfluss wieder -aufgenommen wird.\\ -Dieses Modul bietet auch eine allgemeine \glqq Netzwerk-Ausgangspufferung\grqq{} (auch -bekannt als \glqq Output Commit\grqq{}), bei der beim Eintreffen eines Dequeue-Befehls -nur Pakete bis zum ersten Plug zur Auslieferung freigegeben werden. -Das Remus-HA-Projekt verwendet dieses Modul, um die spekulative Ausführung virtueller -Maschinen zu ermöglichen, indem die erzeugte Netzwerkausgabe bei Bedarf zurückgesetzt werden kann. -Weitere Informationen finden Sie unter \url{http://wiki.xenproject.org/wiki/Remus}\\ -Sagen Sie hier Y, wenn Sie diesen Kernel für Xen dom0 verwenden und Xen-Gäste mit Remus schützen wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_plug} genannt. - -\paragraph{Enhanced transmission selection scheduler (ETS)}$~$\\ -CONFIG\_NET\_SCH\_ETS [=m] \textbf{[M]}\\* -Der Enhanced Transmission Selection-Scheduler ist eine klassenbasierte Warteschlangen-Disziplin, -die die Funktionalität von PRIO- und DRR-QS-Disks in einem Scheduler vereint. ETS erleichtert -die Konfiguration einer Reihe strikter und bandbreitenteilender Bänder zur Umsetzung der in -802.1Qaz beschriebenen Übertragungsauswahl.\\ -Sagen Sie hier Y, wenn Sie den ETS-Paketplanungsalgorithmus verwenden möchten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{sch\_ets}. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Allow override default queue discipline \texorpdfstring{$\rightarrow$}{->}}$~$\\ -CONFIG\_NET\_SCH\_DEFAULT [=y] \textbf{[Y]}\\* -Unterstützung für die Auswahl der Standard"=Warteschlangen"=Disziplin. -Fast alle Benutzer können hier sicher nein sagen, und es wird der Standardwert pfifo\_fast verwendet. -Viele Distributionen setzen den Standardwert bereits über /proc/sys/net/core/default\_qdisc. -Wenn Sie unsicher sind, sagen Sie N. - -\subparagraph{Default queuing discipline () \texorpdfstring{$\rightarrow$}{->}}$~$\\ -Wählen Sie die Warteschlangendisziplin, die standardmäßig für alle Netzwerkgeräte verwendet wird. - -\subsubparagraph{Fair Queue}$~$\\ -CONFIG\_DEFAULT\_FQ [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\subsubparagraph{Controlled Delay}$~$\\ -CONFIG\_DEFAULT\_CODEL [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\subsubparagraph{Fair Queue Controlled Delay}$~$\\ -CONFIG\_DEFAULT\_FQ\_CODEL [=y] \textbf{[Y]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\subsubparagraph{Flow Queue Proportional Integral controller Enhanced}$~$\\ -CONFIG\_DEFAULT\_FQ\_PIE [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\subsubparagraph{Stochastic Fair Queue}$~$\\ -CONFIG\_DEFAULT\_SFQ [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\subsubparagraph{Priority FIFO Fast}$~$\\ -CONFIG\_DEFAULT\_PFIFO\_FAST [=n] \textbf{[N]}\\* -Für diese Option ist keine Hilfe verfügbar. - -\paragraph*{*** Classification ***}$~$\\ -\textit{(Klassifizierung)} - -\paragraph{Elementary classification (BASIC)}$~$\\ -CONFIG\_NET\_CLS\_BASIC [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Pakete nur mit erweiterten Übereinstimmungen und Aktionen klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cls\_basic} heißen. - -\paragraph{Routing decision (ROUTE)}$~$\\ -CONFIG\_NET\_CLS\_ROUTE4 [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, können Sie die Pakete nach dem entsprechenden Eintrag in der -Routentabelle klassifizieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_route} heißen. - -\paragraph{Netfilter mark (FW)}$~$\\ -CONFIG\_NET\_CLS\_FW [=m] \textbf{[M]}\\* -Wenn Sie hier Y eingeben, können Sie Pakete nach Netzfilter-/Firewall-Marken klassifizieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cls\_fw} heißen. - -\paragraph{Universal 32bit comparisons w/ hashing (U32)}$~$\\ -CONFIG\_NET\_CLS\_U32 [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um Pakete mit einem universellen, auf 32-Bit-Stücken basierenden Vergleichsschema -klassifizieren zu können. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_u32} heißen. - -\subparagraph{Performance counters support}$~$\\ -CONFIG\_CLS\_U32\_PERF [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, damit u32 zusätzliche Statistiken sammelt, die für die Feinabstimmung -der u32-Klassifikatoren nützlich sind. - -\subparagraph{Netfilter marks support}$~$\\ -CONFIG\_CLS\_U32\_MARK [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, um Netfilter-Marken als u32-Schlüssel verwenden zu können. - -\paragraph{Flow classifier}$~$\\ -CONFIG\_NET\_CLS\_FLOW [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage einer konfigurierbaren -Kombination von Paketschlüsseln klassifizieren. Dies ist vor allem in Kombination -mit SFQ nützlich. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_flow} heißen. - -\paragraph{Control Group Classifier}$~$\\ -CONFIG\_NET\_CLS\_CGROUP [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage der Kontrollgruppe ihres Prozesses -klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_cgroup} genannt. - -\paragraph{BPF-based classifier}$~$\\ -CONFIG\_NET\_CLS\_BPF [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage von programmierbaren -BPF-Filtern (JIT'ed) als Alternative zu Ematches klassifizieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_bpf} genannt. - -\paragraph{Flower classifier}$~$\\ -CONFIG\_NET\_CLS\_FLOWER [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage einer konfigurierbaren -Kombination von Paketschlüsseln und Masken klassifizieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_flower} heißen. - -\paragraph{Match-all classifier}$~$\\ -CONFIG\_NET\_CLS\_MATCHALL [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage von nichts klassifizieren. -Jedes Paket wird übereinstimmen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cls\_matchall} heißen. - -\paragraph{Extended Matches}$~$\\ -CONFIG\_NET\_EMATCH [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, wenn Sie erweiterte Übereinstimmungen zusätzlich zu den -Klassifikatoren verwenden möchten, und wählen Sie die erweiterten Übereinstimmungen -unten aus. -Erweiterte Übereinstimmungen sind kleine Klassifikationshilfen, für die es sich -nicht lohnt, einen eigenen Klassifikator zu schreiben. Eine aktuelle Version des -Pakets iproute2 ist erforderlich, um erweiterte Übereinstimmungen zu verwenden. - -\subparagraph{Stack size}$~$\\ -CONFIG\_NET\_EMATCH\_STACK [=32] \textbf{[32]}\\* -Größe der lokalen Stack-Variablen, die bei der Auswertung des Ematch"=Baums -verwendet wird. Begrenzt die Tiefe des Baums, d.~h. die Anzahl der eingekapselten -Präzedenzfälle. Jede Ebene erfordert 4~Byte zusätzlichen Stack-Speicherplatz. - -\subparagraph{Simple packet data comparison}$~$\\ -CONFIG\_NET\_EMATCH\_CMP [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage einfacher Paketdatenvergleiche -für 8-, 16- und 32-Bit-Werte klassifizieren möchten. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_cmp} genannt. - -\subparagraph{Multi byte comparison}$~$\\ -CONFIG\_NET\_EMATCH\_NBYTE [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage von Vergleichen mehrerer -Bytes klassifizieren möchten, was vor allem für IPv6"=Adressvergleiche nützlich -ist. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_nbyte} heißen. - -\subparagraph{U32 key}$~$\\ -CONFIG\_NET\_EMATCH\_U32 [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Pakete mit dem berühmten u32-Schlüssel in Kombination -mit logischen Beziehungen klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_u32} heißen. - -\subparagraph{Metadata}$~$\\ -CONFIG\_NET\_EMATCH\_META [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage von Metadaten wie -Lastdurchschnitt, Netzfilterattributen, Socket-Attributen und Routing-Entscheidungen -klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_meta} heißen. - -\subparagraph{Textsearch}$~$\\ -CONFIG\_NET\_EMATCH\_TEXT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage von Textsuchvergleichen -klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_text} heißen. - -\subparagraph{CAN Identifier}$~$\\ -CONFIG\_NET\_EMATCH\_CANID [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie CAN-Frames anhand des CAN-Identifiers -klassifizieren möchten. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_canid} genannt. - -\subparagraph{IPset}$~$\\ -CONFIG\_NET\_EMATCH\_IPSET [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage der ipset-Zugehörigkeit -klassifizieren wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_ipset} heißen. - -\subparagraph{IPtables Matches}$~$\\ -CONFIG\_NET\_EMATCH\_IPT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um Pakete anhand von iptables-Übereinstimmungen -klassifizieren zu können. -Die aktuell unterstützte Übereinstimmung ist \glqq policy\grqq{}, -die die Klassifizierung von Paketen auf der Grundlage der IPsec"=Richtlinie -erlaubt, die während der Entkapselung verwendet wurde. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{em\_ipt} heißen. - -\paragraph{Actions}$~$\\ -CONFIG\_NET\_CLS\_ACT [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, wenn Sie Aktionen zur Verkehrssteuerung verwenden möchten. -Aktionen werden an Klassifikatoren angehängt und nach einer erfolgreichen -Klassifizierung aufgerufen. Sie werden verwendet, um das -Klassifizierungsergebnis zu überschreiben, Pakete sofort zu verwerfen oder -umzuleiten, usw. -Eine aktuelle Version des iproute2-Pakets ist erforderlich, um erweiterte -Übereinstimmungen zu verwenden. - -\subparagraph{Traffic Policing}$~$\\ -CONFIG\_NET\_ACT\_POLICE [=m] \textbf{[M]}\\* -Geben Sie hier Y an, wenn Sie den Datenverkehr überwachen wollen, d.~h. eine strikte Bandbreitenbegrenzung. -Diese Aktion ersetzt das bestehende Policing-Modul. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_police} heißen. - -\subparagraph{Generic actions}$~$\\ -CONFIG\_NET\_ACT\_GACT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um allgemeine Aktionen wie das Verwerfen und Annehmen von Paketen durchzuführen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_gact} genannt. - -\subsubparagraph{Probability support}$~$\\ -CONFIG\_GACT\_PROB [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, um die generische Aktion zufällig oder deterministisch zu verwenden. - -\subparagraph{Redirecting and Mirroring}$~$\\ -CONFIG\_NET\_ACT\_MIRRED [=m] \textbf{[M]}\\* -Geben Sie hier Y ein, um zuzulassen, dass Pakete gespiegelt oder an andere Geräte umgeleitet werden. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_mirred} genannt. - -\subparagraph{Traffic Sampling}$~$\\ -CONFIG\_NET\_ACT\_SAMPLE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die Paketprobenahme tc Aktion zu erlauben. Bei der Aktion -\glqq Paketprobenahme\grqq{} werden Pakete statistisch ausgewählt und mit dem Modul -\texttt{psample} gesampelt. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_sample} genannt. - -\subparagraph{IPtables targets}$~$\\ -CONFIG\_NET\_ACT\_IPT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um nach erfolgreicher Klassifizierung iptables"=Ziele aufrufen zu können. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_ipt} genannt. - -\subparagraph{Stateless NAT}$~$\\ -CONFIG\_NET\_ACT\_NAT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um zustandsloses NAT für IPv4-Pakete durchzuführen. -Sie sollten netfilter für NAT verwenden, wenn Sie nicht wissen, was Sie tun. -Um diesen Code als Modul zu kompilieren, wähle hier M: -Das Modul wird \texttt{act\_nat} heißen. - -\subparagraph{Packet Editing}$~$\\ -CONFIG\_NET\_ACT\_PEDIT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie den Inhalt von Paketen verfälschen wollen. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_pedit} genannt. - -\subparagraph{Simple Example (Debug)}$~$\\ -CONFIG\_NET\_ACT\_SIMP [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um eine einfache Aktion zu Demonstrationszwecken hinzuzufügen. -Sie ist als Beispiel und zu Debugging"=Zwecken gedacht. Sie gibt eine konfigurierte -Richtlinienzeichenkette gefolgt von der Anzahl der Pakete auf der Konsole für jedes -Paket aus, das vorbeigeht. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_simple} genannt. - -\subparagraph{SKB Editing}$~$\\ -CONFIG\_NET\_ACT\_SKEDIT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die skb-Priorität oder die queue\_mapping"=Einstellungen zu ändern. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_skbedit} genannt. - -\subparagraph{Checksum Updating}$~$\\ -CONFIG\_NET\_ACT\_CSUM [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um eine allgemeine Prüfsumme nach einigen direkten Paketänderungen zu aktualisieren. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_csum} genannt. - -\subparagraph{MPLS manipulation}$~$\\ -CONFIG\_NET\_ACT\_MPLS [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um MPLS-Header zu schieben oder zu entfernen (push or pop). -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_mpls} genannt. - -\subparagraph{Vlan manipulation}$~$\\ -CONFIG\_NET\_ACT\_VLAN [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um vlan-Header zu verschieben oder zu löschen (push or pop). -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_vlan} genannt. - -\subparagraph{BPF based action}$~$\\ -CONFIG\_NET\_ACT\_BPF [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um den BPF-Code für die Pakete auszuführen. Der BPF-Code entscheidet, -ob das Paket verworfen werden soll oder nicht. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_bpf} genannt. - -\subparagraph{Netfilter Connection Mark Retriever}$~$\\ -CONFIG\_NET\_ACT\_CONNMARK [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um das Abrufen der Verbindungsmarkierung zu erlauben. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_connmark} genannt. - -\subparagraph{Netfilter Connection Mark Actions}$~$\\ -CONFIG\_NET\_ACT\_CTINFO [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die Übertragung einer gespeicherten Information zu erlauben. Aktuelle Aktionen -übertragen in connmark gespeicherte DSCP in ipv4/v6 diffserv und/oder übertragen connmark in -packet mark. Beides ist nützlich, um egress-basierte Markierungen wieder auf ingress-Verbindungen für -qdisc"=Prioritätszuordnungszwecke zu übertragen.\\ -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_ctinfo} genannt. - -\subparagraph{skb data modification action}$~$\\ -CONFIG\_NET\_ACT\_SKBMOD [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die Änderung von skb-Daten zu erlauben. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_skbmod} genannt. - -\subparagraph{Inter-FE action based on IETF ForCES interFE LFB}$~$\\ -CONFIG\_NET\_ACT\_IFE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die Beschaffung und Beendigung von Metadaten zu ermöglichen. -Einzelheiten finden Sie im netdev01-Dokument: -\glqq Verteilendes Linux-Verkehrskontroll-Klassifikator-Aktions-Subsystem\grqq{}\\ -Autoren: Jamal Hadi Salim und Damascene M. Joachimpillai\\ -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_ife} heißen. - -\subparagraph{IP tunnel metadata manipulation}$~$\\ -CONFIG\_NET\_ACT\_TUNNEL\_KEY [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um ip-Tunnel-Metadaten zu setzen/freizugeben. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird -\texttt{act\_tunnel\_key} heißen. - -\subparagraph{connection tracking tc action}$~$\\ -CONFIG\_NET\_ACT\_CT [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um das Senden der Pakete an das Modul conntrack zu erlauben. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_ct} genannt. - -\subparagraph{Frame gate entry list control tc action}$~$\\ -CONFIG\_NET\_ACT\_GATE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um zu ermöglichen, dass der Eingangsstrom zu einem bestimmten Zeitschlitz -durchgelassen und zu einem anderen bestimmten Zeitschlitz durch die Gate-Eingangsliste fallen -gelassen wird. -Wenn Sie unsicher sind, sagen Sie N. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{act\_gate} genannt. - -\paragraph{Support to encoding decoding skb mark on IFE action}$~$\\ -CONFIG\_NET\_IFE\_SKBMARK [=m] \textbf{[M]}\\* -\textit{Unterstützung für die Kodierung und Dekodierung der skb-Markierung bei IFE-Aktionen}\\ -Für diese Option ist keine Hilfe verfügbar. - -\paragraph{Support to encoding decoding skb prio on IFE action}$~$\\ -CONFIG\_NET\_IFE\_SKBPRIO [=m] \textbf{[M]}\\* -\textit{Unterstützung für die Kodierung und Dekodierung von skb prio bei IFE-Aktionen} -Für diese Option ist keine Hilfe verfügbar. - -\paragraph{Support to encoding decoding skb tcindex on IFE action}$~$\\ -CONFIG\_NET\_IFE\_SKBTCINDEX [=m] \textbf{[M]}\\* -\textit{Unterstützung für die Kodierung und Dekodierung von skb tcindex bei IFE-Aktionen}\\ -Für diese Option ist keine Hilfe verfügbar. - -\paragraph{TC recirculation support}$~$\\ -CONFIG\_NET\_TC\_SBK\_EXT [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, damit tc-Kettenfehler im OvS-Datenpfad in der richtigen recirc\_id und -Hardware"=Kettenfehler in der richtigen Kette im tc"=Software"=Datenpfad fortgesetzt -werden können. -Sagen Sie hier N, wenn Sie -tc\texorpdfstring{$\leftrightarrow$}{<->}ovs -offload oder tc chains offload nicht verwenden wollen. - -\subsubsection{Data Center Bridging support} -CONFIG\_DCB [=y] \textbf{[Y]}\\* -Dies ermöglicht die Unterstützung für die Konfiguration von Data Center Bridging (DCB)"=Funktionen -auf DCB"=fähigen Ethernet"=Adaptern über rtnetlink. Sagen Sie Y, wenn Sie einen DCB"=fähigen -Ethernet"=Adapter haben, der diese Schnittstelle unterstützt, und Sie an einen DCB"=fähigen -Switch angeschlossen sind. DCB ist eine Sammlung von Ethernet"=Erweiterungen, die es DCB"=fähigen -NICs und Switches ermöglichen, Netzwerkverkehr mit unterschiedlichen Anforderungen (hochzuverlässig, -keine Ausfälle vs. Best Effort vs. niedrige Latenz) auf dem Ethernet nebeneinander zu unterstützen. -Zu den DCB-Funktionen gehören: -Enhanced Transmission Selection (auch bekannt als Priority Grouping) -- bietet einen Rahmen für die -Zuweisung von Bandbreitengarantien an Verkehrsklassen. -Prioritätsbasierte Flusssteuerung (PFC) -- ein MAC"=Kontrollpausenrahmen, der auf der Granularität -der 802.1p"=Priorität und nicht auf der der Verbindung (802.3x) arbeitet. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{DNS Resolver support} -CONFIG\_DNS\_RESOLVER [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, wird auch der Schlüsseltyp DNS Resolver unterstützt, der für Upcalls -verwendet werden kann, um DNS-Lookups im Userspace durchzuführen. -DNS Resolver wird verwendet, um DNS-Server nach Informationen zu fragen. Beispiele hierfür sind die -Auflösung eines UNC"=Hostnamen"=Elements in eine IP"=Adresse für CIFS oder die Durchführung einer -DNS"=Abfrage nach AFSDB"=Einträgen, damit AFS die Datenbankserver für den Speicherort einer Zelle -finden kann. -DNS Resolver wird von den Modulen CIFS und AFS verwendet und würde später auch SMB2 unterstützen. -DNS Resolver wird von der Userspace-Aufrufhilfe \texttt{/sbin/dns.resolver} über -/etc/request-key.conf unterstützt. -Siehe $<$file:Documentation/networking/dns\_resolver.rst$>$ für weitere Informationen. -Um dies als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{dnsresolver} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{B.A.T.M.A.N. Advanced Meshing Protocol} -CONFIG\_BATMAN\_ADV [=m] \textbf{[M]}\\* -B.A.T.M.A.N. (better approach to mobile ad-hoc networking) ist ein Routing"=Protokoll für -Multi"=Hop"=Ad"=hoc"=Mesh"=Netze. Die Netze können drahtgebunden oder drahtlos sein.\\ -Siehe \url{https://www.open-mesh.org/} für weitere Informationen und User Space Tools. - -\paragraph{B.A.T.M.A.N. V protocol}$~$\\ -CONFIG\_BATMAN\_ADV\_BATMAN\_V [=y] \textbf{[Y]}\\* -Diese Option aktiviert das B.A.T.M.A.N.-V"=Protokoll, den Nachfolger des derzeit verwendeten\\ -B.A.T.M.A.N."=IV"=Protokolls. Zu den wichtigsten Änderungen gehören die Aufteilung des -OGM"=Protokolls in ein Nachbarschaftserkennungsprotokoll (Echo Location Protocol, ELP) und ein -neues OGM"=Protokoll OGMv2 zum Fluten von Protokollinformationen durch das Netz sowie eine -durchsatzbasierte Metrik. -B.A.T.M.A.N. V gilt derzeit als experimentell und ist nicht mit B.A.T.M.A.N. IV"=Netzen kompatibel. - -\paragraph{Bridge Loop Avoidance}$~$\\ -CONFIG\_BATMAN\_ADV\_BLA [=y] \textbf{[Y]}\\* -Diese Option aktiviert BLA (Bridge Loop Avoidance), einen Mechanismus zur Vermeidung von -Ethernet"=Rahmenschleifen, wenn Mesh"=Knoten sowohl mit demselben LAN als auch mit demselben Mesh -verbunden sind. Wenn Sie nie mehr als einen Mesh"=Knoten im selben LAN verwenden werden, können Sie -diese Funktion getrost entfernen und etwas Platz sparen. - -\paragraph{Distributed ARP Table}$~$\\ -CONFIG\_BATMAN\_ADV\_DAT [=y] \textbf{[Y]}\\* -Diese Option aktiviert DAT (Distributed ARP Table), einen DHT"=basierten Mechanismus, der die -ARP"=Zuverlässigkeit in spärlichen drahtlosen Mesh"=Netzwerken erhöht. -Wenn Sie der Meinung sind, dass Ihr Netzwerk diese Option nicht benötigt, können Sie sie getrost -entfernen und etwas Platz sparen. - -\paragraph{Network Coding}$~$\\ -CONFIG\_BATMAN\_ADV\_NC [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Netzwerkcodierung aktiviert, ein Mechanismus, der darauf abzielt, den -Gesamtdurchsatz des Netzwerks zu erhöhen, indem mehrere Pakete in einer Übertragung zusammengefasst -werden. -Beachten Sie, dass Schnittstellen, die von batman-adv kontrolliert werden, manuell so konfiguriert -werden müssen, dass der promiscuous mode aktiviert ist, damit die Netzwerkcodierung funktioniert. -Wenn Sie der Meinung sind, dass Ihr Netzwerk diese Funktion nicht benötigt, können Sie sie getrost -deaktivieren und etwas Platz sparen. - -\paragraph{Multicast optimisation}$~$\\ -CONFIG\_BATMAN\_ADV\_MCAST [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Multicast-Optimierung aktiviert, die darauf abzielt, den Air"=Overhead -zu reduzieren und gleichzeitig die Zuverlässigkeit von Multicast"=Nachrichten zu verbessern. - -\paragraph{B.A.T.M.A.N. debugging}$~$\\ -CONFIG\_BATMAN\_ADV\_DEBUG [=n] \textbf{[N]}\\* -Dies ist eine Option für Entwickler; die meisten Leute sollten hier N angeben. Dies aktiviert die -Kompilierung der Unterstützung für die Ausgabe von Debugging"=Informationen in den -Tracing"=Puffer. Die Ausgabe wird über die batadv netdev"=spezifische log\_level"=Einstellung -gesteuert. - -\paragraph{B.A.T.M.A.N. tracing support}$~$\\ -CONFIG\_BATMAN\_ADV\_TRACING [=n] \textbf{[N]}\\* -Dies ist eine Option für Entwickler; die meisten Leute sollten hier N angeben. Wählen Sie diese -Option, um Traces wie die Debug"=Meldungen unter Verwendung der generischen Tracing"=Infrastruktur -des Kernels zu sammeln. -BATMAN\_ADV\_DEBUG muss ebenfalls ausgewählt werden, um Trace-Ereignisse für batadv\_dbg zu erhalten. - -\subsubsection{Open vSwitch} -CONFIG\_OPENVSWITCH [=m] \textbf{[M]}\\* -Open vSwitch ist ein Multilayer"=Ethernet"=Switch für virtualisierte Umgebungen. -Er unterstützt nicht nur eine Vielzahl von Funktionen, die von einem herkömmlichen Hardware"=Switch -erwartet werden, sondern ermöglicht auch eine feinkörnige programmatische Erweiterung und eine -flussbasierte Steuerung des Netzwerks. Diese Kontrolle ist in einer Vielzahl von Anwendungen nützlich, -aber besonders wichtig in Multi"=Server"=Virtualisierungsumgebungen, die oft durch hochdynamische -Endpunkte und die Notwendigkeit gekennzeichnet sind, logische Abstraktionen für mehrere Mandanten -aufrechtzuerhalten. Der \glqq Open vSwitch\grqq{}"=Datenpfad bietet einen schnellen Pfad für die -Paketweiterleitung im Kernel. Er wird durch einen Userspace"=Daemon, ovs-vswitchd, ergänzt, der in -der Lage ist, Konfigurationen aus einer Vielzahl von Quellen zu akzeptieren und sie in Regeln für -die Paketverarbeitung zu übersetzen. -Siehe \url{http://openvswitch.org} für weitere Informationen und Userspace"=Utilities. Um diesen -Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{openvswitch} heißen. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Open vSwitch GRE tunneling support}$~$\\ -CONFIG\_OPENVSWITCH\_GRE [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, kann der Open vSwitch GRE vport erstellen. -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Open vSwitch VXLAN tunneling support}$~$\\ -CONFIG\_OPENVSWITCH\_VXLAN [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, kann der Open vSwitch vxlan vport erstellen. Sagen Sie N, um diese -Unterstützung auszuschließen und die Binärgröße zu reduzieren. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Open vSwitch Geneve tunneling support}$~$\\ -CONFIG\_OPENVSWITCH\_GENEVE [=m] \textbf{[M]}\\* -Wenn Sie hier Y angeben, kann der Open vSwitch geneve vport erstellen. -Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. - -\subsubsection{Virtual Socket protocol} -CONFIG\_VSOCKETS [=m] \textbf{[M]}\\* -Das Virtual Socket Protocol ist ein TCP/IP-ähnliches Socket"=Protokoll, das die Kommunikation zwischen -virtuellen Maschinen und Hypervisor oder Host ermöglicht. -Sie sollten auch einen oder mehrere der folgenden hypervisorspezifischen Transporte auswählen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{vsock} heißen. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Virtual Sockets monitoring interface}$~$\\ -CONFIG\_VSOCKETS\_DIAG [=m] \textbf{[M]}\\* -Unterstützung für die PF\_VSOCK-Socket"=Überwachungsschnittstelle, die vom ss"=Tool verwendet wird. -Wenn Sie unsicher sind, sagen Sie Y. -Aktivieren Sie dieses Modul, damit Userspace"=Anwendungen offene Sockets abfragen können. - -\paragraph{Virtual Sockets loopback transport}$~$\\ -CONFIG\_VSOCKETS\_LOOPBACK [=m] \textbf{[M]}\\* -Dieses Modul implementiert einen Loopback-Transport für Virtual Sockets unter Verwendung von\\ -vmw\_vsock\_virtio\_transport\_common. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{vsock\_loopback} genannt. Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{VMware VMCI transport for Virtual Sockets}$~$\\ -CONFIG\_VMWARE\_VMCI\_VSOCKETS [=m] \textbf{[M]}\\* -Dieses Modul implementiert einen VMCI-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, -wenn Ihre virtuelle Maschine auf einem VMware"=Hypervisor läuft. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird vmw\_vsock\_vmci\_transport heißen. Wenn Sie unsicher sind, wählen Sie N. - -\paragraph{virtio transport for Virtual Sockets}$~$\\ -CONFIG\_VIRTIO\_VSOCKETS [=m] \textbf{[M]}\\* -Dieses Modul implementiert einen Virtio-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, -wenn Ihr Virtual Machine-Host Virtual Sockets über virtio unterstützt. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird vmw\_vsock\_virtio\_transport heißen. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Hyper-V transport for Virtual Sockets} -CONFIG\_HYPERV\_VSOCKETS [=m] \textbf{[M]}\\* -Dieses Modul implementiert einen Hyper-V-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, -wenn Ihr Virtual Machine Host Virtual Sockets über Hyper-V VMBus unterstützt. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{hv\_sock} genannt. Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{NETLINK: socket monitoring interface} -CONFIG\_NETLINK\_DIAG [=m] \textbf{[M]}\\* -Unterstützung für die NETLINK"=Socket"=Überwachungsschnittstelle, die vom ss"=Tool verwendet wird. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{MultiProtocol Label Switching \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_MPLS [=y] \textbf{[Y]}\\* -MultiProtocol Label Switching leitet Pakete durch logische Schaltkreise. -Ursprünglich als Möglichkeit zur Weiterleitung von Paketen mit -Hardware-Geschwindigkeit konzipiert (bevor die Hardware in der Lage war, -ipv4-Pakete weiterzuleiten), ist MPLS nach wie vor ein einfaches Verfahren zur -Herstellung von Tunneln. -Wenn Sie noch nie etwas von MPLS gehört haben, sollten Sie hier N sagen. - -\paragraph{MPLS: GSO support}$~$\\ -CONFIG\_NET\_MPLS\_GSO [=m] \textbf{[M]}\\* -Dies ist ein Hilfsmodul, das die Segmentierung von Nicht-MPLS-GSO"=Paketen -ermöglicht, denen MPLS"=Stack"=Einträge hinzugefügt wurden, so dass sie zu -MPLS-GSO"=Paketen werden. - -\paragraph{MPLS: routing support}$~$\\ -CONFIG\_MPLS\_ROUTING [=m] \textbf{[M]}\\* -Hinzufügen von Unterstützung für die Weiterleitung von mpls"=Paketen. - -\subparagraph{MPLS: IP over MPLS tunnel support}$~$\\ -CONFIG\_MPLS\_IPTUNNEL [=m] \textbf{[M]}\\* -Unterstützung von mpls ip tunnel. - -\subsubsection{Network Service Header (NSH) protocol ---} -CONFIG\_NET\_NSH [=m] \textbf{[M]}\\* -Network Service Header ist eine Implementierung von Service Function Chaining -(RFC~7665). Die aktuelle Implementierung in Linux unterstützt nur MD~Typ~1 und -nur mit dem openvswitch"=Modul. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{High-availability Seamless Redundancy (HSR \& PRP)} -CONFIG\_HSR [=m] \textbf{[M]}\\* -Dies ermöglicht die in IEC~62439 definierte hochverfügbare nahtlose Redundanz -(HSR) und das Parallel Redundancy Protocol (PRP). -Wenn Sie hier Y angeben, kann Ihr Linux"=Rechner als DANH -(\glqq Doubly attached node implementing HSR\grqq{}) oder DANP (\glqq Doubly -attached node implementing PRP\grqq{}) fungieren. Damit dies funktioniert, -benötigt Ihr Linux"=Rechner (mindestens) zwei physische Ethernet"=Schnittstellen.\\ -Für DANH muss er als Knoten in einem Ringnetz zusammen mit anderen HSR-fähigen -Knoten angeschlossen sein. Alle über das HSR-Gerät gesendeten Ethernet"=Frames -werden in beide Richtungen auf dem Ring (über beide Slave-Ports) gesendet, -wodurch ein redundantes, sofort ausfallsicheres Netzwerk entsteht. -Jeder HSR"=Knoten im Ring verhält sich für HSR"=Rahmen wie eine Brücke, filtert -aber Rahmen, die bereits weitergeleitet wurden.\\ -Für DANP muss er als Knoten angeschlossen werden, der über die beiden -Slave"=Schnittstellen mit zwei getrennten Netzen verbunden ist. -Wie bei HSR werden Ethernet"=Rahmen, die über das PRP"=Gerät gesendet werden, -an beide Netze weitergeleitet, so dass ein redundantes, sofort ausfallsicheres -Netz entsteht. Im Gegensatz zu HSR können PRP-Netze über Singly -Attached Nodes (SAN) wie PC, Drucker, Brücken usw. verfügen und mit -DANP-Knoten kommunizieren.\\ -Dieser Code ist ein Versuch, die HSR-Norm, wie sie in IEC~62439-3:2010 (HSRv0) -und IEC~62439-3:2012 (HSRv1) beschrieben ist, und die PRP-Norm, wie sie -in IEC~62439-4:2012 (PRP) beschrieben ist, zu erfüllen, aber es wurden keine -Konformitätstests durchgeführt. Verwenden Sie iproute2, um das gewünschte -Protokoll auszuwählen.\\ -Sie müssen alle notwendigen Tests selbst durchführen, bevor Sie sich auf -diesen Code in einem sicherheitskritischen System verlassen!\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Switch (and switch-ish) device support} -CONFIG\_NET\_SWITCHDEV [=y] \textbf{[Y]}\\* -\textit{Unterstützung von Switches (und Switch-ähnlichen Geräten)}\\ -Dieses Modul stellt eine Verbindung zwischen dem Kern-Netzwerkcode und -den Gerätetreibern her, um Hardware-Switch-Chips im sehr allgemeinen -Sinne des Wortes \glqq Switch\grqq{} zu unterstützen. Dazu gehören Geräte, -die L2/L3 unterstützen, aber auch verschiedene Flow-Offloading-Chips, -einschließlich in SR-IOV-NICs eingebettete Switches. - -\subsubsection{L3 Master device support} -CONFIG\_NET\_L3\_MASTER\_DEV [=y] \textbf{[Y]}\\* -Dieses Modul stellt eine Verbindung zwischen dem Kernnetzcode und den -Gerätetreibern her, um L3"=Master"=Geräte wie VRF zu unterstützen. - -\subsubsection{Qualcomm IPC Router support} -CONFIG\_QRTR [=m] \textbf{[M]}\\* -Sagen Sie Y, wenn Sie das IPC-Routerprotokoll von Qualcomm verwenden möchten. -Das Protokoll wird für die Kommunikation mit Diensten verwendet, die -von anderen Hardware-Blöcken im System bereitgestellt werden. -Für die Suche nach Diensten ist ein Userspace"=Daemon erforderlich, -der eine Diensteliste führt. - -\paragraph{SMD IPC Router channels}$~$\\ -CONFIG\_QRTR\_SMD [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um SMD-basierte ipcrouter"=Kanäle zu unterstützen. -SMD ist der gebräuchlichste Transport für IPC"=Router. - -\paragraph{TUN device for Qualcomm IPC Router}$~$\\ -CONFIG\_QRTR\_TUN [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um ein Zeichengerät freizugeben, das es dem Userspace erlaubt, -Endpunkte von QRTR zu implementieren, um Daten zu anderen Hosts zu tunneln oder -zu testen. - -\paragraph{MHI IPC Router channels}$~$\\ -CONFIG\_QRTR\_MHI [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um MHI-basierte ipcrouter-Kanäle zu unterstützen. -MHI ist der Transport, der für die Kommunikation mit externen Modems verwendet wird. - -\subsubsection{NCSI interface support} -CONFIG\_NET\_NCSI [=y] \textbf{[Y]}\\* -Dieses Modul bietet NCSI-Unterstützung (Network Controller Sideband Interface). -Aktivieren Sie dies nur, wenn Ihr System eine Verbindung zu einem Netzwerkgerät -über NCSI herstellt und der verwendete Ethernet-Treiber das Protokoll -ausdrücklich unterstützt. - -\paragraph{Get NCSI OEM MAC Address}$~$\\ -CONFIG\_NCSI\_OEM\_CMD\_GET\_MAC [=y] \textbf{[Y]}\\* -Dies ermöglicht es, die MAC-Adresse von der NCSI-Firmware zu erhalten -und sie auf den Controller zurückzusetzen. - -\paragraph{Keep PHY Link up}$~$\\ -CONFIG\_NCSI\_OEM\_CMD\_KEEP\_PHY [=y] \textbf{[Y]}\\* -Dies ermöglicht es, die PHY-Verbindung aufrechtzuerhalten und verhindert ein -Zurücksetzen des Kanals während der Belastung durch den Host. - -\subsubsection{Use percpu variables to maintain network device refcount} -CONFIG\_PCPU\_DEV\_REFCNT [=y] \textbf{[Y]}\\* -Netzwerkgerät refcount verwenden pro CPU-Variablen, wenn diese Option gesetzt ist. -Dies kann auf N erzwungen werden, um Unterläufe zu erkennen (mit Leistungseinbußen). - -\subsubsection{Maximum number of fragments per skb\_shared\_info} -CONFIG\_MAX\_SKB\_FRAGS [=17] \textbf{[17]}\\* -Eine größere Anzahl von Fragmenten pro\ skb\_shared\_info kann die Effizienz von -GRO erhöhen. Dies hilft bei großen TCP"=Arbeitslasten, kann aber Fehler in -einigen älteren Treibern aufdecken.\\ -Dies erhöht auch den Speicher"=Overhead von kleinen Paketen und in Treibern, -die build\_skb() verwenden.\\ -Wenn Sie unsicher sind, sagen Sie 17. - -\subsubsection{Network priority cgroup} -CONFIG\_CGROUP\_NET\_PRIO [=y] \textbf{[Y]}\\* -Cgroup-Subsystem zur Verwendung bei der Zuweisung von Prozessen zu -Netzwerkprioritäten auf Schnittstellenbasis. - -\subsubsection{Network classid cgroup} -CONFIG\_CGROUP\_NET\_CLASSID [=y] \textbf{[Y]}\\* -Cgroup-Subsystem zur Verwendung als Allzweck-Socket-Classid-Marker, der in -cls\_cgroup und für den Netzfilterabgleich verwendet wird. - -\subsubsection{enable BPF STREAM\_PARSER} -CONFIG\_BPF\_STREAM\_PARSER [=y] \textbf{[Y]}\\* -Wenn Sie dies aktivieren, kann ein TCP"=Stream"=Parser mit -BPF\_MAP\_TYPE\_SOCKMAP verwendet werden. - -\subsubsection{Network testing \texorpdfstring{$\rightarrow$}{->}} -\textit{(Netzwerktests)} - -\paragraph{Packet Generator (USE WITH CAUTION)}$~$\\ -CONFIG\_NET\_PKTGEN [=m] \textbf{[M]}\\* -\textit{(Paketgenerator (mit Vorsicht zu verwenden))}\\ -Dieses Modul sendet vorkonfigurierte Pakete mit einer konfigurierbaren Rate über eine -bestimmte Schnitt"-stel"-le. Es wird für Belastungstests und Leistungsanalysen von -Netzwerk"-schnittstellen verwendet. Wenn Sie nicht verstehen, was gerade gesagt wurde, -dann benötigen Sie es nicht: Sagen Sie N. -Eine Dokumentation über die Verwendung des Paketgenerators finden Sie unter -$<$file:Documentation/networking/pktgen.rst$>$. -Um diesen Code als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{pktgen} genannt. - -\paragraph{Network packet drop alerting service}$~$\\ -CONFIG\_NET\_DROP\_MONITOR [=y] \textbf{[Y]}\\* -Diese Funktion bietet einen Alarmierungsdienst für den Userspace, wenn Pakete im -Netzwerkstapel verworfen werden. Warnungen werden über den Netlink"=Socket an jeden -zuhörenden Userspace"=Prozess gesendet.\\ -Wenn Sie keine Netzwerkwarnungen benötigen, oder wenn es Ihnen genügt, die -verschiedenen proc-Dateien und andere Dienstprogramme auf Verwerfungsstatistiken -zu überprüfen, sagen Sie hier N. - -\subsection{Amateur Radio support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_HAMRADIO [=y] \textbf{[Y]}\\* -Wenn Sie Ihre Linux-Box mit einem Amateurfunkgerät verbinden wollen, antworten Sie -hier mit Y. Lesen Sie \url{https://www.tapr.org/} und speziell über AX.25 -\url{https://linux-ax25.in-berlin.de} um weitere Informationen zu erhalten. -Beachten Sie, dass die Antwort auf diese Frage keine direkte Auswirkung -auf den Kernel hat: Wenn Sie N sagen, überspringt der Konfigurator einfach -alle Fragen zum Amateurfunk. - -\subsubsection*{*** Packet Radio protocols ***} -\textit{(Amateurfunkprotokolle)} - -\subsubsection{Amateur Radio AX.25 Level 2 protocol} -CONFIG\_AX25 [=m] \textbf{[M]}\\* -Dies ist das Protokoll, das für die Computerkommunikation über Amateurfunk verwendet -wird. Es wird entweder allein für Punkt"=zu"=Punkt"=Verbindungen verwendet oder um -andere Protokolle wie tcp/ip zu übertragen. Um es zu benutzen, brauchen Sie ein -Gerät, das Ihre Linux-Box mit Ihrem Amateurfunkgerät verbindet. Sie können entweder -einen langsamen TNC (ein Terminal Node Controller fungiert als eine Art Modem, -das den seriellen Anschluss Ihres Computers mit dem Mikrofoneingang und dem -Lautsprecherausgang Ihres Funkgeräts verbindet) verwenden, der das KISS"=Protokoll -unterstützt, oder eine der verschiedenen SCC-Karten, die vom generischen Z8530 -oder dem DMA SCC-Treiber unterstützt werden. Eine weitere Option sind die seriellen -und parallelen Baycom"=Modem"=Hacks oder das Soundkarten"=Modem (die von ihren -eigenen Treibern unterstützt werden). Wenn Sie hier Y für Ja sagen, müssen Sie -auch Y zu einem dieser Treiber sagen.\\ -Informationen darüber, wo man unterstützende Software für Linux"=Amateurfunk erhält, -sowie Informationen darüber, wie man einen AX.25"=Port konfiguriert, sind im -AX25-HOWTO enthalten, das unter \url{https://www.tldp.org/docs.html#howto} -erhältlich ist. Sie können auch einen Blick in die Datei -$<$file:Documentation/networking/ax25.rst$>$ im Kernel-Quellcode werfen. -Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im -WWW unter \url{https://www.tapr.org/}.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{ax25}. - -\paragraph{AX.25 DAMA Slave support}$~$\\ -CONFIG\_AX25\_DAMA\_SLAVE [=y] \textbf{[Y]}\\* -DAMA ist ein Mechanismus zur Vermeidung von Kollisionen bei AX.25"=Netzwerken. -Ein DAMA"=Server (genannt \glqq Master\grqq{}) nimmt eingehenden Verkehr von Clients -(genannt \glqq Slaves\grqq{}) entgegen und verteilt ihn an andere Slaves weiter. -Wenn Sie hier Y sagen, wird Ihr Linux-Rechner als DAMA-Slave fungieren; dies ist insofern -transparent, als Sie keine spezielle DAMA"=Konfiguration vornehmen müssen. Linux kann noch -nicht als DAMA"=Server fungieren. Diese Option kompiliert nur die DAMA"=Slave"=Unterstützung -in den Kernel. Sie muss immer noch zur Laufzeit aktiviert werden. Mehr über DAMA finden -Sie unter \url{https://linux-ax25.in-berlin.de}.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Amateur Radio NET/ROM protocol}$~$\\ -CONFIG\_NETROM [=m] \textbf{[M]}\\* -NET/ROM ist ein Netzschichtprotokoll, das auf AX.25 aufsetzt und für die Leitweglenkung -nützlich ist. Eine umfassende Auflistung aller Software für Linux-Amateurfunknutzer -sowie Informationen über die Konfiguration eines AX.25-Ports finden Sie im Linux Ham Wiki, -das unter \url{https://linux-ax25.in-berlin.de} verfügbar ist. Sie sollten auch einen -Blick in die Datei\\ -$<$file:Documentation/networking/ax25.rst$>$ werfen. -Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im WWW unter -\url{https://www.tapr.org/}. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{netrom}. - -\paragraph{Amateur Radio X.25 PLP (Rose)}$~$\\ -CONFIG\_ROSE [=m] \textbf{[M]}\\* -Das Packet Layer Protocol (PLP) ist eine Möglichkeit, Pakete über X.25"=Verbindungen -im Allgemeinen und Amateurfunk AX.25"=Verbindungen im Besonderen zu leiten, -im Wesentlichen eine Alternative zu NET/ROM. Eine umfassende Auflistung der gesamten -Software für Linux"=Amateurfunknutzer sowie Informationen über die Konfiguration -eines AX.25"=Ports finden Sie im Linux Ham Wiki, das unter -\url{https://linux-ax25.in-berlin.de} verfügbar ist. -Sie sollten auch einen Blick in die Datei $<$file:Documentation/networking/ax25.rst$>$ -werfen. Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im -WWW unter \url{https://www.tapr.org/}. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{rose} heißen. - -\paragraph{AX.25 network device drivers \texorpdfstring{$\rightarrow$}{->}}$~$\\ -\textit{(AX.25-Netzwerktreiber)} - -\subparagraph{Serial port KISS driver}$~$\\ -CONFIG\_MKISS [=m] \textbf{M}\\* -KISS ist ein Protokoll für den Datenaustausch zwischen einem Computer und einem Terminal -Node Controller (ein kleines eingebettetes System, das häufig für die Vernetzung über -AX.25"=Amateurfunkverbindungen verwendet wird; es verbindet den seriellen Anschluss des -Computers mit dem Mikrofoneingang und dem Lautsprecherausgang des Funkgeräts).\\ -Obwohl KISS weniger fortschrittlich ist als das 6pack-Protokoll, hat es den Vorteil, -dass es bereits von den meisten modernen TNCs unterstützt wird, ohne dass ein -Firmware"=Upgrade erforderlich ist.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{mkiss}. - -\subparagraph{Serial port 6PACK driver}$~$\\ -CONFIG\_6PACK [=m] \textbf{M}\\* -6pack ist ein Übertragungsprotokoll für den Datenaustausch zwischen Ihrem PC und Ihrem -TNC (der Terminal Node Controller fungiert als eine Art Modem, das die serielle -Schnittstelle Ihres Computers mit dem Mikrofoneingang und dem Lautsprecherausgang -Ihres Radios verbindet). Dieses Protokoll kann als Alternative zu KISS für die -Vernetzung über AX.25"=Amateurfunkverbindungen verwendet werden, verfügt aber über -einige erweiterte Funktionen. -Beachten Sie, dass dieser Treiber noch experimentell ist und Probleme verursachen kann. -Für Details über die Funktionen und die Verwendung des Treibers lesen Sie -$<$file:Documentation/networking/6pack.rst$>$. Um diesen Treiber als Modul zu -kompilieren, wählen Sie hier M: -Das Modul wird \texttt{6pack} heißen. - -\subparagraph{BPQ Ethernet driver}$~$\\ -CONFIG\_BPQETHER [=m] \textbf{M}\\* -AX.25 ist das Protokoll, das für die Computerkommunikation über Amateurfunk verwendet wird. -Wenn Sie hier Y sagen, können Sie den AX.25"=Datenverkehr über Ethernet -(auch \glqq BPQ AX.25\grqq{} genannt) senden und empfangen, was nützlich sein kann, -wenn ein anderer Computer in Ihrem lokalen Netzwerk eine direkte Amateurfunkverbindung hat. - -\subparagraph{BAYCOM ser12 fullduplex driver for AX.25}$~$\\ -CONFIG\_BAYCOM\_SER\_FDX [=m] \textbf{M}\\* -Dies ist einer von zwei Treibern für einfache Amateurfunkmodems im Baycom"=Stil, die an eine -serielle Schnittstelle angeschlossen werden. Der Treiber unterstützt das ser12"=Design im -Vollduplex"=Modus. Darüber hinaus kann die Baudrate zwischen 300 und 4800~Baud eingestellt -werden (allerdings unterstützen nicht alle Modems alle Baudraten). Dies ist der bevorzugte -Treiber. Der nächste Treiber, \glqq BAYCOM ser12 half-duplex driver for AX.25\grqq{} ist -der alte Treiber und wird immer noch angeboten, falls dieser Treiber nicht mit Ihrem -seriellen Schnittstellenchip funktioniert. Um den Treiber zu konfigurieren, verwenden Sie -das Dienstprogramm sethdlc, das im Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ -Weitere Informationen zu den Modems finden Sie in\\ -$<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{baycom\_ser\_fdx} genannt. Dies wird empfohlen. - -\subparagraph{BAYCOM ser12 fullduplex driver for AX.25}$~$\\ -CONFIG\_BAYCOM\_SER\_HDX [=m] \textbf{M}\\* -Dies ist einer von zwei Treibern für einfache Amateurfunkmodems im Baycom"=Stil, die an eine -serielle Schnittstelle angeschlossen werden. Der Treiber unterstützt das ser12"=Design im -Halbduplex"=Modus. Dies ist der alte Treiber. Er ist noch vorhanden, falls Ihr serieller -Schnittstellenchip nicht mit dem Vollduplex"=Treiber funktioniert. Dieser Treiber ist -veraltet. Um den Treiber zu konfigurieren, verwenden Sie das Dienstprogramm -\texttt{sethdlc}, das im Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ -Weitere Informationen zu den Modems finden Sie in\\ - $<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: das Modul wird -\texttt{baycom\_ser\_hdx} heißen. Dies wird empfohlen. - -\subparagraph{BAYCOM picpar and par96 driver for AX.25}$~$\\ -CONFIG\_BAYCOM\_PAR [=m] \textbf{M}\\* -Dies ist ein Treiber für einfache Amateurfunkmodems im Baycom"=Stil, die an eine parallele -Schnittstelle angeschlossen werden. Der Treiber unterstützt die Designs picpar und par96. -Um den Treiber zu konfigurieren, verwenden Sie das Dienstprogramm sethdlc, das im -Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ -Weitere Informationen zu den Modems finden Sie in\\ -$<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{baycom\_par} genannt. Dies wird empfohlen. - -\subparagraph{YAM driver for AX.25}$~$\\ -CONFIG\_YAM [=m] \textbf{M}\\* -Das YAM ist ein Modem für Packet Radio, das an die serielle Schnittstelle angeschlossen -wird und einige der Funktionen eines Terminal Node Controllers enthält. Wenn Sie einen -solchen haben, geben Sie hier Y an.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{yam}. - -\subsection{CAN bus subsystem support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CAN [=m] \textbf{[M]}\\* -Das Controller Area Network (CAN) ist ein langsames (bis zu 1 Mbit/s) serielles -Kommunikationsprotokoll. Die Entwicklung des CAN-Busses begann 1983 bei der Robert -Bosch GmbH, und das Protokoll wurde 1986 offiziell freigegeben. Ursprünglich war der -CAN"=Bus hauptsächlich für Kraftfahrzeuge gedacht, wird aber inzwischen auch in der -Schifffahrt (NMEA2000), in der Industrie und in der Medizintechnik eingesetzt. -Weitere Informationen über die CAN-Netzwerkprotokollfamilie PF\_CAN sind in\\ -$<$Documentation/networking/can.rst$>$ enthalten. -Wenn Sie CAN"=Unterstützung wünschen, sollten Sie hier und auch bei dem -spezifischen Treiber für Ihr(e) Steuergerät(e) unter dem Abschnitt -Netzwerkgeräteunterstützung Y angeben. - -\subsubsection{Raw CAN Protocol (raw access with CAN-ID filtering)} -CONFIG\_CAN\_RAW [=m] \textbf{[M]}\\* -Die Option raw CAN-Protokoll bietet Zugriff auf den CAN-Bus über die BSD-Socket-API. -In den meisten Fällen, in denen kein höheres Protokoll verwendet wird, sollten Sie -das Raw-Socket verwenden. Der Raw-Socket verfügt über mehrere Filteroptionen, -z.~B. ID"=Maskierung/Fehlerrahmen. -Um rohe CAN-Nachrichten zu empfangen/senden, verwenden Sie AF\_CAN mit dem -Protokoll CAN\_RAW. - -\subsubsection{Broadcast Manager CAN Protocol (with content filtering)} -CONFIG\_CAN\_BCM [=m] \textbf{[M]}\\* -Der Broadcast Manager bietet Inhaltsfilterung, Timeout-Überwachung, Senden von -RTR"=Frames und zyklischen CAN"=Nachrichten ohne ständige Benutzerinteraktion. -Der BCM kann über die BSD"=Socket"=API \glqq programmiert\grqq{} werden und -informiert Sie bei Bedarf z.~B. nur bei Content"=Updates/Timeouts. -In den meisten Fällen, in denen zyklische CAN"=Nachrichten auf dem Bus verwendet -werden (z.~B. in der Automobilbranche), wird man wahrscheinlich den bcm"=Socket -verwenden wollen. Um den Broadcast Manager zu nutzen, verwenden Sie AF\_CAN mit -dem Protokoll CAN\_BCM. - -\subsubsection{CAN Gateway/Router (with netlink configuration)} -CONFIG\_CAN\_GW [=m] \textbf{[M]}\\* -Der CAN"=Gateway/Router wird zum Weiterleiten (und Modifizieren) von CAN"=Frames -verwendet. Er basiert auf der PF\_CAN"=Kerninfrastruktur für die Nachrichtenfilterung -und das Senden von Nachrichten und kann optional geroutete CAN"=Frames im laufenden -Betrieb ändern. CAN"=Frames können zwischen CAN"=Netzwerkschnittstellen geroutet -werden (ein Hop). Sie können mit AND/OR/XOR/SET"=Verknüpfungen modifiziert werden, -wie sie von der Netlink"=Konfigurationsschnittstelle konfiguriert werden, die -z.~B. von iptables bekannt ist. - -\subsubsection{SAE J1939} -CONFIG\_CAN\_J1939 [=m] \textbf{[M]}\\* -SAE J1939\\* -Sagen Sie Y, um eine In-Kernel"=Unterstützung für den Sockeltyp J1939 zu haben. -Dies ermöglicht die Kommunikation gemäß SAE j1939.\\ -Die relevanten Teile im Kernel sind -SAE j1939-21 (Datenverbindung \& Transportprotokoll) -\&\\ SAE j1939-81 (Netzwerkverwaltung). - -\subsubsection{ISO 15765-2:2016 CAN transport protocol} -CONFIG\_CAN\_ISOTP [=m] \textbf{[M]}\\* -CAN"=Transportprotokolle bieten Unterstützung für segmentierte -Punkt"=zu"=Punkt"=Kommunikation zwischen CAN"=Knoten über zwei definierte -CAN"=Identifier. Da CAN"=Frames nur eine geringe Anzahl von Datenbytes -transportieren können (max. 8~Bytes für \glqq klassisches\grqq{} CAN und -max. 64~Bytes für CAN FD), wird diese Segmentierung benötigt, um längere -Protocol Data Units (PDU) zu transportieren, wie sie z.~B. für die -Fahrzeugdiagnose (UDS, ISO~14229) oder IP"=over"=CAN"=Verkehr benötigt werden. -Dieser Protokolltreiber implementiert Datenübertragungen gemäß -ISO~15765-2:2016 für \glqq klassische\grqq{} CAN"= und CAN FD"=Frame"=Typen. -Wenn Sie Fahrzeugdiagnosedienste (UDS) durchführen möchten, sagen Sie Y. - -\subsection{Bluetooth subsystem support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_BT [=m] \textbf{[M]}\\* -Bluetooth ist eine kostengünstige drahtlose Technologie mit geringem Stromverbrauch -und kurzer Reichweite. Sie wurde als Ersatz für Kabel und andere -Kurzstreckentechnologien wie IrDA entwickelt. Bluetooth arbeitet in einem -persönlichen Bereich (personal area range), der in der Regel bis zu 10~Meter reicht. -Weitere Informationen über Bluetooth finden Sie unter \url{https://www.bluetooth.com/}. -Das Bluetooth-Subsystem von Linux besteht aus mehreren Schichten: -\begin{itemize} -\item Bluetooth-Kern -\begin{itemize} -\item HCI Geräte- und Verbindungsmanager, Scheduler -\item SCO audio links -\item L2CAP (Logical Link Control and Adaptation Protocol) -\item SMP (Security Manager Protocol) auf LE (Low Energy) Verbindungen -\item ISO isochrone Verbindungen -\end{itemize} -\item HCI Gerätetreiber (Schnittstelle zur Hardware) -\item RFCOMM Modul (RFCOMM Protokoll) -\item BNEP Modul (Bluetooth Netzwerkkapselungsprotokoll) -\item CMTP-Modul (CAPI Message Transport Protocol) -\item HIDP-Modul (Protokoll für menschliche Schnittstellengeräte) -\end{itemize} -Sagen Sie hier Y, um die Bluetooth-Unterstützung in den Kernel zu kompilieren oder -sagen Sie M, um dies als Modul (bluetooth) zu kompilieren. -Um das Linux-Bluetooth-Subsystem zu nutzen, benötigen Sie mehrere -Userspace-Dienstprogramme wie hciconfig und bluetoothd. -Diese Dienstprogramme und Aktualisierungen für Bluetooth"=Kernelmodule werden in -den BlueZ-Paketen bereitgestellt. Weitere Informationen finden Sie unter -\url{http://www.bluez.org/}. - -\subsubsection{Bluetooth Classic (BR/EDR) features} -CONFIG\_BT\_BREDR [=y] \textbf{[Y]}\\* -Bluetooth Classic bietet Unterstützung für Basic Rate (BR), die mit Bluetooth -Version~1.0b oder höher verfügbar ist, und Unterstützung für Enhanced Data Rate (EDR), -die mit Bluetooth Version~2.0 oder höher verfügbar ist. - -\paragraph{RFCOMM protocol support}$~$\\ -CONFIG\_BT\_RFCOMM [=m] \textbf{[M]}\\* -RFCOMM bietet einen verbindungsorientierten Stream-Transport. -Die RFCOMM"=Unterstützung ist für Dialup Networking, OBEX und andere -Bluetooth"=Anwendungen erforderlich. Sagen Sie hier Y, um die -RFCOMM"=Unterstützung in den Kernel zu kompilieren oder sagen Sie M, -um sie als Modul (rfcomm) zu kompilieren. - -\subparagraph{RFCOMM TTY support}$~$\\ -CONFIG\_BT\_RFCOMM\_TTY [=y] \textbf{[Y]}\\* -This option enables TTY emulation support for RFCOMM channels. - -\paragraph{BNEP protocol support}$~$\\ -CONFIG\_BT\_BNEP [=m] \textbf{[M]}\\* -BNEP (Bluetooth Network Encapsulation Protocol) ist eine Ethernet"=Emulationsschicht -über Bluetooth. BNEP ist für Bluetooth PAN (Personal Area Network) erforderlich. -Sagen Sie hier Y, um BNEP"=Unterstützung in den Kernel zu kompilieren, oder -sagen Sie M, um es als Modul (bnep) zu kompilieren. - -\subparagraph{Multicast filter support}$~$\\ -CONFIG\_BT\_BNEP\_MC\_FILTER [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Multicast"=Filterunterstützung für BNEP. - -\subparagraph{Protocol filter support}$~$\\ -CONFIG\_BT\_BNEP\_PROTO\_FILTER [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Protokollfilterunterstützung für BNEP aktiviert. - -\paragraph{CMTP protocol support}$~$\\ -CONFIG\_BT\_CMTP [=m] \textbf{[M]}\\* -CMTP (CAPI Message Transport Protocol) ist eine Transportschicht für CAPI-Nachrichten. -CMTP ist für das Bluetooth Common ISDN Access Profile erforderlich. -Sagen Sie hier Y, um CMTP"=Unterstützung in den Kernel zu kompilieren oder -sagen Sie M, um es als Modul (cmtp) zu kompilieren. - -\paragraph{HIDP protocol support}$~$\\ -CONFIG\_BT\_HIDP [=m] \textbf{[M]}\\* -HIDP (Human Interface Device Protocol) ist eine Transportschicht für HID-Meldungen. -HIDP ist für das Bluetooth Human Interface Device Profile erforderlich. -Sagen Sie hier Y, um HIDP-Unterstützung in den Kernel zu kompilieren, -oder sagen Sie M, um es als Modul (hidp) zu kompilieren. - -\paragraph{Bluetooth High Speed (HS) features}$~$\\ -CONFIG\_BT\_HS [=n] \textbf{[N]}\\* -Bluetooth High Speed unterstützt das Off-Loading von Bluetooth"=Verbindungen über -die physikalische Schicht 802.11 (wifi), die mit Bluetooth Version 3.0 oder höher -verfügbar ist. - -\subsubsection{Bluetooth Low Energy (LE) features} -CONFIG\_BT\_LE [=y] \textbf{[Y]}\\* -Bluetooth Low Energy unterstützt eine energiesparende physikalische Schicht, -die mit Bluetooth Version 4.0 oder höher verfügbar ist. - -\paragraph{Bluetooth L2CAP Enhanced Credit Flow Control}$~$\\ -CONFIG\_BT\_LE\_L2CAP\_ECRED [=y] \textbf{[Y]}\\* -Bluetooth Low Energy L2CAP Enhanced Credit Flow Control verfügbar mit -Bluetooth Version~5.2 oder höher. -Dies kann durch die Übergabe von \texttt{bluetooth.enable\_ecred=$[1|0]$} in der -Kernel"=Befehlszeile außer Kraft gesetzt werden. - -\paragraph{Bluetooth 6LoWPAN support}$~$\\ -CONFIG\_BT\_6LOWPAN [=m] \textbf{[M]}\\* -IPv6-Kompression über Bluetooth Low Energy. - -\subsubsection{Enable LED triggers} -CONFIG\_BT\_LEDS [=y] \textbf{[Y]}\\* -Mit dieser Option können Sie einige LED-Trigger für verschiedene -Bluetooth"=Ereignisse auswählen. - -\subsubsection{Enable Microsoft extensions} -CONFIG\_BT\_MSFTEXT [=y] \textbf{[Y]}\\* -Diese Option ermöglicht die Unterstützung der von Microsoft definierten -HCI"=Anbietererweiterungen. - -\subsubsection{Enable Android Open Source Project extensions} -CONFIG\_BT\_AOSPEXT [=y] \textbf{[Y]}\\* -Diese Option ermöglicht die Unterstützung für die vom Android Open Source -Project definierten HCI"=Herstellererweiterungen. - -\subsubsection{Enable Bluetooth internals in debugfs} -CONFIG\_BT\_DEBUGFS [=y] \textbf{[Y]}\\* -Umfassende Informationen über interne Bluetooth-Zustände in \texttt{debugfs} -bereitstellen. - -\subsubsection{Bluetooth self testing support} -CONFIG\_BT\_SELFTEST [=n] \textbf{[N]}\\* -Führen Sie bei der Initialisierung des Bluetooth"=Subsystems Selbsttests durch. -Dies ist eine Entwickleroption und kann zu erheblichen Verzögerungen beim Booten -des Systems führen. -Wenn das Bluetooth"=Subsystem als Modul gebaut wird, werden die Testfälle als -erstes beim Laden des Moduls ausgeführt. -Wenn das Bluetooth"=Subsystem in das Kernel"=Image kompiliert wird, werden die -Testfälle erst spät in der Aufrufhierarchie ausgeführt. - -\subsubsection{Bluetooth device drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(Bluetooth-Gerätetreiber)} - -\paragraph{HCI USB driver}$~$\\ -CONFIG\_BT\_HCIBTUSB [=m] \textbf{[M]}\\* -Bluetooth HCI USB-Treiber. -Dieser Treiber ist erforderlich, wenn Sie Bluetooth"=Geräte mit USB"=Schnittstelle -verwenden möchten. -Sagen Sie hier Y, um die Unterstützung für Bluetooth"=USB"=Geräte in den Kernel zu -kompilieren, oder sagen Sie M, um sie als Modul (btusb) zu kompilieren. - -\subparagraph{Enable USB autosuspend for Bluetooth USB devices by default}$~$\\ -CONFIG\_BT\_HCIBTUSB\_AUTOSUSPEND [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, um USB-Autosuspend für Bluetooth-USB-Geräte standardmäßig zu aktivieren. -Dies kann durch die Übergabe von \texttt{btusb.enable\_autosuspend=$[y|n]$} in der -Kernel"=Kommandozeile über"=schrieben werden. - -\subparagraph{Enable USB poll\_sync for Bluetooth USB devices by default}$~$\\ -CONFIG\_BT\_HCIBTUSB\_POLL\_SYNC [=y] \textbf{[Y]}\\* -poll\_sync synchronisiert die USB"=Daten"= und -Ereignis"=Endpunkte, indem es letzteren -Vorrang einräumt. -Sagen Sie hier Y, um USB poll\_sync für Bluetooth"=USB"=Geräte standardmäßig zu -aktivieren. - -\subparagraph{Broadcom protocol support}$~$\\ -CONFIG\_BT\_HCIBTUSB\_BCM [=y] \textbf{[Y]}\\* -Die Unterstützung des Broadcom-Protokolls ermöglicht den Download von Firmware -und Patchram für Broadcom"=Bluetooth"=Controller. -Sagen Sie hier Y, um Unterstützung für das Broadcom"=Protokoll zu kompilieren. - -\subparagraph{MediaTek protocol support}$~$\\ -CONFIG\_BT\_HCIBTUSB\_MTK [=y] \textbf{[Y]}\\* -Die Unterstützung des MediaTek-Protokolls ermöglicht den Firmware"=Download -und die Chip"=Initialisierung für MediaTek Bluetooth"=USB"=Controller. -Sagen Sie hier Y, um die Unterstützung für das MediaTek"=Protokoll zu kompilieren. - -\subparagraph{Realtek protocol support}$~$\\ -CONFIG\_BT\_HCIBTUSB\_RTL [=y] \textbf{[Y]}\\* -Die Unterstützung des Realtek"=Protokolls ermöglicht den Download von Firmware -und Konfiguration für Realtek"=Bluetooth"=Controller. -Sagen Sie hier Y, um Unterstützung für das Realtek"=Protokoll zu kompilieren. - -\paragraph{HCI SDIO driver}$~$\\ -CONFIG\_BT\_HCIBTSDIO [=m] \textbf{[M]}\\* -Bluetooth-HCI-SDIO-Treiber. -Dieser Treiber ist erforderlich, wenn Sie ein Bluetooth"=Gerät mit -SDIO"=Schnittstelle verwenden möchten. -Sagen Sie hier Y, um die Unterstützung für Bluetooth"=SDIO"=Geräte -in den Kernel zu kompilieren, oder sagen Sie M, um sie als Modul (btsdio) -zu kompilieren. - -\paragraph{HCI UART driver}$~$\\ -CONFIG\_BT\_HCIUART [=m] \textbf{[M]}\\* -Bluetooth HCI UART-Treiber. -Dieser Treiber ist erforderlich, wenn Sie Bluetooth"=Geräte mit serieller -Schnittstelle verwenden möchten. Sie benötigen diesen Treiber auch, wenn -Sie UART"=basierte Bluetooth PCMCIA- und CF"=Geräte wie Xircom Credit Card -Adapter und BrainBoxes Bluetooth PC Card verwenden. -Sagen Sie hier Y, um die Unterstützung für Bluetooth"=UART"=Geräte in den -Kernel zu kompilieren, oder sagen Sie M, um sie als Modul (hci\_uart) zu -kompilieren. - -\subparagraph{UART (H4) protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_H4 [=y] \textbf{[Y]}\\* -UART (H4) ist ein serielles Protokoll für die Kommunikation zwischen -Bluetooth"=Gerät und Host. Dieses Protokoll ist für die meisten -Bluetooth"=Geräte mit UART"=Schnittstelle erforderlich, einschließlich -PCMCIA- und CF"=Karten. -Sagen Sie hier Y, um Unterstützung für das HCI UART (H4) Protokoll zu kompilieren. - -\subparagraph{UART Nokia H4+ protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_NOKIA [=m] \textbf{[M]}\\* -Nokia H4+ ist ein serielles Protokoll für die Kommunikation zwischen -Bluetooth"=Gerät und Host. Dieses Protokoll ist für Bluetooth"=Geräte mit -UART"=Schnittstelle in Nokia"=Geräten erforderlich. -Sagen Sie hier Y, um Unterstützung für das H4+"=Protokoll von Nokia zu kompilieren. - -\subparagraph{BCSP protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_BCSP [=y] \textbf{[Y]}\\* -BCSP (BlueCore Serial Protocol) ist ein serielles Protokoll für die Kommunikation -zwischen Bluetooth"=Gerät und Host. Dieses Protokoll ist für Bluetooth"=Geräte -erforderlich, die nicht auf dem CSR BlueCore"=Chip basieren, einschließlich -PCMCIA- und CF"=Karten. -Sagen Sie hier Y, um Unterstützung für das HCI BCSP"=Protokoll zu kompilieren. - -\subparagraph{Atheros AR300x serial support}$~$\\ -CONFIG\_BT\_HCIUART\_ATH3K [=y] \textbf{[Y]}\\* -HCIATH3K (HCI Atheros AR300x) ist ein serielles Protokoll für die Kommunikation -zwischen Host und Atheros AR300x Bluetooth"=Geräten. Mit diesem Protokoll können -AR300x"=Chips mit Unterstützung für die Energieverwaltung aktiviert werden. -Aktivieren Sie dies, wenn Sie ein serielles Bluetooth"=Gerät vom -Typ Atheros AR300x besitzen. -Sagen Sie hier Y, um Unterstützung für das HCI UART ATH3K Protokoll zu kompilieren. - -\subparagraph{HCILL protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_LL [=y] \textbf{[Y]}\\* -HCILL (HCI Low Level) ist ein serielles Protokoll für die Kommunikation zwischen -Bluetooth"=Gerät und Host. Dieses Protokoll ist für serielle Bluetooth"=Geräte -erforderlich, die auf BRF"=Chips von Texas Instruments basieren. -Sagen Sie hier Y, um Unterstützung für das HCILL"=Protokoll zu kompilieren. - -\subparagraph{Three-wire UART (H5) protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_3WIRE [=y] \textbf{[Y]}\\* -Der HCI Three-wire UART Transport Layer ermöglicht es, die Bluetooth HCI über -eine serielle Schnittstelle zu nutzen. Der HCI Three"=wire UART Transport Layer -geht davon aus, dass die UART"=Kommunikation Bitfehler, Overrun"=Fehler oder -Burst"=Fehler aufweisen kann, wodurch CTS/RTS"=Leitungen überflüssig werden. -Sagen Sie hier Y, um Unterstützung für das Three"=wire UART"=Protokoll -zu kompilieren. - -\subparagraph{Intel protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_INTEL [=y] \textbf{[Y]}\\* -Die Unterstützung des Intel"=Protokolls ermöglicht Bluetooth HCI über die -serielle Schnittstelle für Intel"=Bluetooth"=Controller. -Sagen Sie hier Y, um die Unterstützung für das Intel"=Protokoll zu kompilieren. - -\subparagraph{Broadcom protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_BCM [=y] \textbf{[Y]}\\* -Die Unterstützung des Broadcom"=Protokolls ermöglicht Bluetooth HCI über die -serielle Schnittstelle für Broadcom Bluetooth"=Controller. -Sagen Sie hier Y, um Unterstützung für das Broadcom"=Protokoll zu kompilieren. - -\subparagraph{Realtek protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_RTL [=y] \textbf{[Y]}\\* -Die Unterstützung des Realtek-Protokolls ermöglicht Bluetooth HCI über eine -serielle 3-Draht"=Schnittstelle für Realtek Bluetooth"=Controller. -Sagen Sie hier Y, um Unterstützung für das Realtek"=Protokoll zu kompilieren. - -\subparagraph{Qualcomm Atheros protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_QCA [=y] \textbf{[Y]}\\* -Das Qualcomm Atheros-Protokoll unterstützt die HCI-In-Band"=Sleep"=Funktion -über die serielle Schnittstelle (H4) zwischen Controller und Host. -Dieses Protokoll ist für die UART-Taktsteuerung für QCA"=Bluetooth"=Geräte -erforderlich. -Sagen Sie hier Y, um Unterstützung für das QCA-Protokoll zu kompilieren. - -\subparagraph{Intel AG6XX protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_AG6XX [=y] \textbf{[Y]}\\* -Die Unterstützung des Intel/AG6XX"=Protokolls ermöglicht Bluetooth HCI über -die serielle Schnittstelle für Intel ibt 2.1 Bluetooth"=Controller. -Sagen Sie hier Y, um Unterstützung für das Intel AG6XX"=Protokoll -zu kompilieren. - -\subparagraph{Marvell protocol support}$~$\\ -CONFIG\_BT\_HCIUART\_MRVL [=y] \textbf{[Y]}\\* -Marvell ist ein serielles Protokoll für die Kommunikation zwischen -Bluetooth"=Gerät und Host. Dieses Protokoll ist für die meisten -Marvell"=Bluetooth"=Geräte mit UART"=Schnittstelle erforderlich. -Sagen Sie hier Y, um Unterstützung für das HCI MRVL"=Protokoll zu kompilieren. - -\subparagraph{HCI BCM203x USB driver}$~$\\ -CONFIG\_BT\_HCIBCM203X [=m] \textbf{[M]}\\* -Bluetooth HCI BCM203x USB-Treiber. -Dieser Treiber bietet den Mechanismus zum Laden der Firmware für die Broadcom -Blutonium"=basierten Geräte. -Sagen Sie hier Y, um die Unterstützung für HCI BCM203x"=Geräte in den Kernel zu -kompilieren oder sagen Sie M, um dies als Modul (bcm203x) zu kompilieren. - -\subparagraph{HCI BCM4377/4378/4387 PCIe driver}$~$\\ -CONFIG\_BT\_HCIBCM4377 [=m] \textbf{[M]}\\* -Unterstützung für Broadcom BCM4377/4378/4387 Bluetooth"=Chipsätze, die über -PCIe angeschlossen sind. Diese sind in der Regel in Apple"=Geräten zu finden. -Sagen Sie hier Y, um Unterstützung für Geräte der HCI BCM4377"=Familie in den -Kernel zu kompilieren, oder sagen Sie M, um dies als Modul (hci\_bcm4377) -zu kompilieren. - -\subparagraph{HCI BPA10x USB driver}$~$\\ -CONFIG\_BT\_HCIBPA10X [=m] \textbf{[M]}\\* -Bluetooth HCI BPA10x USB-Treiber.\\ -Dieser Treiber bietet die Unterstützung für die Digianswer -BPA~100/105 Blue"-tooth"=Schnüffelgeräte. -Sagen Sie hier Y, um die Unterstützung für HCI BPA10x-Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (bpa10x) zu kompilieren. - -\subparagraph{HCI BlueFRITZ! USB driver}$~$\\ -CONFIG\_BT\_HCIBFUSB [=m] \textbf{[M]}\\* -Bluetooth HCI BlueFRITZ! USB-Treiber.\\ -Dieser Treiber bietet Unterstützung für Bluetooth"=USB"=Geräte mit -AVM"=Schnittstelle: -\begin{itemize} - \item AVM BlueFRITZ! USB -\end{itemize} -Sagen Sie hier Y, um die Unterstützung für HCI BFUSB Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (bfusb) zu kompilieren. - -\subparagraph{HCI DTL1 (PC Card) driver}$~$\\ -CONFIG\_BT\_HCIDTL1 [=m] \textbf{[M]}\\* -Bluetooth HCI DTL1 (PC Card) Treiber.\\ -Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit -Nokia DTL1 Schnittstelle: -\begin{itemize} - \item Nokia Bluetooth-Karte - \item Sockel Bluetooth CF-Karte -\end{itemize} -Sagen Sie hier Y, um die Unterstützung für HCI DTL1 Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (dtl1\_cs) zu kompilieren. - -\subparagraph{HCI BT3C (PC Card) driver}$~$\\ -CONFIG\_BT\_HCIBT3C [=m] \textbf{[M]}\\* -Bluetooth HCI BT3C (PC Card) Treiber.\\ -Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit -3Com BT3C Schnittstelle: -\begin{itemize} - \item 3Com Bluetooth-Karte (3CRWB6096) - \item HP Bluetooth-Karte -\end{itemize} -Sagen Sie hier Y, um die Unterstützung für HCI BT3C Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (bt3c\_cs) zu kompilieren. - -\subparagraph{HCI BlueCard (PC Card) driver}$~$\\ -CONFIG\_BT\_HCIBLUECARD [=m] \textbf{[M]}\\* -Bluetooth HCI BlueCard (PC Card) Treiber.\\ -Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit -Anycom BlueCard Schnittstelle: -\begin{itemize} - \item Anycom Bluetooth PC-Karte - \item Anycom Bluetooth CF-Karte -\end{itemize} -Sagen Sie hier Y, um die Unterstützung für HCI BlueCard"=Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (bluecard\_cs) zu kompilieren. - - -\subparagraph{HCI VHCI (Virtual HCI device) driver}$~$\\ -CONFIG\_BT\_HCIVHCI [=m] \textbf{[M]}\\* -Bluetooth Virtual HCI Gerätetreiber.\\ -Dieser Treiber ist erforderlich, wenn Sie die HCI"=Emulationssoftware -verwenden möchten. -Sagen Sie hier Y, um die Unterstützung für virtuelle HCI"=Geräte in den Kernel -zu kompilieren, oder sagen Sie M, um dies als Modul (hci\_vhci) zu kompilieren. - -\subparagraph{Marvell Bluetooth driver support}$~$\\ -CONFIG\_BT\_MRVL [=m] \textbf{[M]}\\* -Der Kerntreiber zur Unterstützung von Marvell"=Bluetooth"=Geräten. -Dieser Treiber ist erforderlich, wenn Sie Marvell-Bluetooth-Geräte wie -8688/8787/8797/8887/8897/8977/8987/8997 unterstützen möchten. -Sagen Sie hier Y, um den Marvell"=Bluetooth"=Treiber in den Kernel zu -kompilieren, oder sagen Sie M, um diesen als Modul zu kompilieren. - -\subsubparagraph{Marvell BT-over-SDIO driver}$~$\\ -CONFIG\_BT\_MRVL\_SDIO [=m] \textbf{[M]}\\* -Der Treiber für Marvell Bluetooth-Chipsätze mit SDIO-Schnittstelle.\\ -Dieser Treiber ist erforderlich, wenn Sie Marvell-Bluetooth-Geräte mit SDIO-Schnittstelle verwenden möchten. -Derzeit werden SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997 Chipsätze unterstützt. -Sagen Sie hier Y, um die Unterstützung für den Marvell BT-over-SDIO"=Treiber in den Kernel zu -kompilieren oder sagen Sie M, um dies als Modul zu kompilieren. - -\subparagraph{Atheros firmware download driver}$~$\\ -CONFIG\_BT\_ATH3K [=m] \textbf{[M]}\\* -Bluetooth-Firmware-Treiber zum Herunterladen.\\ -Dieser Treiber lädt die Firmware in den Atheros-Bluetooth-Chipsatz. -Sagen Sie hier Y, um die Unterstützung für den Atheros Firmware"=Download"=Treiber in den -Kernel zu kompilieren oder sagen Sie M, um dies als Modul (ath3k) zu kompilieren. - -\subparagraph{MediaTek HCI SDIO driver}$~$\\ -CONFIG\_BT\_MTKSDIO [=m] \textbf{[M]}\\* -MediaTek Bluetooth HCI SDIO-Treiber. -Dieser Treiber ist erforderlich, wenn Sie MediaTek Bluetooth mit SDIO-Schnittstelle -verwenden möchten. -Sagen Sie hier Y, um die Unterstützung für MediaTek Bluetooth SDIO"=Geräte in den Kernel -zu kompilieren oder sagen Sie M, um dies als Modul (btmtksdio) zu kompilieren. - -\subparagraph{MediaTek HCI UART driver}$~$\\ -CONFIG\_BT\_MTKUART [=m] \textbf{[M]}\\* -MediaTek Bluetooth HCI UART-Treiber. -Dieser Treiber wird benötigt, wenn Sie MediaTek Bluetooth mit serieller Schnittstelle verwenden möchten. -Sagen Sie hier Y, um die Unterstützung für MediaTek Bluetooth UART"=Geräte in den Kernel -zu kompilieren, oder sagen Sie M, um dies als Modul (btmtkuart) zu kompilieren. - -\subparagraph{Virtio Bluetooth driver}$~$\\ -CONFIG\_BT\_VIRTIO [=m] \textbf{[M]}\\* -Virtio Bluetooth-Unterstützungstreiber. -Dieser Treiber unterstützt Virtio Bluetooth"=Geräte. -Sagen Sie hier Y, um Unterstützung für HCI über Virtio in den Kernel zu kompilieren, -oder sagen Sie M, um dies als Modul zu kompilieren. - -\subparagraph{NXP protocol support}$~$\\ -CONFIG\_BT\_NXPUART [=m] \textbf{[M]}\\* -NXP ist ein serieller Treiber, der für NXP Bluetooth"=Geräte mit UART"=Schnittstelle benötigt wird. -Sagen Sie hier Y, um Unterstützung für NXP Bluetooth UART"=Geräte in den Kernel zu kompilieren, -oder sagen Sie hier M, um als Modul (btnxpuart) zu kompilieren. - -%14.5 -\subsection{RxRPC session sockets} -CONFIG\_AF\_RXRPC [=m] \textbf{[M]}\\* -Sagen Sie hier Y oder M, um die Unterstützung für RxRPC"=Session"=Sockets einzuschließen -(nur den Transportteil, nicht den Präsentationsteil: (un)marshalling wird der Anwendung überlassen). -Diese werden für das AFS"=Kernel"=Dateisystem und Userspace"=Dienstprogramme verwendet. -Dieses Modul unterstützt im Moment nur Client"=Operationen und ist derzeit unvollständig.\\ -Siehe Dokumentation/networking/rxrpc.rst. - -\subsubsection{IPv6 support for RxRPC} -CONFIG\_AF\_RXRPC\_IPV6 [=y] \textbf{[Y]}\\* -Geben Sie hier Y an, damit AF\_RXRPC sowohl IPV6 UDP als auch IPV4 UDP als -Netzwerktransport verwenden kann. - -\subsubsection{Inject packet loss into RxRPC packet stream} -CONFIG\_AF\_RXRPC\_INJECT\_LOSS [=n] \textbf{[~]}\\* -Sagen wir hier Y, um Paketverluste zu verursachen, indem einige empfangene und einige -gesendete Pakete verworfen werden. - -\subsubsection{Inject delay into packet reception} -CONFIG\_AF\_RXRPC\_INJECT\_RX\_DELAY [=n] \textbf{[~]}\\* -Sagen Sie hier Y, um eine Verzögerung in den Paketempfang einzubauen, so dass eine längere -RTT"=Zeit modelliert werden kann. Die Verzögerung kann mit -/proc/sys/net/rxrpc/rxrpc\_inject\_rx\_delay konfiguriert werden, wobei eine Anzahl von -Millisekunden bis zu 0,5~s eingestellt werden kann (beachten Sie, dass die Granularität -tatsächlich in Jiffies angegeben wird). - -\subsubsection{RxRPC dynamic debugging} -CONFIG\_AF\_RXRPC\_DEBUG [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, damit zur Laufzeit steuerbare Debugging"=Meldungen erscheinen. -Siehe Dokumentation/networking/rxrpc.rst. - -\subsubsection{RxRPC Kerberos security} -CONFIG\_RXKAD [=y] \textbf{[Y]}\\* -Bereitstellung von Kerberos-4- und AFS-Kaserver"=Sicherheitshandhabung für AF\_RXRPC durch -die Verwendung des Schlüsselaufbewahrungsdienstes. -Siehe Dokumentation/networking/rxrpc.rst. - -\subsubsection{RxRPC test service} -CONFIG\_RXPERF [=n] \textbf{[~]}\\* -Stellen Sie einen rxperf-Dienst-Tester bereit. Dieser lauscht am UDP"=Port 7009 auf -eingehende Anrufe des rxperf"=Programms (ein Beispiel dafür finden Sie in OpenAFS). - -\subsection{KCM sockets} -CONFIG\_AF\_KCM [=m] \textbf{[M]}\\* -KCM-Sockets (Kernel Connection Multiplexor) bieten eine Methode zum Multiplexen von -Nachrichten eines nachrichtenbasierten Anwendungsprotokolls über Kernel"=Verbindungen -(z.~B. TCP"=Verbindungen). - -\subsection{MCTP core protocol support} -CONFIG\_MCTP [=y] \textbf{[Y]}\\* -Das Management Component Transport Protocol (MCTP) ist ein systeminternes Protokoll -für die Kommunikation zwischen Verwaltungscontrollern und den von ihnen verwalteten -Geräten (Peripheriegeräte, Host"=Prozessoren usw.). Das Protokoll ist in der -DMTF"=Spezifikation DSP0236 definiert. -Mit dieser Option wird die MCTP"=Unterstützung im Kern aktiviert. Für die Kommunikation -mit anderen Geräten müssen Sie einen Treiber für einen bestimmten Hardwarekanal aktivieren. - -\subsection{Wireless \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_WIRELESS [=y] \textbf{[Y]}\\* -\textit{Für diese Option gibt es keine Hilfe.} - -\subsubsection{cfg80211 -- wireless configuration API} -CONFIG\_CFG80211 [=m] \textbf{[Y]}\\* -cfg80211 ist die Linux-API für die Konfiguration des drahtlosen LAN (802.11). -Aktivieren Sie dies, wenn Sie ein drahtloses Gerät haben. -Weitere Informationen finden Sie in der Dokumentation des Wireless-Wikis: -\url{https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211} -Wenn es als Modul gebaut wird, wird dies \texttt{cfg80211} genannt. - -\paragraph{nl80211 testmode command}$~$\\ -CONFIG\_NL80211\_TESTMODE [=n] \textbf{[~]}\\* -Der Befehl nl80211 testmode hilft bei der Implementierung von Dingen wie -Werkskalibrierung oder Validierungstools für Funkchips. -Wählen Sie diese Option NUR für Kernel, die speziell für solche Zwecke -entwickelt wurden. -Debugging"=Tools, die in den Händen der Benutzer landen sollen, sollten besser -mit debugfs implementiert werden.\\ -Sagen Sie N. - -\paragraph{enable developer warnings}$~$\\ -CONFIG\_CFG0211\_DEVELOPER\_WARNINGS [=n] \textbf{[~]}\\* -Diese Option aktiviert einige zusätzliche Warnungen, die cfg80211"=Entwicklern und -Treiberentwicklern helfen, aber Vorsicht, sie können auch durch Wettrennen mit dem -Userspace ausgelöst werden. -Wenn zum Beispiel ein Treiber meldet, dass er vom AP getrennt wurde, der Benutzer -aber gleichzeitig die Verbindung manuell trennt, kann die Warnung aufgrund von -Wettläufen fälschlicherweise ausgelöst werden. -Sagen Sie Y nur, wenn Sie cfg80211 oder einen darauf basierenden Treiber -(oder mac80211) entwickeln. - -\paragraph{enable powersave by default}$~$\\ -CONFIG\_CFG0211\_DEFAULT\_PS [=y] \textbf{[Y]}\\* -Mit dieser Option wird der Energiesparmodus standardmäßig aktiviert. -Wenn dies bei Ihren Anwendungen zu Fehlverhalten führt, sollten Sie stattdessen Ihre -Anwendungen korrigieren -- sie müssen ihre Anforderungen an die Netzwerklatenz registrieren, -siehe Documentation/power/pm\_qos\_interface.rst. - -\paragraph{cfg80211 DebugFS entries}$~$\\ -CONFIG\_CFG0211\_DEBUGFS [=y] \textbf{[Y]}\\* -Sie können dies aktivieren, wenn Sie debugfs-Einträge für cfg80211 wünschen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{lib80211 debugging messages} -CONFIG\_LIB80211\_DEBUG [=n] \textbf{[~]}\\* -Sie können dies aktivieren, wenn Sie ausführliche Debugging-Meldungen von lib80211 wünschen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Generic IEEEE~802.11 Networking Stack (mac80211)} -CONFIG\_MAC80211 [=m] \textbf{[M]}\\* -Diese Option aktiviert den hardwareunabhängigen IEEE 802.11"=Netzwerkstack. - -\subsubsection{Default rate control algorithm () \texorpdfstring{$\rightarrow$}{->}} -Diese Option wählt den Standard-Algorithmus für die Ratenkontrolle aus, den mac80211 verwenden soll. -Beachten Sie, dass dieser Standardwert immer noch durch den Modulparameter -ieee80211\_default\_rc\_algo überschrieben werden kann, wenn andere Algorithmen verfügbar sind. - -\paragraph{Minstrel}$~$\\ -CONFIG\_MAC80211\_RC\_DEFAULT\_MINSTREL [=y] \textbf{[Y]}\\* -Wählen Sie Minstrel als Standard"=Algorithmus für die Ratenkontrolle. - -\subsubsection{Enable mac80211 mesh networking support} -CONFIG\_MAC80211\_MESH [=y] \textbf{[Y]}\\* -Wählen Sie diese Option, um den 802.11-Mesh"=Betrieb in mac80211"=Treibern, die ihn unterstützen, -zu aktivieren. 802.11 Mesh verbindet mehrere Stationen über (möglicherweise Multi-Hop-) -Funkverbindungen zu einem einzigen logischen LAN. - -\subsubsection{Enable LED triggers} -CONFIG\_MAC80211\_LEDS [=y] \textbf{[Y]}\\* -Diese Option aktiviert einige LED"=Trigger für verschiedene Paket"=Empfangs-/Sende"-ereignisse. - -\subsubsection{Export mac80211 internals in DebugFS} -CONFIG\_MAC80211\_DEBUGFS [=y] \textbf{[Y]}\\* -Wählen Sie dies, um umfangreiche Informationen über den internen Zustand -von mac80211 in debugfs zu sehen. -Sagen Sie N, es sei denn, Sie wissen, dass Sie dies brauchen. - -\subsubsection{Trace all mac80211 debug messages} -CONFIG\_MAC80211\_MESSAGE\_TRACING [=n] \textbf{[N]}\\* -Wählen Sie diese Option, damit mac80211 das mac80211\_msg"=Trace"=Subsystem mit Tracepoints -registriert, um alle Debugging"=Meldungen zu sammeln, unabhängig davon, ob sie in das -Kernel"=Log gedruckt werden. -Der Mehraufwand bei dieser Option besteht darin, dass alle Meldungen in der Binärdatei -vorhanden sein müssen und zur Laufzeit für die Verfolgung formatiert werden müssen. - -\subsubsection{Select mac80211 debugging features} -CONFIG\_MAC80211\_DEBUG\_MENU [=n] \textbf{[N]}\\* -Diese Option sammelt verschiedene mac80211-Debug"=Einstellungen. - -\subsection{RF switch subsystem support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_RFKILL [=m] \textbf{[Y]}\\* -Sagen Sie hier Y, wenn Sie die Kontrolle über die RF-Schalter haben wollen, die auf vielen WiFi- -und Bluetooth"=Karten zu finden sind.\\ -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{rfkill} heißen. - -\subsubsection{GPIO RFKILL driver} -CONFIG\_RFKILL\_GPIO [=m] \textbf{[M]}\\* -Wenn Sie dies bejahen, erhalten Sie Unterstützung für einen generischen gpio RFKILL"=Treiber. - -\subsection{Plan 9 Resource Sharing Support (9P2000) \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NET\_9P [=m] \textbf{[Y]}\\* -Wenn Sie hier Y eingeben, erhalten Sie experimentelle Unterstützung für die gemeinsame Nutzung -von Plan 9"=Ressourcen über das 9P2000"=Protokoll. -Siehe \url{http://v9fs.sf.net} für weitere Informationen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{9P FD Transport} -CONFIG\_NET\_9P\_FD [=m] \textbf{[M]}\\* -Damit wird Unterstützung für Transporte über TCP, Unix"=Sockets und Dateiskriptoren geschaffen. - -\subsubsection{9P Virtio Transport} -CONFIG\_NET\_9P\_VIRTIO [=m] \textbf{[M]}\\* -Damit wird die Unterstützung für einen Transport zwischen Gastpartitionen -und einer Hostpartition geschaffen. - -\subsubsection{9P Xen Transport} -CONFIG\_NET\_9P\_XEN [=m] \textbf{[M]}\\* -Damit wird die Unterstützung für einen Transport für 9pfs zwischen zwei Xen"=Domänen geschaffen. - -\subsubsection{9P RDMA Transport (Experimental)} -CONFIG\_NET\_9P\_RDMA [=m] \textbf{[M]}\\* -Damit wird Unterstützung für einen RDMA-Transport geschaffen. - -\subsubsection{Debug information} -CONFIG\_NET\_9P\_DEBUG [=m] \textbf{[M]}\\* -Sagen Sie Y, wenn Sie möchten, dass das 9P-Subsystem Debug"=Informationen protokolliert. - -\subsection{CAIF support} -CONFIG\_CAIF [=n] \textbf{[~]}\\* -Das \glqq Communication CPU to Application CPU Interface\grqq{} (CAIF) ist ein paketbasiertes, -verbindungsorientiertes MUX"=Protokoll, das von ST-Ericsson zur Verwendung mit seinen Modems -entwickelt wurde. Der Zugriff erfolgt aus dem Userspace als Socket (PF\_CAIF).\\ -Geben Sie hier Y (oder M) an, wenn Sie für ein Telefonprodukt (z.~B. Android oder MeeGo) bauen, -das CAIF als Transport verwendet. Wenn Sie unsicher sind, sagen Sie N.\\ -Wenn Sie es als Modul bauen wollen, muss CAIF\_NETDEV auch als Modul gebaut werden. -Sie müssen auch Y (oder M) für alle physischen CAIF"=Geräte angeben, die Ihre Plattform benötigt. -Weitere Informationen zur Verwendung und Konfiguration von CAIF finden Sie unter -Documentation/networking/caif. - -\subsection{Ceph core library} -CONFIG\_CEPH\_LIB [=m] \textbf{[M]}\\* -Wählen Sie hier Y oder M, um cephlib einzubinden, die die gemeinsame Funktionalität sowohl für -das Ceph"=Dateisystem als auch für das rados block device (rbd) bereitstellt. -Weitere Informationen finden Sie unter \url{https://ceph.io/}. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Include file:line in ceph debug output} -CONFIG\_CEPH\_LIB\_PRETTYDEBUG [=y] \textbf{[Y]}\\* -Wenn Sie hier Y eingeben, wird die Debug"=Ausgabe einen Dateinamen und eine Zeile enthalten, -um die Fehlersuche zu erleichtern. Dies erhöht die Kernelgröße und verlangsamt die Ausführung -leicht, wenn Debug-Aufrufseiten aktiviert sind (z.~B. über CONFIG\_DYNAMIC\_DEBUG). -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Use in-kernel support for DNS lookup} -CONFIG\_CEPH\_LIB\_USE\_DNS\_RESOLVER [=y] \textbf{[Y]}\\* -Wenn Sie hier Y angeben, werden Hostnamen (z. B. Monitoradressen) mit der Funktion\\ -CONFIG\_DNS\_RESOLVER aufgelöst.\\ -Informationen über die Verwendung von CONFIG\_DNS\_RESOLVER finden Sie unter -Documentation/networking/dns\_resolver.rst\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{NFC subsystem support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_NFC [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie Unterstützung für NFC-Geräte (Near Field Communication) bauen wollen. -Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{nfc} genannt. - -\subsection{Packet-sampling netlink channel ---} -CONFIG\_PSAMPLE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um Unterstützung für den Netlink"=Kanal mit Paketsampling hinzuzufügen. -Dieser Netlink"=Kanal ermöglicht die Übertragung von Paketen zusammen mit einigen Metadaten in den Userspace. -Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: das Modul wird \texttt{psample} genannt. - -\subsection{Inter-FE based on IETF ForCES InterFE LFB ---} -CONFIG\_PSAMPLE [=m] \textbf{[M]}\\* -Sagen Sie hier Y, um die Unterstützung des IFE-Kapselungsprotokolls hinzuzufügen. -Einzelheiten finden Sie im netdev01-Dokument:\\ -\glqq Verteilendes Linux-Verkehrskontroll-Klassifizierungs-Aktions-Subsystem\grqq{}\\ -Autoren: Jamal Hadi Salim und Damascene M. Joachimpillai\\ -Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{ife} genannt. - -\subsection{Network light weight tunnels} -CONFIG\_LWTUNNEL [=y] \textbf{[Y]}\\* -Diese Funktion bietet eine Infrastruktur zur Unterstützung von leichtgewichtigen Tunneln wie mpls. -Einem Light-Weight"=Tunnel"=Endpunkt ist kein Netzgerät zugeordnet. Die Tunnelkapselungsparameter -werden zusammen mit dem Status von Light-Weight"=Tunneln gespeichert, die mit Fib"=Routen verbunden sind. - -\subsubsection{Execute BPF program as route nexthop action} -CONFIG\_LWTUNNEL\_BPF [=y] \textbf{[Y]}\\* -Ermöglicht die Ausführung von BPF"=Programmen als Nexthop"=Aktion nach einem Routensuchlauf für -eingehende und ausgehende Pakete. - -\subsection{Page pool stats} -CONFIG\_PAGE\_POOL\_STATS [=y] \textbf{[Y]}\\* -Aktivieren Sie die Seitenpoolstatistik, um die Seitenzuweisung und das -Recycling in Seitenpools zu verfolgen. Diese Option verursacht -zusätzliche CPU"=Kosten für die Zuweisungs- und Wiederverwendungspfade -und zusätzliche Speicherkosten für die Speicherung der Statistiken. -Diese Statistiken sind nur verfügbar, wenn diese Option aktiviert ist -und wenn der Treiber, der den Seitenpool verwendet, den Export dieser -Daten unterstützt. -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Generic failover module} -CONFIG\_FAILOVER [=m] \textbf{[M]}\\* -Das Failover-Modul bietet eine generische Schnittstelle für paravirtuelle Treiber, um ein Netdev und -einen Satz von Ops bei einer Failover"=Instanz zu registrieren. Die Ops werden als Event-Handler -verwendet, die aufgerufen werden, um Netdev"=Registrierungs-/Entregistrierungs-/Link-/Namensänderungs"=Ereignisse -auf Slave"=PCI"=Ethernet"=Geräten mit der gleichen MAC"=Adresse wie das Failover"=Netdev zu behandeln. -Dies ermöglicht es paravirtuellen Treibern, ein VF als beschleunigten Datenpfad mit niedriger Latenz -zu verwenden. Es ermöglicht auch die Live"=Migration von VMs mit direkt angeschlossenen VFs durch -Failover auf den paravirtuellen Datenpfad, wenn das VF ausgesteckt wird. - -\subsection{Netlink interface for ethtool} -CONFIG\_ETHTOOL\_NETLINK [=y] \textbf{[Y]}\\* -Eine alternative Benutzerschnittstelle für ethtool, die auf generischem Netlink basiert. -Sie bietet eine bessere Erweiterbarkeit und einige neue Funktionen, z.~B. Benachrichtigungsmeldungen. - -\section{Device Drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(Gerätetreiber)} - -\subsection{EISA support ---} -CONFIG\_EISA [=n] \textbf{[~]}\\* -Der Extended Industry Standard Architecture (EISA)-Bus wurde als offene Alternative -zum IBM MicroChannel"=Bus entwickelt. -Der EISA-Bus bot einige der Funktionen des IBM"=MicroChannel"=Busses und war gleichzeitig -abwärtskompatibel mit Karten, die für den älteren ISA"=Bus hergestellt wurden. -Der EISA-Bus wurde zwischen 1988 und 1995 in begrenztem Umfang eingesetzt, -als er durch den PCI-Bus überflüssig wurde. -Geben Sie hier Y an, wenn Sie einen Kernel für einen EISA"=basierten Rechner erstellen. -Ansonsten sagen Sie N. - -\subsection{PCI support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_PCI [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für den lokalen PCI-Bus, einschließlich der -Unterstützung für PCI-X und die Grundlagen für die Unterstützung von PCI Express.\\ -Sagen Sie hier Y, wenn Sie nicht wissen, was Sie tun. - -\subsubsection{PCI Express Port Bus support} -CONFIG\_PCIEPORTBUS [=y] \textbf{[Y]}\\* -Dadurch wird die Unterstützung für den PCI Express Port Bus aktiviert. Benutzer können -dann die Unterstützung für Native Hot-Plug, Advanced Error Reporting, Power Management -Events und Downstream Port Containment aktivieren. - -\paragraph{PCI Express Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_PCIE [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, wenn Sie ein Motherboard haben, das natives PCIe"=Hotplug unterstützt. -Thunderbolt/USB4 PCIe-Tunneling hängt von nativem PCIe"=Hotplug ab. -Im Zweifelsfall sagen Sie N. - -\paragraph{PCI Express Advanced Error Reporting support}$~$\\ -CONFIG\_PCIEAER [=y] \textbf{[Y]}\\* -Dies ermöglicht die Unterstützung des PCI Express Root Port Advanced Error Reporting -(AER) Treibers. Die an den Root Port gesendeten Fehlermeldungen werden vom PCI Express -AER"=Treiber verarbeitet. - -\subparagraph{PCI Express error injection support}$~$\\ -CONFIG\_PCIEAER\_INJECT [=m] \textbf{[M]}\\* -Dies aktiviert den PCI Express Root Port Advanced Error Reporting (AER) Software-Fehlerinjektor. -Das Debuggen von AER-Code ist ziemlich schwierig, da es schwierig ist, verschiedene echte -Hardwarefehler auszulösen. Software"=basierte Fehlerinjektion kann fast alle Arten von Fehlern -mit Hilfe eines Userspace"=Hilfswerkzeugs \texttt{aer-inject} vortäuschen, -das unter folgender Adresse erhältlich ist -\url{https://git.kernel.org/cgit/linux/kernel/git/gong.chen/aer-inject.git/} - -\subparagraph{PCI Express CXL RAS support}$~$\\ -CONFIG\_PCIEAER\_CXL [=y] \textbf{[Y]}\\* -Aktiviert die CXL"=Fehlerbehandlung. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{PCI Express ECRC settings control}$~$\\ -CONFIG\_PCIE\_ECRC [=y] \textbf{[Y]}\\* -Wird verwendet, um Firmware-/Bios-Einstellungen für PCI Express ECRC -(Transaction Layer End-to-End CRC Checking) außer Kraft zu setzen. -Im Zweifelsfall sagen Sie N. - -\subsubsection{PCI Express ASPM control} -CONFIG\_PCIEASPM [=y] \textbf{[Y]}\\* -Dies ermöglicht dem Betriebssystem die Kontrolle über PCI Express ASPM -(Active State Power Management) und Clock Power Management. -ASPM unterstützt den Zustand L0/L0s/L1.\\ -ASPM wird zunächst von der Firmware eingerichtet. Wenn diese Option aktiviert ist, kann Linux -diesen Status ändern, um ASPM bei bekanntermaßen schlechter Hardware oder Konfigurationen zu -deaktivieren und bei bekanntermaßen sicherer Hardware zu aktivieren. -ASPM kann zur Laufzeit über \texttt{/sys/module/pcie\_aspm/parameters/policy} -deaktiviert oder aktiviert werden. -Im Zweifelsfall sagen Sie Y. - - -\paragraph{Default ASPM policy (BIOS default) \texorpdfstring{$\rightarrow$}{->}}$~$\\ -\textit{Für diese Option gibt es keine Hilfe.} - -\subparagraph{BIOS default}$~$\\ -CONFIG\_PCIEASPM\_DEFAULT [=y] \textbf{[Y]}\\* -Verwenden Sie die BIOS"=Standardeinstellungen für PCI Express ASPM. - -\subparagraph{Powersave}$~$\\ -CONFIG\_PCIEASPM\_POWERSAVE [=n] \textbf{[~]}\\* -Aktiviert PCI Express ASPM L0s und L1 wo möglich, auch wenn das BIOS dies nicht getan hat. - -\subparagraph{Power Supersave}$~$\\ -CONFIG\_PCIEASPM\_POWER\_SUPERSAVE [=n] \textbf{[~]}\\* -Wie PCIEASPM\_POWERSAVE, nur dass auch L1-Substates aktiviert werden, wo dies möglich ist. -Dies würde zu höheren Energieeinsparungen führen, während man in L1 bleibt, -wo die Komponenten dies unterstützen. - -\subparagraph{Performance}$~$\\ -CONFIG\_PCIEASPM\_POWER\_PERFORMANCE [=n] \textbf{[~]}\\* -Deaktivieren Sie PCI Express ASPM L0s und L1, auch wenn das BIOS sie aktiviert hat. - -%15.2.3 -\subsubsection{PCI Express Downstream Port Containment support} -CONFIG\_PCIE\_DPC [=y] \textbf{[Y]}\\* -Dies ermöglicht die Unterstützung von PCI Express Downstream Port Containment (DPC) Treibern. -DPC"=Ereignisse von Root- und Downstream"=Ports werden durch den DPC"=Treiber verarbeitet. -Wenn Ihr System nicht über diese Fähigkeit verfügt oder Sie diese Funktion nicht nutzen möchten, -können Sie mit N antworten. - -%15.2.4 -\subsubsection{PCI Express Precision Time Measurement support} -CONFIG\_PCIE\_PTM [=y] \textbf{[Y]}\\* -Dies ermöglicht die Unterstützung von PCI Express Precision Time Measurement (PTM). -Dies ist nur sinnvoll, wenn Sie Geräte haben, die PTM unterstützen, aber es ist sicher, -sie zu aktivieren, auch wenn Sie sie nicht haben. - -%15.2.5 -\subsubsection{PCI Express Error Disconnect Recover support} -CONFIG\_PCIE\_EDR [=y] \textbf{[Y]}\\* -Diese Option fügt die Unterstützung für Error Disconnect Recover hinzu, wie in der -Downstream Port Containment Related Enhancements ECN der PCI Firmware Specification r3.2 beschrieben. -Aktivieren Sie diese Option, wenn Sie ein hybrides DPC-Modell unterstützen möchten, das sowohl -Firmware als auch Betriebssystem zur Implementierung von DPC verwendet. - -\subsubsection{Message Signaled Interrupts (MSI and MSI-X)} -CONFIG\_PCI\_MSI [=y] \textbf{[Y]}\\* -Damit können Gerätetreiber MSI (Message Signaled Interrupts) aktivieren. -Message Signaled Interrupts ermöglichen es einem Gerät, einen Interrupt zu erzeugen, indem es ein -eingehendes Memory Write auf seinem PCI-Bus verwendet, anstatt einen Geräte"=IRQ-Pin zu aktivieren. -Die Verwendung von PCI MSI"=Interrupts kann beim Booten des Kernels mit der Option -\texttt{pci=nomsi} deaktiviert werden. Dadurch wird MSI für das gesamte System deaktiviert. -Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie Y. - -\subsubsection{PCI Debugging} -CONFIG\_PCI\_DEBUG [=n] \textbf{[~]}\\* -Geben Sie hier Y an, wenn Sie möchten, dass der PCI-Kern eine Reihe von Debug"=Meldungen in -das Systemprotokoll schreibt. Wählen Sie dies, wenn Sie ein Problem mit der -PCI"=Unterstützung haben und mehr über die Vorgänge erfahren möchten. -Im Zweifelsfall sagen Sie N. - -\subsubsection{Enable PCI resource re-allocation detection} -CONFIG\_PCI\_REALLOC\_ENABLE\_AUTO [=n] \textbf{[~]}\\* -Geben Sie hier Y an, wenn Sie möchten, dass der PCI-Kern erkennt, ob die Neuzuweisung von -PCI"=Ressourcen aktiviert werden muss. Sie können jederzeit -\texttt{pci=realloc=on} oder \texttt{pci=realloc=off} verwenden, um dies zu überschreiben. -Es werden automatisch PCI"=Ressourcen neu zugewiesen, wenn SR-IOV BARs nicht vom BIOS -zugewiesen wurden. -Im Zweifelsfall sagen Sie N. - -\subsubsection{PCI Stub driver} -CONFIG\_PCI\_STUB [=y] \textbf{[Y]}\\* -Sagen Sie hier Y oder M, wenn Sie ein PCI-Gerät reservieren wollen, wenn es einem -Gastbetriebssystem zugewiesen werden soll. -Im Zweifelsfall sagen Sie N. - -%15.2.10 -\subsubsection{PCI PF Stub driver} -CONFIG\_PCI\_\_PF\_STUB [=m] \textbf{[M]}\\* -Geben Sie hier Y oder M an, wenn Sie die Unterstützung für Geräte, die SR-IOV"=Unterstützung -benötigen, aktivieren möchten, während die PF (Physical Function) selbst keine eigentlichen -Dienste auf dem Host selbst, wie z.~B. Speicher oder Netzwerke, bereitstellt. -Im Zweifelsfall sagen Sie N. - -\subsubsection{Xen PCI Frontend} -CONFIG\_XEN\_PCIDEV\_FRONTEND [=m] \textbf{[M]}\\* -Der PCI-Geräte"=Frontend"=Treiber ermöglicht es dem Kernel, beliebige PCI"=Geräte aus -einem PCI"=Back"-end zu importieren, um PCI"=Treiber"=Domänen zu unterstützen. - -\subsubsection{PCI IOV support} -CONFIG\_PCI\_IOV [=y] \textbf{[Y]}\\* -E/A-Virtualisierung ist eine PCI"=Funktion, die von einigen Geräten unterstützt wird und -es ihnen ermöglicht, virtuelle Geräte zu erstellen, die ihre physischen Ressourcen gemeinsam nutzen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{PCI PRI support} -CONFIG\_PCI\_PRI [=y] \textbf{[Y]}\\* -PRI ist das PCI Page Request Interface. Es ermöglicht PCI"=Geräten, die sich hinter einer -IOMMU befinden, sich von Seitenfehlern zu erholen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{PCI PASID support} -CONFIG\_PCI\_PASID [=y] \textbf{[Y]}\\* -Process Address Space Identifiers (PASIDs) können von PCI"=Geräten für den gleichzeitigen Zugriff -auf mehr als einen IO"=Adressraum verwendet werden. Um diese Funktion nutzen zu können, ist eine -IOMMU erforderlich, die auch PASIDs unterstützt. -Wählen Sie diese Option, wenn Sie eine solche IOMMU haben und den Treiber dafür in Ihren Kernel -kompilieren wollen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{PCI peer-to-peer transfer support} -CONFIG\_PCI\_P2PDMA [=y] \textbf{[Y]}\\* -Ermöglicht Treibern die Durchführung von PCI-Peer-to-Peer"=Transaktionen zu und von BARs, die in -anderen Geräten exponiert sind, die den Teil der Hierarchie darstellen, in dem Peer-to-Peer-DMA -von der PCI"=Spezifikation garantiert wird (d.~h. alles unterhalb einer einzelnen PCI"=Bridge). -Viele PCIe"=Root"=Komplexe unterstützen keine P2P"=Transaktionen, und es ist schwer zu sagen, -welche sie überhaupt unterstützen. Daher müssen P2P-DMA"=Transaktionen derzeit zwischen Geräten -hinter demselben Root-Port erfolgen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Hyper-V PCI Frontend} -CONFIG\_PCI\_HYPERV [=m] \textbf{[M]}\\* -Der PCI-Geräte-Frontend-Treiber ermöglicht es dem Kernel, beliebige PCI"=Geräte aus einem -PCI"=Back"-end zu importieren, um PCI"=Treiber"=Domänen zu unterstützen. - -\subsubsection{VGA Arbitration} -CONFIG\_VGA\_ARB [=y] \textbf{[Y]}\\* -Einige \glqq alte\grqq{} VGA"=Geräte, die auf PCI implementiert sind, haben in der Regel die -gleichen hart dekodierten Adressen wie auf ISA. Wenn auf mehrere PCI"=Geräte gleichzeitig -zugegriffen wird, müssen diese irgendwie koordiniert werden. Weitere Einzelheiten finden Sie -unter Documentation/gpu/vgaarbiter.rst. Wählen Sie dies, um VGA"=Arbiter zu aktivieren. - -\paragraph{Maximum number of GPUs}$~$\\ -CONFIG\_VGA\_ARB\_MAX\_GPUS [=10] \textbf{[10]}\\* -Reserviert Platz im Kernel, um die Ressourcensperre für mehrere GPUS aufrechtzuerhalten. -Der Overhead für jede GPU ist sehr gering.\\ -Typ: Ganzzahl (integer) - -\subsubsection{Support for PCI Hotplug \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_HOTPLUG\_PCI [=y] \textbf{[Y]}\\* -Geben Sie hier Y ein, wenn Sie ein Motherboard mit einem PCI-Hotplug-Controller haben. -Damit können Sie PCI-Karten hinzufügen und entfernen, während der Rechner eingeschaltet ist und läuft. -Thunderbolt/USB4 PCIe-Tunneling hängt vom nativen PCIe-Hotplug ab. -Im Zweifelsfall sagen Sie N. - -%15.2.18.1 -\paragraph{ACPI PCI Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_ACPI [=y] \textbf{[Y]}\\* -Geben Sie hier Y ein, wenn Sie ein System haben, das PCI Hotplug mit ACPI unterstützt. -Im Zweifelsfall sagen Sie N. -%15.2.18.1.1 -\subparagraph{ACPI PCI Hotplug driver IBM extensions}$~$\\ -CONFIG\_HOTPLUG\_PCI\_ACPI\_IBM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Geben Sie hier Y ein, wenn Sie ein IBM-System haben, das PCI-Hotplug über ACPI unterstützt. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird -\texttt{acpiphp\_ibm} heißen. -Im Zweifelsfall sagen Sie N. -\\\begin{scriptsize} -Der Laptop ist kein IBM-System. -\end{scriptsize} - -\paragraph{CompactPCI Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_CPCI \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Geben Sie hier Y ein, wenn Sie eine CompactPCI"=Systemkarte mit CompactPCI"=Hotswap"=Unterstützung -gemäß der PICMG~2.1"=Spezifikation besitzen. -Im Zweifelsfall sagen Sie N. -\\\begin{scriptsize} -Im Laptop ist diese CompactPCI-Karte nicht verbaut. -\end{scriptsize} - -\subparagraph{Ziatech ZT5550 CompactPCI Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_CPCI\_ZT5550 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie eine Ziatech ZT5550 CompactPCI-Systemkarte von Performance Technologies -(früher Intel, früher nur Ziatech) besitzen. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul heißt dann \texttt{cpcihp\_zt5550}. -Im Zweifelsfall sagen Sie N. -\\\begin{scriptsize} -Im Laptop ist diese CompactPCI-Karte nicht verbaut. -\end{scriptsize} - -\subparagraph{Generic port I/O CompactPCI Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_CPCI\_GENERIC \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie eine CompactPCI"=Systemkarte haben, die das \#ENUM-Hotswap-Signal als -ein Bit in einem Systemregister ausgibt, das über Standard"=Port-I/O gelesen werden kann. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{cpcihp\_generic} genannt. -Im Zweifelsfall sagen Sie N. -\\\begin{scriptsize} -Im Laptop ist diese CompactPCI-Karte nicht verbaut. -\end{scriptsize} - -\paragraph{SHPC PCI Hotplug driver}$~$\\ -CONFIG\_HOTPLUG\_PCI\_SHPC \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Geben Sie hier Y ein, wenn Sie ein Motherboard mit einem SHPC PCI Hotplug Controller haben. -Im Zweifelsfall sagen Sie N. - -\subsubsection{PCI controller drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(PCI-Controller-Treiber)} - -\paragraph{Intel Volume Management Device Driver}$~$\\ -CONFIG\_VMD \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Fügt Unterstützung für das Intel Volume Management Device (VMD) hinzu. VMD ist eine sekundäre -PCI-Host"=Brücke, die es ermöglicht, PCI-Express-Root-Ports und daran angeschlossene Geräte aus -der Standard-PCI-Domäne zu entfernen und in die VMD-Domäne zu verschieben. Dadurch stehen mehr -Bus"=Ressourcen zur Verfügung, als dies bei einer einzelnen Domäne möglich wäre. -Wenn Sie wissen, dass Ihr System über einen dieser Ports verfügt und Geräte daran angeschlossen -sind, sagen Sie Y; wenn Sie sich nicht sicher sind, sagen Sie N. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{vmd} genannt. - -\paragraph{Microsoft Hyper-V PCI Interface}$~$\\ -CONFIG\_PCI\_HYPERV\_INTERFACE \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Das Hyper-V PCI Interface ist ein Hilfstreiber, der es anderen -Treibern ermöglicht, eine gemeinsame Schnittstelle mit dem Hyper-V -PCI Frontend-Treiber zu haben. - -\paragraph{Cadence-based PCIe controllers ---}$~$\\ -\textit{Cadence-basierte PCIe-Steuerungen, keine Auswahl} - -\paragraph{DesignWare-based PCIe controllers \texorpdfstring{$\rightarrow$}{->}}$~$\\ -\textit{DesignWare-basierte PCIe-Steuerungen} - -%15.2.19.4.1 -\subparagraph{Amlogic Meson PCIe controller}$~$\\ -CONFIG\_PCI\_MESON \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie die Unterstützung des PCI-Controllers -auf Amlogic-SoCs aktivieren wollen. Der PCI-Controller auf Amlogic -basiert auf DesignWare"=Hardware und daher verwendet der Treiber die -DesignWare"=Kernfunktionen zur Implementierung des Treibers. - -\subparagraph{Platform bus based DesignWare PCIe controller (host mode)}$~$\\ -CONFIG\_PCIe\_DW\_PLAT\_HOST \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Ermöglicht die Unterstützung des PCIe-Controllers in der Designware-IP -für den Betrieb im Host-Modus. Es gibt zwei Instanzen des PCIe-Controllers -in Designware IP. Dieser Controller kann entweder als EP oder RC arbeiten. -Um hostspezifische Funktionen zu aktivieren, muss PCIE\_DW\_PLAT\_HOST -ausgewählt werden und um gerätespezifische Funktionen zu aktivieren, -muss PCI\_DW\_PLAT\_EP ausgewählt werden. - -\paragraph{Mobiveil-based PCIe controllers ---}$~$\\ -\textit{Mobiveil-basierte PCIe-Steuerungen, keine Auswahl} - -\subsubsection{PCI Endpoint \texorpdfstring{$\rightarrow$}{->}} -\textit{(PCI-Endgerät} - -\paragraph{PCI Endpoint Support}$~$\\ -CONFIG\_PCI\_ENDPOINT [=n] \textbf{[~]}\\* -Aktivieren Sie diese Konfigurationsoption, um einen konfigurierbaren PCI"=Endpunkt -zu unterstützen. Dies sollte aktiviert werden, wenn die Plattform über einen -PCI"=Controller verfügt, der im Endpunktmodus arbeiten kann.\\ -Durch die Aktivierung dieser Option wird die Endpunkt"=Bibliothek erstellt, die -eine Endpunkt"=Controller"=Bibliothek und eine Endpunkt"=Funktionsbibliothek -enthält. -Im Zweifelsfall sollten Sie N angeben, um die Endpunktunterstützung zu -deaktivieren. - -\subsubsection{PCI switch controller drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(PCI-Switch-Controller-Treiber} - -\paragraph{MicroSemi Switchtec PCIe Switch Management Driver}$~$\\ -CONFIG\_PCI\_SW\_SWITCHTEC \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Ermöglicht die Unterstützung der Management"=Schnittstelle für die MicroSemi -Switchtec"=Serie von PCIe"=Switches. Unterstützt den Userspace"=Zugriff, um -MRPC"=Befehle über /dev/switchtecX-Geräte an den Switch zu senden. -Siehe $<$file:Documentation/driver-api/switchtec.rst$>$ für weitere Informationen. - -\subsubsection{CXL (Compute Express Link) Devices Support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CXL\_BUS \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -CXL ist ein Bus, der elektrisch mit PCI Express kompatibel ist, aber drei Protokolle -auf diese Signalisierung aufbaut (CXL.io, CXL.cache und CXL.mem). -Das CXL.cache"=Protokoll ermöglicht es Geräten, Cachelines lokal zu halten, das -CXL.mem"=Protokoll ermöglicht es Geräten, vollständig kohärente Speicherziele zu -sein, das CXL.io"=Protokoll entspricht PCI Express. Sagen Sie Y, um die Unterstützung -für die Konfiguration und Verwaltung von Geräten zu aktivieren, die diese Protokolle -unterstützen. - -\paragraph{PCI manageability}$~$\\ -CONFIG\_CXL\_PCI \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Die CXL-Spezifikation definiert eine Unterklasse \glqq CXL"=Speichergerät\grqq{} -in der PCI"=Basisklasse der \glqq Speicher"=Controller\grqq{}. -Geräte, die mit diesem Klassencode gekennzeichnet sind, bieten Unterstützung -für flüchtigen und/oder dauerhaften Speicher, der in die Systemadresszuordnung -(Host-managed Device Memory (HDM)) eingeordnet werden kann. -Sagen Sie \glqq y/m\grqq{}, um einen Treiber zu aktivieren, der sich -an CXL"=Speichererweiterungsgeräte anschließt, die durch den Klassencode -des Speichergeräts für die Konfiguration und Verwaltung hauptsächlich über -die Mailbox"=Schnittstelle aufgezählt werden. -Siehe Kapitel~2.3 Typ~3 CXL Gerät in der CXL~2.0 Spezifikation für weitere Details. -Wenn Sie unsicher sind, sagen Sie M. - -\subparagraph{RAW Command Interface for Memory Devices}$~$\\ -CONFIG\_CXL\_MEM\_RAW\_COMMANDS [=n] \textbf{[~]}\\* -Aktivieren Sie die CXL RAW-Befehlsschnittstelle.\\ -Die ioctl"=Schnittstelle des CXL"=Treibers kann für jeden spezifizierten Opcode -eine Kernel"=ioctl"=Befehlsnummer zuweisen. Zu jedem beliebigen Zeitpunkt kann -die Anzahl der in der Spezifikation definierten Opcodes, die ein Gerät -implementieren kann, die Anzahl der zugehörigen ioctl"=Funktionsnummern des -Kernels übersteigen. Die Diskrepanz entsteht entweder durch Auslassung, weil die -Spezifikation zu neu ist, oder durch das Design. Beim Prototyping neuer Hardware -oder bei der Entwicklung/Debugging des Treibers ist es nützlich, alle möglichen -Befehle an die Hardware übermitteln zu können, sogar Befehle, die den Kernel zum -Absturz bringen könnten, da sie sich auf den vom Kernel verwendeten Speicher -auswirken könnten.\\ -Wenn Sie CXL"=Hardware oder den Treiber entwickeln, sagen Sie Y, andernfalls -sagen Sie N. - -\paragraph{CXL ACPI: Platform Support}$~$\\ -CONFIG\_CXL\_ACPI \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Aktiviert die Unterstützung von HDM"=Ressourcen (Host Managed Device Memory), die -von der ACPI"=CXL"=Speicherlayoutbeschreibung einer Plattform veröffentlicht werden. -Siehe Kapitel~9.14.1 CXL Early Discovery Table (CEDT) in der CXL~2.0 Spezifikation -und CXL Fixed Memory Window Structures (CEDT.CFMWS) -(\url{https://www.computeexpresslink.org/spec-landing}). -Der CXL-Kern nutzt diese Ressourcen, um die Wurzel einer cxl\_port"=Decodierungshierarchie -zu veröffentlichen, um Regionen abzubilden, die System"=RAM oder von LIBNVDIMM zu -verwaltende Festspeicherregionen darstellen. -Wenn Sie unsicher sind, sagen Sie M. - -\paragraph{CXL PMEM: Persistent Memory Support}$~$\\ -CONFIG\_CXL\_PMEM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Zusätzlich zu den typischen Speicherressourcen kann eine Plattform auch die Unterstützung -von über CXL angeschlossenem persistenten Speicher ankündigen. Diese Unterstützung wird -über einen Brückentreiber zwischen CXL und dem LIBNVDIMM"=System"=Subsystem verwaltet. -Sagen Sie \glqq Y/M\grqq{}, um die Unterstützung für die Aufzählung und Bereitstellung der -Kapazität des persistenten Speichers von CXL"=Speichererweiterungen zu aktivieren. -Wenn Sie unsicher sind, sagen Sie M. - -\paragraph{CXL: Memory Expansion}$~$\\ -CONFIG\_CXL\_MEM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Das CXL.mem-Protokoll ermöglicht es einem Gerät, als Anbieter von \glqq System-RAM\grqq{} -und/oder \glqq persistentem Speicher\grqq{} zu fungieren, der vollständig kohärent ist, -als wäre der Speicher an den typischen CPU"=Speicher"=Controllern angeschlossen. -Dies wird als HDM \glqq Host-managed Device Memory\grqq{} bezeichnet. -Sagen Sie Y/M, um einen Treiber zu aktivieren, der sich an CXL.mem"=Geräte zur -Speichererweiterung und Steuerung von HDM anschließt. -Eine detaillierte Beschreibung von HDM finden Sie in Kapitel~9.13 der CXL~2.0"=Spezifikation. -Wenn Sie unsicher sind, sagen Sie M. - -\paragraph{CXL: Region Support}$~$\\ -CONFIG\_CXL\_REGION \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Ermöglicht dem CXL-Kern die Aufzählung und Bereitstellung von CXL"=Regionen. Eine CXL"=Region -wird durch einen oder mehrere CXL"=Expander definiert, die einen bestimmten -systemphysikalischen Adressbereich dekodieren. Für CXL"=Regionen, die von der -Plattform"=Firmware eingerichtet wurden, ermöglicht diese Option die Behandlung von -Speicherfehlern, um die Geräte zu identifizieren, die an einem bestimmten verschachtelten -Speicherbereich teilnehmen. Andernfalls wird das von der Plattform-Firmware verwaltete CXL -durch Aufnahme in die Systemadresskarte aktiviert und benötigt keinen Treiber. -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{CXL: Region Cache Management Bypass (TEST)}$~$\\ -CONFIG\_CXL\_REGION\_INVALIDATION\_TEST [=n] \textbf{[~]}\\* -Die Verwaltungs- und Sicherheitsoperationen von CXL Region machen möglicherweise den Inhalt -von CPU"=Caches ungültig, ohne diese Caches zu benachrichtigen, damit sie die betroffenen -Cachelines ungültig machen. Der CXL"=Region"=Treiber versucht, Caches zu invalidieren, wenn -diese Ereignisse eintreten. Wenn diese Invalidierung fehlschlägt, kann die Region nicht -aktiviert werden. Die Gründe für das Scheitern der Cache"=Invalidierung liegen darin, dass -die CPU keinen Cache"=Invalidierungsmechanismus bereitstellt. Zum Beispiel ist die Verwendung -von wbinvd auf Bare Metal x86 beschränkt. Zu Testzwecken kann das Umschalten dieser Option -jedoch die Datenintegritätssicherheit deaktivieren und mit der Aktivierung von Regionen -fortfahren, wenn im CPU"=Cache widersprüchliche Inhalte vorhanden sind.// -Wenn Sie unsicher sind oder wenn dieser Kernel für Produktionsumgebungen gedacht ist, -wählen Sie N. - -\paragraph{CXL Performance Monitoring Unit}$~$\\ -CONFIG\_CXL\_PMU \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Support performance monitoring as defined in CXL rev~3.0 section~13.2: Performance Monitoring. -CXL components may have one or more CXL Performance Monitoring Units (CPMUs).\\ -Say Y/M to enable a driver that will attach to performance monitoring units and provide -standard perf based interfaces. -If unsure say M. - -\subsection{PCCard (PCMCIA/Cardbus) support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_PCCARD [=m] \textbf{[M]}\\* -Sagen Sie hier Y, wenn Sie PCMCIA- oder PC"=Karten an Ihren Linux"=Computer anschließen wollen. -Das sind kreditkartengroße Geräte wie Netzwerkkarten, Modems oder Festplatten, die oft in -Laptops verwendet werden. Es gibt eigentlich zwei Arten dieser Karten: 16-Bit-PCMCIA- und -32-Bit"=CardBus"=Karten. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird pcmcia\_core heißen. - -\subsubsection{16-bit PCMCIA support} -CONFIG\_PCMCIA \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Diese Option ermöglicht die Unterstützung von 16-Bit-PCMCIA"=Karten. Die meisten älteren -PC"=Karten sind solche 16-Bit PCMCIA"=Karten. Wenn Sie also nicht wissen, dass Sie nur -32"=Bit CardBus"=Karten verwenden, geben Sie hier Y oder M an. -Um 16-Bit PCMCIA"=Karten zu verwenden, benötigen Sie in den meisten Fällen unterstützende -Software. (siehe die Datei $<$file:Documentation/Changes$>$ für Ort und Details). -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{pcmcia} heißen. -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Load CIS updates from userspace}$~$\\ -CONFIG\_PCMCIA\_LOAD\_CIS \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* -Einige PCMCIA"=Karten benötigen eine aktualisierte Karteninformationsstruktur (CIS), die aus -dem Userspace geladen werden muss, um korrekt zu funktionieren. Wenn Sie hier Y angeben und -Ihr Userspace korrekt eingerichtet ist, wird diese automatisch mit dem -In-Kernel"=Firmware"=Loader und dem Hotplug"=Subsystem geladen, anstatt sich auf cardmgr von -pcmcia-cs zu verlassen. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{32-bit CardBus support} -CONFIG\_CARDBUS \colorbox{yellow!80}{[=y] \textbf{[M]}}\\* -CardBus ist eine Bus-Mastering-Architektur für PC-Karten, die 32-Bit-PC-Karten ermöglicht -(der ursprüngliche PCMCIA"=Standard sieht nur einen 16-Bit breiten Bus vor). -Viele neuere PC-Karten sind eigentlich CardBus-Karten. -Um 32-Bit-PC-Karten zu verwenden, benötigen Sie auch eine CardBus"=kompatible Host"=Bridge. -Praktisch alle modernen PCMCIA"=Bridges sind dazu in der Lage, und die meisten von ihnen -sind \glqq Yenta-kompatibel\grqq{}, d.~h. sie sagen auch Y oder M. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection*{*** PC-card bridges ***} - -\subsubsection{CardBus yenta-compatible bridge support} -CONFIG\_YENTA \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Diese Option ermöglicht die Unterstützung von CardBus-Host-Bridges. Praktisch alle modernen -PCMCIA"=Bridges sind CardBus-kompatibel. Eine \glqq Brücke\grqq{} ist die Hardware in Ihrem -Computer, in die PCMCIA-Karten eingesteckt werden. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{yenta\_socket} heißen. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Cirrus PD6729 compatible bridge support} -CONFIG\_PD6729 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Dies bietet Unterstützung für das Cirrus PD6729 PCI-zu-PCMCIA"=Bridge"=Gerät, das in einigen -älteren Laptops und PCMCIA-Kartenlesern zu finden ist. - -\subsubsection{i82092 compatible bridge support} -CONFIG\_I82092 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Dies bietet Unterstützung für das Intel I82092AA PCI-zu-PCMCIA"=Brückengerät, das in einigen -älteren Laptops und häufiger in Evaluierungsboards für den Chip zu finden ist. - -\subsection{RapidIO support ---}% \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_PCCARD [=n] \textbf{[~]}\\* -Wenn Sie hier Y angeben, wird der Kernel Treiber und Infrastrukturcode zur Unterstützung von -RapidIO"=Verbindungsgeräten enthalten. - -\subsection{Generic Driver Options \texorpdfstring{$\rightarrow$}{->}} -\textit{Allgemeine Treiberoptionen} - -\subsubsection{Support for uevent helper} -CONFIG\_UEVENT\_HELPER [=n] \textbf{[~]}\\* -Das uevent"=Hilfsprogramm wird vom Kernel für jedes uevent gegabelt. -Vor der Umstellung auf die netlink"=basierte uevent"=Quelle wurde es verwendet, um -Hotplug"=Skripte mit Kernel"=Geräteereignissen zu verbinden. Es zeigte normalerweise auf ein -Shell"=Skript unter /sbin/hotplug. -Dies sollte heute nicht mehr verwendet werden, da übliche Systeme beim Booten oder bei der -Geräteerkennung viele Ereignisse in einem sehr kurzen Zeitrahmen erzeugen. Ein geforkter -Prozess pro Ereignis kann so viele Prozesse erzeugen, dass es zu einer hohen Systembelastung -kommt, oder auf kleineren Systemen ist bekannt, dass es zu Out"=of"=Memory"=Situationen -während des Bootvorgangs kommt. - -\subsubsection{Maintain a devtmpfs filesystem to mount at /dev} -CONFIG\_DEVTMPFS [=y] \textbf{[Y]}\\* -Dadurch wird eine tmpfs/ramfs"=Dateisysteminstanz bereits beim Booten erzeugt. In diesem -Dateisystem verwaltet der Kernel"=Treiberkern Geräteknoten mit ihren Standardnamen und -Berechtigungen für alle registrierten Geräte mit einer zugewiesenen Major/Minor"=Nummer. -Der Userspace kann den Inhalt des Dateisystems nach Bedarf ändern, Symlinks hinzufügen und -die erforderlichen Berechtigungen vergeben. -Er stellt ein voll funktionsfähiges /dev"=Verzeichnis zur Verfügung, auf dem normalerweise -udev läuft, das die Berechtigungen verwaltet und sinnvolle Symlinks hinzufügt. -In sehr begrenzten Umgebungen kann es ein ausreichend funktionierendes /dev ohne weitere -Hilfe bereitstellen. Es erlaubt auch einfache Rettungssysteme und geht zuverlässig mit -dynamischen Major/Minor"=Nummern um. -Hinweis: Wenn CONFIG\_TMPFS nicht aktiviert ist, wird stattdessen das einfachere -ramfs"=Dateisystem verwendet. - -\paragraph{Automount devtmpfs at /dev, after the kernel mounted the rootfs}$~$\\ -CONFIG\_DEVTMPFS\_MOUNT %\colorbox{yellow!80}% -{[=y] \textbf{[Y]}}\\* -Dies weist den Kernel an, das Dateisystem devtmpfs automatisch unter /dev einzuhängen, -direkt nachdem der Kernel das Root"=Dateisystem eingehängt hat. Das Verhalten kann mit -dem Kommandozeilenparameter: \texttt{devtmpfs.mount=$0|1$} überschrieben werden. -Diese Option hat keinen Einfluss auf initramfs"=basiertes Booten, hier muss das -devtmpfs"=Dateisystem immer manuell eingehängt werden, nachdem das rootfs eingehängt -wurde.\\ -Wenn diese Option aktiviert ist, kann ein System im Rettungsmodus mit -\texttt{init=/bin/sh} gebootet werden, auch wenn das /dev"=Verzeichnis auf dem rootfs -komplett leer ist. - -\paragraph{Use nosuid,noexec mount options on devtmpfs}$~$\\ -CONFIG\_DEVTMPFS\_SAFE [=y] \textbf{[Y]}\\* -Dies weist den Kernel an, die Einhängeflags MS\_NOEXEC und MS\_NOSUID beim Einhängen -von devtmpfs zu berücksichtigen.\\ -Beachten Sie: Wenn dies aktiviert ist, können Dinge wie /dev/mem nicht mit dem -PROT\_EXEC"=Flag gemappt werden. Dies kann z.~B. Nicht"=KMS"=Grafiktreiber beschädigen. - -\subsubsection{Select only drivers that don't need compile-time external firmware} -CONFIG\_STANDALONE [=y] \textbf{[Y]}\\* -Wählen Sie diese Option, wenn Sie keine magische Firmware für Treiber haben, -die diese benötigen.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Disable drivers features which enable custom firmware building} -CONFIG\_PREVENT\_FIRMWARE\_BUILD [=y] \textbf{[Y]}\\* -Sagen Sie ja, um Treiberfunktionen zu deaktivieren, die es ermöglichen, eine -benutzerdefinierte Treiber"=Firmware zur Kernel"=Erstellungszeit zu erstellen. -Diese Treiber verwenden nicht die Kernel"=Firmware"=API zum Laden der Firmware -(CONFIG\_FW\_LOADER), sondern ihren eigenen benutzerdefinierten Lademechanismus. -Die benötigte Firmware wird in der Regel mit dem Treiber ausgeliefert, das -Erstellen der Treiber"=Firmware sollte nur notwendig sein, wenn Sie eine -aktualisierte Firmware"=Quelle haben.\\ -Firmware sollte nicht als Teil des Kernels gebaut werden. -Heutzutage sollte man dies immer verhindern und hier Y sagen. -Es gibt nur zwei alte Treiber, die die Erstellung ihrer Firmware zur -Kernel"=Erstellungszeit ermöglichen: -\begin{itemize} - \item CONFIG\_WANXL durch CONFIG\_WANXL\_BUILD\_FIRMWARE - \item CONFIG\_SCSI\_AIC79XX durch CONFIG\_AIC79XX\_BUILD\_FIRMWARE -\end{itemize} - -\subsubsection{Firmware loader \texorpdfstring{$\rightarrow$}{->}} -\textit{(Firmware-Ladeprogramm)} - -\paragraph{Firmware loading facility}$~$\\ -CONFIG\_FW\_LOADER [=y] \textbf{[Y]}\\* -Damit wird die Möglichkeit zum Laden der Firmware im Kernel aktiviert. -Der Kernel sucht zunächst nach eingebauter Firmware, wenn er welche hat. -Anschließend sucht er in einer Reihe von Dateisystempfaden nach der gewünschten -Firmware: -\begin{itemize} - \item firmware\_class Pfad-Modulparameter oder Kernel-Boot-Parameter - \item /lib/firmware/updates/UTS\_RELEASE - \item /lib/firmware/updates - \item /lib/firmware/UTS\_RELEASE - \item /lib/firmware -\end{itemize} -Die Aktivierung dieser Funktion vergrößert Ihr Kernel"=Image nur um etwa 828~Bytes. -Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass Sie keine Firmware -benötigen. -Normalerweise wollen Sie diese Funktion eingebaut haben (=y), aber Sie können sie -auch als Modul aktivieren, in diesem Fall wird das Modul \texttt{firmware\_class} -gebaut. -Sie sollten auch sicherstellen, dass Sie diese integrierte Funktion aktivieren, -wenn Sie die integrierte Firmware (CONFIG\_EXTRA\_FIRMWARE) aktivieren wollen. - -\subparagraph{Log filenames and checksums for loaded firmware}$~$\\ -CONFIG\_FW\_LOADER\_DEBUG [=y] \textbf{[Y]}\\* -Wählen Sie diese Option, um mit dynamischem Debugging die Dateinamen der Firmware -und SHA256"=Prüfsummen für jede geladene Firmware"=Datei im Kernel-Protokoll zu -protokollieren. - -\subparagraph{Build named firmware blobs into the kernel binary}$~$\\ -CONFIG\_EXTRA\_FIRMWARE [=] \textbf{[~]}\\* -Gerätetreiber, die Firmware benötigen, können normalerweise damit umgehen, dass -der Kernel Firmware aus den verschiedenen unterstützten -\texttt{/lib/firmware/}"=Pfaden -lädt. Diese Option ermöglicht es Ihnen, Firmware"=Dateien in den Kernel -einzubauen. Eingebaute Firmware"=Suchen haben Vorrang vor Firmware"=Suchvorgängen -unter Verwendung Ihres Dateisystems über die unterstützten -\texttt{/lib/firmware}"=Pfade, -die unter CONFIG\_FW\_LOADER dokumentiert sind. -Dies kann zu Testzwecken nützlich sein oder wenn die Firmware zu einem frühen -Zeitpunkt beim Booten benötigt wird und man sich nicht darauf verlassen kann, -dass die Firmware in einer initrd oder initramfs abgelegt ist. -Diese Option ist eine Zeichenkette und nimmt die (durch Leerzeichen getrennten) -Namen der Firmware"=Dateien auf -- die gleichen Namen, die in MODULE\_FIRMWARE() -und request\_firmware() im Quelltext erscheinen. Diese Dateien sollten in dem -Verzeichnis vorhanden sein, das mit der Option EXTRA\_FIRMWARE\_DIR angegeben -wurde, was standardmäßig /lib/firmware ist. -Sie könnten zum Beispiel \texttt{CONFIG\_EXTRA\_FIRMWARE=\dq usb8388.bin\dq} setzen, -die Datei usb8388.bin nach /lib/firmware kopieren und den Kernel bauen. -Dann wird jede request\_firmware(\glqq usb8388.bin\grqq{}) intern im Kernel -befriedigt, ohne dass das Dateisystem zur Laufzeit eingesehen werden muss. -WARNUNG: Wenn Sie zusätzliche Firmware"=Dateien in Ihr binäres Kernel"=Image -einbinden, die nicht unter den Bedingungen der GPL verfügbar sind, dann kann es -eine Verletzung der GPL sein, das resultierende Image zu verteilen, da es -sowohl GPL- als auch Nicht"=GPL"=Arbeiten kombiniert. Sie sollten einen eigenen -Anwalt konsultieren, bevor Sie ein solches Image weitergeben.\\ -HINWEIS: Komprimierte Dateien werden in EXTRA\_FIRMWARE nicht unterstützt. - -\subparagraph{Enable the firmware sysfs fallback mechanism}$~$\\ -CONFIG\_FW\_LOADER\_USER\_HELPER [=n] \textbf{[~]}\\* -Mit dieser Option wird eine sysfs"=Lademöglichkeit aktiviert, um das Laden von -Firmware in den Kernel über den Userspace als Fallback"=Mechanismus zu -ermöglichen, und zwar nur dann, wenn die direkte Dateisystem"=Suche des Kernels -nach der Firmware unter Verwendung der verschiedenen -\texttt{/lib/firmware/}"=Pfade oder des im Modulparameter \texttt{firmware\_class} -path angegebenen Pfades oder des Kernel"=Boot"=Parameters \texttt{firmware\_class} -path fehlgeschlagen ist, wenn die firmware\_class eingebaut ist. -Einzelheiten zur Arbeit mit dem sysfs"=Fallback"=Mechanismus finden Sie in -Documentation/driver-api/firmware/fallback-mechanisms.rst.\\ -Die direkte Dateisystem"=Suche nach Firmware wird nun immer zuerst verwendet. -Wenn die direkte Dateisystem"=Suche des Kernels nach Firmware die angeforderte -Firmware nicht findet, wird eine sysfs"=Fallback"=Lademöglichkeit zur Verfügung -gestellt, und der Userspace wird durch uevents darüber informiert. Das uevent -kann unterdrückt werden, wenn der Treiber es explizit anfordert. Wenn der -benutzerdefinierte Fallback"=Mechanismus verwendet wird, muss der Userspace -immer bestätigen, dass die Firmware nicht gefunden wurde, da die -Zeitüberschreitung für den Fallback"=Mechanismus deaktiviert ist und -fehlgeschlagene Anfragen für immer verweilen. -Dies war früher die Standard"=Firmware"=Lademöglichkeit, und udev lauschte -auf uvents, um Firmware für den Kernel zu laden. Die Funktionalität der -Firmware"=Lademöglichkeit in udev wurde entfernt, so dass sie nicht mehr als -Ausweichmechanismus verwendet werden kann. Linux verlässt sich nicht mehr auf -einen Fallback"=Mechanismus im Userspace und verwendet diesen auch nicht mehr. -Wenn Sie sich auf einen solchen Mechanismus verlassen müssen, wenden Sie sich -an die freizügig lizenzierte Firmwared: -\url{https://github.com/teg/firmwared}\\ -Da dies früher die Standardfunktion zum Laden von Firmware war, kann es sein, -dass ein alter Userspace existiert, der sich darauf verlässt, und daher kann -dieser Mechanismus niemals aus dem Kernel entfernt werden. -Sie sollten diese Funktionalität nur aktivieren, wenn Sie sicher sind, dass -Sie einen Ausweichmechanismus benötigen und einen Userspace"=Mechanismus -bereithalten, um Firmware zu laden, falls diese nicht gefunden wird. Ein -Hauptgrund dafür kann sein, dass Sie Treiber haben, die eine eingebaute -Firmware benötigen und aus irgendeinem Grund die benötigte Firmware nicht in -initramfs unterbringen können. -Ein weiterer Grund, warum Kernel diese Funktion aktiviert haben können, ist -die Unterstützung eines Treibers, der explizit auf diesen Fallback"=Mechanismus -angewiesen ist. Derzeit benötigen nur zwei Treiber diese Funktion: -\begin{itemize} - \item CONFIG\_LEDS\_LP55XX\_COMMON - \item CONFIG\_DELL\_RBU -\end{itemize} -Abgesehen von der Unterstützung der oben genannten Treiber kann ein weiterer -Grund dafür sein, dass Ihre Firmware außerhalb der Pfade liegt, nach denen der -Kernel sucht, und nicht mit dem Modulparameter firmware\_class path oder dem -Boot"=Parameter firmware\_class path des Kernels angegeben werden kann, wenn -firmware\_class eingebaut ist. -Ein moderner Anwendungsfall könnte darin bestehen, während der Bereitstellung -vorübergehend eine benutzerdefinierte Partition einzuhängen, auf die nur der -Userspace Zugriff hat, und diese dann zu verwenden, um nach der benötigten -Firmware zu suchen und sie zu holen. Eine solche Art von Treiberfunktionalität -wird von den Herstellern möglicherweise nicht einmal gewünscht, so dass sie -nur als Schnittstelle für die Bereitstellung unterstützt werden muss. -Da die Firmware"=Lademöglichkeit von udev entfernt wurde, können Sie -firmwared oder einen Fork davon verwenden, um die Art und Weise, wie Sie -Firmware auf der Grundlage von ausgegebenen uevents laden wollen, anzupassen. -Wenn Sie diese Option aktivieren, erhöht sich die Größe Ihres Kernel"=Images -um etwa 13436~Bytes.\\ -Wenn Sie sich unsicher sind, sagen Sie hier N, es sei denn, Sie sind eine -Linux"=Distribution und müssen die beiden oben genannten Treiber unterstützen -oder Sie sind sich sicher, dass Sie eine wirklich benutzerdefinierte -Firmware"=Lademöglichkeit im Userspace unterstützen müssen. - -\subparagraph{Enable compressed firmware support}$~$\\ -CONFIG\_FW\_LOADER\_COMPRESS [=y] \textbf{[Y]}\\* -Diese Option aktiviert die Unterstützung für das Laden komprimierter -Firmware"=Dateien. Der Aufrufer der Firmware"=API erhält den dekomprimierten -Dateiinhalt. Die komprimierte Datei wird nur dann als Fallback geladen, wenn -das Laden der Rohdatei zunächst fehlgeschlagen ist.\\ -Die Unterstützung für komprimierte Firmware gilt nicht für Firmware-Images, -die in das Kernel-Image eingebaut sind (CONFIG\_EXTRA\_FIRMWARE). - -\subsubparagraph{Enable XZ-compressed firmware support}$~$\\ -CONFIG\_FW\_LOADER\_COMPRESS\_XZ [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Unterstützung für XZ"=komprimierte Dateien -hinzugefügt. Die Dateien müssen entweder mit dem Integritätsprüfungstyp -\texttt{none} oder \texttt{crc32} komprimiert sein (übergeben Sie die Option -\texttt{\dq -C crc32\dq} an den Befehl \texttt{xz}). - -\subsubparagraph{Enable ZSTD-compressed firmware support}$~$\\ -CONFIG\_FW\_LOADER\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\* -Mit dieser Option wird die Unterstützung für ZSTD"=komprimierte Dateien -hinzugefügt. - -\subparagraph{Enable firmware caching during suspend}$~$\\ -CONFIG\_FW\_CACHE [=y] \textbf{[Y]}\\* -Da die Firmware"=Zwischenspeicherung uevent"=Meldungen erzeugt, die über -einen Netlink"=Socket gesendet werden, kann sie auf vielen Plattformen ein -Suspendieren verhindern. Es ist auch nicht immer nützlich, daher haben wir -auf solchen Plattformen die Option.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\subparagraph{Enable users to initiate firmware updates using sysfs}$~$\\ -CONFIG\_FW\_UPLOAD [=y] \textbf{[Y]}\\* -Durch die Aktivierung dieser Option können Gerätetreiber eine persistente -\texttt{sysfs}"=Schnittstelle bereitstellen, über die Firmware"=Updates aus -dem Userspace initiiert werden können. Beispielsweise laden FPGA"=basierte -PCIe"=Karten beim Booten der Karte Firmware und FPGA"=Images aus dem lokalen -FLASH. Die Images im FLASH können durch neue, vom Benutzer bereitgestellte -Images aktualisiert werden. Aktivieren Sie dieses Gerät, um Karten zu -unterstützen, die auf vom Benutzer initiierte Updates für Firmware"=Dateien -angewiesen sind. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Driver Core verbose debug message} -CONFIG\_DEBUG\_DRIVER [=n] \textbf{[~]}\\* -Geben Sie hier Y an, wenn Sie möchten, dass der Treiberkern eine Reihe von -Debugmeldungen in das Systemprotokoll schreibt. Wählen Sie dies, wenn Sie ein -Problem mit dem Treiberkern haben und mehr über die Vorgänge erfahren möchten. -Wenn Sie sich nicht sicher sind, wählen Sie hier N. - -\subsubsection{Managed device resources verbose debug messages} -CONFIG\_DEBUG\_DEVRES [=n] \textbf{[~]}\\* -Diese Option aktiviert den Kernelparameter devres.log. Wenn sie auf einen Wert -ungleich Null gesetzt ist, werden Devres"=Debug"=Meldungen gedruckt. Wählen -Sie diese Option, wenn Sie ein Problem mit devres haben oder die -Ressourcenverwaltung für ein verwaltetes Gerät debuggen wollen. -\texttt{devres.log} -kann vom sysfs"=Knoten aus ein- und ausgeschaltet werden.\\ -Wenn Sie sich diesbezüglich unsicher sind, sagen Sie hier N. - -\subsubsection{Test driver remove calls during probe (UNSTABLE)} -CONFIG\_DEBUG\_TEST\_DRIVER\_REMOVE [=n] \textbf{[~]}\\* -Geben Sie hier Y an, wenn Sie möchten, -dass der Treiberkern die Funktionen zum Entfernen von Treibern durch den -Aufruf von probe, remove, probe testet. Dadurch wird der Entfernungspfad -getestet, ohne dass der Treiber entbunden oder das Treibermodul entladen -werden muss. -Es wird erwartet, dass diese Option Fehler findet und Ihr System unbrauchbar -machen kann. Sie sollten hier N angeben, es sei denn, Sie wollen diese -Funktion ausdrücklich testen. - -\subsubsection{Build kernel module to test asynchronous driver probing} -CONFIG\_TEST\_ASYNC\_DRIVER\_PROBE [=n] \textbf{[~]}\\* -Die Aktivierung dieser Option erzeugt ein Kernelmodul, mit dem die asynchrone -Treiberprüfung durch den Gerätekern getestet werden kann. -Der Modulname lautet \texttt{test\_async\_driver\_probe.ko}\\ -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Enable verbose DMA\_FENCE\_TRACE messages} -CONFIG\_DMA\_FENCE\_TRACE [=n] \textbf{[~]}\\* -Aktivieren Sie die Druckfunktion DMA\_FENCE\_TRACE. Dies fügt dem -Konsolenprotokoll zusätzlichen Spam hinzu, erleichtert aber die Diagnose -von Problemen im Zusammenhang mit Blockierungen bei DMA"=Puffern, die von -mehreren Geräten gemeinsam genutzt werden. - -\subsubsection{sync\_state() behavior defaults to timeout instead of strict} -CONFIG\_FW\_DEVLINK\_SYNC\_STATE\_TIMEOUT [=n] \textbf{[~]}\\* -Dies entspricht dem Hinzufügen des Kernel"=Kommandozeilenparameters\\ -\texttt{\dq fw\_devlink.sync\_state=timeout\dq}.\\ -Geben Sie das Warten auf Verbraucher auf und rufen Sie sync\_state() auf -allen Geräten auf, die ihre sync\_state()"=Aufrufe noch nicht erhalten haben, -nachdem deferred\_probe\_timeout abgelaufen ist oder durch late\_initcall(), -wenn !CONFIG\_MODULES. Sie sollten hier fast immer N auswählen, es sei denn, -Sie haben bereits erfolgreich mit der Kommandozeilenoption auf jedem -System/Board getestet, auf dem Ihr Kernel voraussichtlich funktionieren wird. - -\subsection{Bus devices \texorpdfstring{$\rightarrow$}{->}} -\textit{(Bus-Geräte)} - -\subsubsection{Modem Host Interface (MHI) bus} -CONFIG\_MHI\_BUS [=m] \textbf{[M]}\\* -Bustreiber für das MHI"=Protokoll. Modem Host Interface (MHI) ist ein -Kommunikationsprotokoll, das von den Host"=Prozessoren zur Steuerung und -Kommunikation mit Modemgeräten über einen Hochgeschwindigkeits"=Peripheriebus -oder gemeinsamen Speicher verwendet wird. - -\paragraph{Debugfs support for the MHI bus}$~$\\ -CONFIG\_MHI\_BUS\_DEBUG [=n] \textbf{[~]}\\* -Aktiviert die Unterstützung von debugfs für die Verwendung mit dem MHI-Transport. -Ermöglicht das Lesen und/oder Ändern einiger Werte innerhalb des MHI"=Controllers -zu Debug- und Testzwecken. - -\paragraph{MHI PCI controller driver}$~$\\ -CONFIG\_MHI\_BUS\_PCI\_GENERIC [=m] \textbf{[M]}\\* -Dieser Treiber bietet einen MHI PCI"=Controller"=Treiber für Geräte wie Qualcomm -SDX55"=basierte PCIe"=Modems. - -\subsubsection{Modem Host Interface (MHI) bus Endpoint implementation} -CONFIG\_MHI\_BUS\_EP [=m] \textbf{[M]}\\* -Bustreiber für das MHI-Protokoll. Modem Host Interface (MHI) ist ein -Kommunikationsprotokoll, das von einem Host"=Prozessor zur Steuerung und -Kommunikation eines Modemgeräts über einen Hochgeschwindigkeits"=Peripheriebus -oder einen gemeinsamen Speicher verwendet wird. -MHI\_BUS\_EP implementiert das MHI"=Protokoll für die Endpunktgeräte, wie z.~B. -das SDX55"=Modem, das über PCIe mit dem Host"=Rechner verbunden ist. - -%15.7 -\subsection{Cache Drivers ---} -\textit{(Pufferspeicher-Treiber)} - -\subsection{Connector -- unified userspace -\texorpdfstring{$\leftrightarrow$}{<->} kernelspace linker -\texorpdfstring{$\rightarrow$}{->}} -CONFIG\_CONNECTOR [=y] \textbf{[Y]}\\* -Dies ist ein vereinheitlichter Userspace $\leftrightarrow$ -Kernelspace"=Anschluss, -der auf dem Netlink"=Socket"=Protokoll aufbaut. -Connector"=Unterstützung kann auch als Modul gebaut werden. -Wenn dies der Fall ist, wird das Modul \texttt{cn} genannt. - -\subsubsection{Report process events to userspace} -CONFIG\_PROC\_EVENTS [=y] \textbf{[Y]}\\* -Einen Konnektor bereitstellen, der Prozessereignisse an den Userspace meldet. -Senden Sie Ereignisse wie fork, exec, id-Änderung (uid, gid, suid, etc.) -und exit. - -%15.9 -\subsection{Firmware Drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(Firmware-Treiber)} - -\subsubsection{ARM System Control and Management Interface Protocol ---} -\textit{(ARM-Systemsteuerungs- und Verwaltungsschnittstellenprotokoll)} - -\subsubsection{BIOS Enhanced Disk Drive calls determine boot disk} -CONFIG\_EDD [=m] \textbf{[M]}\\* -Geben Sie hier Y oder M an, wenn Sie die BIOS Enhanced Disk Drive Services -aktivieren wollen, die das BIOS im realen Modus aufruft, um festzustellen, -von welcher Festplatte das BIOS zu booten versucht. Diese Information wird -dann über sysfs exportiert. -Diese Option ist experimentell und es ist bekannt, dass sie bei einigen -obskuren Konfigurationen nicht bootet. Die meisten BIOS"=Hersteller von -Festplattencontrollern implementieren diese Funktion noch nicht. - -\paragraph{Sets default behavior for EDD detection to off}$~$\\ -CONFIG\_EDD\_OFF [=n] \textbf{[~]}\\* -Sagen Sie Y, wenn Sie EDD standardmäßig deaktivieren wollen, obwohl es in -den Kernel einkompiliert ist. Sagen Sie N, wenn Sie EDD standardmäßig -aktivieren wollen. EDD kann mit dem Kernelparameter -\texttt{edd=$\{$on|skipmbr|off$\}$} dynamisch eingestellt werden. - -%15.9.3 -\subsubsection{Export DMI identification via sysfs to userspace} -CONFIG\_DMIID [=y] \textbf{[Y]}\\* -Geben Sie hier Y an, wenn Sie SMBIOS/DMI"=Systemidentifikationsinformationen -aus dem Userspace über \texttt{/sys/class/dmi/id/} abfragen wollen oder -wenn Sie -DMI"=basiertes automatisches Laden von Modulen wünschen. - -%15.9.4 -\subsubsection{DMI table support in sysfs} -CONFIG\_DMI\_SYSFS [=y] \textbf{[Y]}\\* -Geben Sie hier Y oder M ein, um den Export der Rohdaten der DMI"=Tabelle -über sysfs zu aktivieren. Dies ist nützlich, um die Daten zu konsumieren, -ohne überhaupt Zugriff auf \texttt{/dev/mem} zu benötigen. -Die Tabellen befinden sich unter \texttt{/sys/firmware/dmi}, wenn diese -Option aktiviert und geladen ist. - -\subsubsection{iSCSI Boot Firmware Table Attributes} -CONFIG\_ISCSI\_IBFT\_FIND [=y] \textbf{[Y]}\\* -Mit dieser Option kann der Kernel den Speicherbereich finden, in dem sich -die ISCSI Boot Firmware Table (iBFT) befindet. Dies ist notwendig, damit das -Modul iSCSI Boot Firmware Table Attributes richtig funktioniert. - -\subsubsection{iSCSI Boot Firmware Table Attributes module} -CONFIG\_ISCSI\_IBFT [=m] \textbf{[M]}\\* -Diese Option aktiviert die Unterstützung für die Erkennung und Offenlegung -der iSCSI Boot Firmware Table (iBFT) über sysfs im Userspace. Wenn Sie die -iSCSI"=Boot"=Parameter während des Systemstarts dynamisch erkennen möchten, -geben Sie Y an. -Andernfalls sagen Sie N. - -\subsubsection{QEMU fw\_cfg device support in sysfs} -CONFIG\_FW\_CFG\_SYSFS [=m] \textbf{[M]}\\* -Geben Sie hier Y oder M ein, um den Export der QEMU"=Firmware"=Konfigurationsdatei -(fw\_cfg) über sysfs zu aktivieren. Die Einträge befinden sich unter -\texttt{/sys/firmware/fw\_cfg}, wenn diese Option aktiviert und geladen ist. - -\paragraph{QEMU fw\_cfg device parameter parsing}$~$\\ -CONFIG\_FW\_CFG\_SYSFS\_CMDLINE [=n] \textbf{[~]}\\* -Ermöglicht die Initialisierung des Geräts \texttt{qemu\_fw\_cfg} über die -Kernel"=Befehlszeile oder über einen Modulparameter.\\ -WARNUNG: Die Verwendung falscher Parameter (insbesondere der Basisadresse) -kann Ihr System zum Absturz bringen. - -\subsubsection{Mark VGA/VBE/EFI FB as generic system framebuffer} -CONFIG\_SYSFB\_SIMPLEFB [=y] \textbf{[Y]}\\* -Firmwares stellen oft anfängliche Grafik"=Framebuffer zur Verfügung, so dass -das BIOS, der Bootloader oder der Kernel die grundlegende Videoausgabe während -des Bootens zur Benutzerführung und Fehlersuche anzeigen kann. In der -Vergangenheit wurden hierfür die VESA-BIOS"=Erweiterungen und EFI"=Framebuffer -verwendet, die meist auf x86"=BIOS oder EFI"=Systeme beschränkt sind.\\ -Wenn diese Option aktiviert ist, werden VGA/VBE/EFI"=Framebuffer als -generische Framebuffer markiert, so dass stattdessen die neuen generischen -System"=Framebuffer"=Treiber verwendet werden können. Wenn der Framebuffer -nicht mit den generischen Modi kompatibel ist, wird er als -Fallback"=Plattform"=Framebuffer angezeigt, so dass Legacy"=Treiber wie -efifb, vesafb und uvesafb ihn verwenden können. -Wenn diese Option nicht ausgewählt ist, werden alle System"=Framebuffer wie -üblich als Fallbac"=-Plattform"=Framebuffer gekennzeichnet. -Hinweis: Ältere fbdev"=Treiber, einschließlich vesafb, efifb und uvesafb, -sind nicht in der Lage, generische System"=Framebuffer zu erkennen, wenn -diese Option aktiviert ist. Es wird dringend empfohlen, simplefb als Ersatz -zu aktivieren, wenn Sie diese Option wählen. simplefb kann korrekt mit -generischen System"=Framebuffern umgehen. Sie sollten jedoch vesafb und -andere als Ersatz aktivieren, wenn ein System"=Framebuffer nicht mit -simplefb kompatibel ist. -Wenn Sie unsicher sind, sagen Sie Y. - -\subsubsection{Google Firmware Drivers \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_GOOGLE\_FIRMWARE [=y] \textbf{[Y]}\\* -Diese Firmware-Treiber werden von Google"=Servern, Chromebooks und anderen -Geräten mit Coreboot"=Firmware verwendet. -Im Zweifelsfall sagen Sie N. - -\paragraph{SMI interface for Google platforms}$~$\\ -CONFIG\_GOOGLE\_SMI [=n] \textbf{[~]}\\* -Sagen Sie hier Y, wenn Sie SMI-Callbacks für Google"=Plattformen aktivieren -wollen. Dies bietet eine Schnittstelle zum Schreiben und Löschen des -Ereignisprotokolls. Wenn CONFIG\_EFI ebenfalls aktiviert ist, bietet dieser -Treiber eine Schnittstelle zum Lesen und Schreiben von NVRAM"=Variablen. - -\paragraph{CBMEM entries in sysfs}$~$\\ -CONFIG\_GOOGLE\_CBMEM [=m] \textbf{[M]}\\* -CBMEM ist ein nach unten wachsender Speicherbereich, der vom Coreboot-BIOS -erstellt wird und mit Tags versehene Datenstrukturen des BIOS enthält. -Diese Datenstrukturen stellen Dinge wie die verifizierten Boot"=Firmware"=Variablen, -das Flash"=Layout, das Firmware"=Ereignisprotokoll und mehr dar. -Diese Option aktiviert das cbmem"=Modul, das den Kernel veranlasst, nach -Coreboot"=CBMEM"=Einträgen zu suchen und den Speicher für jeden Eintrag in -sysfs unter \texttt{/sys/bus/coreboot/devices/cbmem-$<$id$>$} freizugeben. - -\paragraph{Coreboot Table Access}$~$\\ -CONFIG\_GOOGLE\_COREBOOT\_TABLE [=m] \textbf{[M]}\\* -Diese Option aktiviert das Modul coreboot\_table, das anderen Firmware"=Modulen -den Zugriff auf die coreboot"=Tabelle ermöglicht. Der Zugriff auf den Zeiger -der coreboot"=Tabelle erfolgt über das ACPI"=Objekt "GOOGCB00" oder den -Gerätebaumknoten /firmware/coreboot. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Firmware Memory Console -- X86 Legacy support}$~$\\ -CONFIG\_GOOGLE\_MEMCONSOLE\_X86\_LEGACY [=n] \textbf{[~]}\\* -Diese Option ermöglicht es dem Kernel, in der EBDA auf Google-Servern nach -einem Firmware"=Protokoll zu suchen. Wenn es gefunden wird, wird dieses -Protokoll in der Datei \texttt{/sys/firmware/log} in das -Benutzerland (userland) exportiert. - -\paragraph{Coreboot Framebuffer}$~$\\ -CONFIG\_GOOGLE\_FRAMEBUFFER\_COREBOOT [=m] \textbf{[M]}\\* -Diese Option ermöglicht es dem Kernel, in der Coreboot-Tabelle nach einem Framebuffer -zu suchen. Wird er gefunden, wird er mit \texttt{simplefb} registriert. - -\paragraph{Firmware Memory Console}$~$\\ -CONFIG\_GOOGLE\_MEMCONSOLE\_COREBOOT [=m] \textbf{[M]}\\* -Diese Option ermöglicht es dem Kernel, in der coreboot"=Tabelle nach einem -Firmware"=Protokoll zu suchen. Wenn es gefunden wird, wird dieses Protokoll -in der Datei \texttt{/sys/firmware/log} in das Benutzerland (userland) -exportiert. - -\paragraph{Vital Product Data}$~$\\ -CONFIG\_GOOGLE\_VPD [=m] \textbf{[M]}\\* -Diese Option ermöglicht es dem Kernel, den Inhalt von Google VPD unter -\texttt{/sys/firmware/vpd} zu veröffentlichen. - -\subsubsection{EFI (Extensible Firmware Interface) Support \texorpdfstring{$\rightarrow$}{->}} -\textit{(EFI-Unterstützung (Erweiterbare Firmware-Schnittstelle))} - -\paragraph{Register efivars backend for pstore}$~$\\ -CONFIG\_EFI\_VARS\_PSTORE [=y] \textbf{[Y]}\\* -Sagen Sie hier Y, um die Verwendung von \texttt{efivars} als Backend für -\texttt{pstore} zu aktivieren. Dies ermöglicht das Schreiben von -Konsolenmeldungen, Crash"=Dumps oder anderen von pstore unterstützten Daten -in EFI"=Variablen. - -\subparagraph{Disable using efivars as a pstore backend by default}$~$\\ -CONFIG\_EFI\_VARS\_PSTORE\_DEFAULT\_DISABLE [=y] \textbf{[Y]}\\* -Wenn Sie hier Y angeben, wird die Verwendung von efivars als Speicher-Backend für -pstore standardmäßig deaktiviert. Diese Einstellung kann mit dem Parameter -\texttt{pstore\_disable} des \texttt{efivars}-Moduls außer Kraft gesetzt werden. - -\paragraph{Reserve EFI Specific Purpose Memory}$~$\\ -CONFIG\_EFI\_SOFT\_RESERVE [=y] \textbf{[Y]}\\* -Auf Systemen mit gemischten Leistungsklassen des Speichers kann EFI mit einem Attribut -einen bestimmten Zweck des Speichers angeben (siehe EFI\_MEMORY\_SP in UEFI~2.8). -Ein mit diesem Attribut gekennzeichneter Speicherbereich kann im Vergleich zum allgemeinen -\glqq System"=RAM\grqq{}"=Pool des Systems einzigartige Leistungsmerkmale aufweisen. In der Erwartung, -dass ein solcher Speicher anwendungsspezifisch genutzt wird und sein EFI"=Basistyp -\glqq konventionell\grqq{} ist, antwortet Y, damit der Kernel ihn als -\glqq Soft Reserved\grqq{}-Ressource reserviert und standardmäßig für den Direktzugriff -(device-dax) reserviert. Der Speicherbereich kann später optional dem Page Allocator durch -die Systemadministrator"=Policy über die device"=dax kmem"=Funktion zugewiesen werden. -Sagen Sie N, damit der Kernel diesen Speicher standardmäßig als \glqq System-RAM\grqq{} -behandelt.\\ -Wenn Sie unsicher sind, sagen Sie Y. - -\paragraph{Adjust memory attributes in EFISTUB}$~$\\ -CONFIG\_EFI\_DXE\_MEM\_ATTRIBUTES [=y] \textbf{[Y]}\\* -Die UEFI-Spezifikation garantiert nicht, dass der gesamte Speicher sowohl zum Schreiben -als auch zum Ausführen zugänglich ist, wie es der Kernel erwartet.\\ -Verwenden Sie DXE-Dienste, um Speicherschutzattribute während des Bootens über EFISTUB -zu prüfen und zu ändern, um sicherzustellen, dass die vom Kernel verwendeten -Speicherbereiche beschreibbar und ausführbar sind. - -\paragraph{EFI Bootloader Control}$~$\\ -CONFIG\_EFI\_BOOTLOADER\_CONTROL [=m] \textbf{[M]}\\* -Dieses Modul installiert einen Reboot-Hook, so dass, wenn reboot() mit einem -String-Argument NNN aufgerufen wird, \glqq NNN\grqq{} in die EFI"=Variable -\glqq LoaderEntryOneShot\grqq{} kopiert wird, um vom Bootloader gelesen zu werden.\\ -Wenn die Zeichenkette mit einem der in seiner Konfiguration definierten Boot-Labels -übereinstimmt, bootet der Bootloader einmal mit diesem Label. -Die EFI"=Variable -\glqq LoaderEntryRebootReason\grqq{} wird mit dem Reboot"=Grund gesetzt: -\glqq reboot\grqq{} oder \glqq shutdown\grqq{}. Der Bootloader liest diesen -Reboot"=Grund ein und ergreift bestimmte Maßnahmen entsprechend seiner Richtlinie. - -\paragraph{EFI capsule loader}$~$\\ -CONFIG\_EFI\_CAPSULE\_LOADER [=m] \textbf{[M]}\\* -Diese Option stellt eine Laderschnittstelle \texttt{/dev/efi\_capsule\_loader} zur Verfügung, -über die Benutzer EFI"=Kapseln laden können. Dieser Treiber erfordert eine funktionierende -Runtime"=Kapselunterstützung in der Firmware, die viele OEMs nicht bieten.\\ -Die meisten Benutzer sollten N sagen. - -\paragraph{EFI Runtime Service Tests Support}$~$\\ -CONFIG\_EFI\_TEST [=n] \textbf{[~]}\\* -Dieser Treiber verwendet die \texttt{efi.$<$service$>$}"=Funktionszeiger direkt, anstatt über die -efivar"=API zu gehen, da er nicht versucht, das Kernel"=Subsystem zu testen, sondern nur -die UEFI"=Laufzeitdienstschnittstellen, die von der Firmware bereitgestellt werden. -Dieser Treiber wird von der Firmware Test Suite (FWTS) zum Testen der -UEFI"=Laufzeitschnittstellen der Firmware verwendet. -Details zur FWTS sind verfügbar unter: -\url{https://wiki.ubuntu.com/FirmwareTestSuite} -Sagen Sie hier Y, um die Unterstützung der Laufzeitdienste über \texttt{/dev/efi\_test} -zu aktivieren. -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{Apple Device Properties}$~$\\ -CONFIG\_APPLE\_PROPERTIES [=y] \textbf{[Y]}\\* -Rufen Sie Eigenschaften von EFI auf Apple Macs ab und weisen Sie sie Geräten zu, was eine -verbesserte Unterstützung von Apple"=Hardware ermöglicht. Zu den Eigenschaften, die sonst -fehlen würden, gehören das Thunderbolt"=Geräte"=ROM und die GPU"=Konfigurationsdaten. -Wenn Sie unsicher sind, sagen Sie Y, wenn Sie einen Mac haben. Andernfalls N. - -\paragraph{Reset memory attack mitigation}$~$\\ -CONFIG\_RESET\_ATTACK\_MITIGATION [=n] \textbf{[~]}\\* -Verlangen Sie, dass die Firmware den Inhalt des RAM nach einem Neustart unter Verwendung -der TCG Platform Reset Attack Mitigation Spezifikation löscht. Dies schützt davor, dass ein -Angreifer das System gewaltsam neu startet, während es noch Geheimnisse im RAM enthält, ein -anderes Betriebssystem startet und die Geheimnisse extrahiert. Diese Funktion sollte nur -aktiviert werden, wenn Userland so konfiguriert ist, dass das MemoryOverwriteRequest"=Flag -beim sauberen Herunterfahren gelöscht wird, nachdem die Geheimnisse entfernt wurden, da sie -sonst auch bei sauberen Neustarts ausgelöst wird. - -\paragraph{EFI Runtime Configuration Interface Table Version 2 Support}$~$\\ -CONFIG\_EFI\_RCI2\_TABLE [=y] \textbf{[Y]}\\* -Zeigt den Inhalt der Runtime Configuration Interface Table Version~2 auf -Dell EMC PowerEdge"=Systemen als binäres Attribut \glqq rci2\grqq{} im -Verzeichnis \texttt{/sys/firmware/efi/tables} an. -Die RCI2"=Tabelle enthält BIOS HII im XML"=Format und wird zum Auffüllen der -BIOS"=Setup"=Seite im Dell EMC OpenManage Server Administrator"=Tool verwendet. -Die BIOS"=Setup"=Seite enthält BIOS"=Tokens, die konfiguriert werden können. -Geben Sie hier Y für Dell EMC PowerEdge"=Systeme an. - -\paragraph{Clear Busmaster bit on PCI bridges during ExitBootServices()}$~$\\ -CONFIG\_EFI\_DISABLE\_PCI\_DMA [=n] \textbf{[~]}\\* -Deaktivieren Sie das Busmaster"=Bit im Kontrollregister auf allen PCI"=Brücken, während Sie -ExitBootServices() aufrufen und die Kontrolle an den Laufzeitkernel übergeben. Die -System"=Firmware kann die IOMMU so konfigurieren, dass böswillige PCI"=Geräte nicht in der -Lage sind, das Betriebssystem über DMA anzugreifen. Da die Firmware jedoch nicht garantieren -kann, dass das Betriebssystem IOMMU"=fähig ist, wird sie die IOMMU"=Konfiguration abbauen, -wenn ExitBootServices() aufgerufen wird. Dadurch bleibt ein Zeitfenster, in dem ein -feindliches Gerät noch Schaden anrichten kann, bevor Linux die IOMMU erneut konfiguriert. -Wenn Sie hier Y angeben, wird der EFI"=Stub das Busmaster"=Bit auf allen PCI"=Brücken -löschen, bevor ExitBootServices() aufgerufen wird. Dadurch wird verhindert, dass böswillige -PCI"=Geräte DMA durchführen können, bis der Kernel das Busmastering nach der Konfiguration -der IOMMU wieder aktiviert. -Diese Option kann bei einigen Geräten mit schlechtem Verhalten zu Fehlern führen und sollte -nicht ohne Test aktiviert werden. Die Kernel"=Befehlszeilenoptionen -\texttt{efi=disable\_early\_pci\_dma} oder \texttt{efi=no\_disable\_early\_pci\_dma} können -verwendet werden, um diese Option außer Kraft zu setzen. - -\paragraph{Load custom ACPI SSDT overlay from an EFI variable}$~$\\ -CONFIG\_EFI\_CUSTOM\_SSDT\_OVERLAYS [=y] \textbf{[Y]}\\* -Ermöglicht das Laden eines ACPI-SSDT-Overlays aus einer EFI"=Variablen, die durch eine -Kernel"=Befehlszeilenoption angegeben wird. -Siehe Documentation/admin-guide/acpi/ssdt-overlays.rst für weitere Informationen. - -\paragraph{Disable EFI runtime services support by default}$~$\\ -CONFIG\_EFI\_DISABLE\_RUNTIME [=n] \textbf{[N]}\\* -Erlaubt es, die Unterstützung der EFI-Laufzeitdienste standardmäßig zu deaktivieren. -Dies kann bereits durch die Verwendung der Option \texttt{efi=noruntime} erreicht werden, -aber es könnte nützlich sein, diese Voreinstellung ohne einen Kernel"=Befehlszeilenparameter zu haben. -Die EFI"=Laufzeitdienste sind standardmäßig deaktiviert, wenn PREEMPT\_RT aktiviert ist, da Messungen -gezeigt haben, dass einige EFI"=Funktionsaufrufe zu viel Zeit benötigen, um abgeschlossen zu werden, -was zu großen Latenzen führen kann, was ein Problem für Echtzeit"=Kernel darstellt. -Diese Voreinstellung kann mit der Option \texttt{efi=runtime} außer Kraft gesetzt werden. - -\paragraph{EFI Confidential Computing Secret Area Support}$~$\\ -CONFIG\_EFI\_COCO\_SECRET [=y] \textbf{[Y]}\\* -Confidential Computing"=Plattformen (z.~B. AMD SEV) ermöglichen es dem Gastbesitzer, während -des Starts der Gast"=VM auf sichere Weise Geheimnisse einzubringen. Die Geheimnisse werden in -einem bestimmten reservierten EFI"=Speicherbereich abgelegt. -Um die Geheimnisse im Kernel verwenden zu können, muss der Ort des geheimen Bereichs (wie in -der EFI"=Konfigurationstabelle veröffentlicht) beibehalten werden. -Wenn Sie hier Y angeben, wird die Adresse des EFI"=Geheimbereichs für die Verwendung im Kernel -beibehalten. Dadurch kann das Modul \texttt{virt/coco/efi\_secret} auf die Secrets zugreifen, -was wiederum Userspace"=Programmen den Zugriff auf die injizierten Secrets ermöglicht. - -\subsubsection{Qualcomm firmware drivers ---} -\textit{(Qualcomm-Firmware-Treiber)} - -\subsubsection{Tegra firmware drivers ---} -\textit{(Tegra-Firmware-Treiber)} - -\subsection{GNSS receiver support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_GNSS \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie einen GNSS"=Empfänger (z.~B. einen GPS"=Empfänger) haben. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{gnss} genannt. - -\subsubsection{Mediatek GNSS receiver support} -CONFIG\_GNSS\_MTK\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie einen Mediatek"=basierten GNSS"=Empfänger haben, der eine -serielle Schnittstelle verwendet. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird -\texttt{gnss-mtk} genannt. -Wenn Sie unsicher sind, wählen Sie N. - -\subsubsection{SiRFstar GNSS receiver support} -CONFIG\_GNSS\_SIRF\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie einen SiRFstar"=basierten GNSS"=Empfänger haben, der eine -serielle Schnittstelle verwendet. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul -wird \texttt{gnss-sirf} genannt. -Wenn Sie unsicher sind, wählen Sie N. - -\subsubsection{u-blox GNSS receiver support} -CONFIG\_GNSS\_UBX\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Sagen Sie hier Y, wenn Sie einen GNSS-Empfänger von u-blox haben, der eine serielle -Schnittstelle verwendet. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{gnss-ubx} genannt. -Wenn Sie unsicher sind, wählen Sie N. - -\subsubsection{USB GNSS receiver support} -CONFIG\_GNSS\_USB \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Geben Sie hier Y ein, wenn Sie einen GNSS-Empfänger haben, der eine -USB-Schnittstelle verwendet. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: -Das Modul wird \texttt{gnss-usb} genannt. -Wenn Sie unsicher sind, sagen Sie N. - -\subsection{Memory Technology Devices (MTD) support \texorpdfstring{$\rightarrow$}{->}} -CONFIG\_MTD \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* -Memory Technology Devices sind Flash-, RAM- und ähnliche Chips, die häufig für -Solid"=State"=Dateisysteme auf eingebetteten Geräten verwendet werden. Diese Option -bietet die allgemeine Unterstützung für MTD"=Treiber, um sich beim Kernel zu registrieren, -und für potenzielle Benutzer von MTD"=Geräten, um die vorhandenen Geräte aufzulisten und -einen Zugriff auf sie zu erhalten. Sie ermöglicht es Ihnen auch, individuelle Treiber für -bestimmte Hardware und Benutzer von MTD"=Geräten auszuwählen. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{MTD test support (DANGEROUS)} -CONFIG\_MTD\_TESTS [=n] \textbf{[~]}\\* -Mit dieser Option werden verschiedene MTD-Tests in die Kompilierung einbezogen. Die Tests -sollten normalerweise als Kernelmodule kompiliert werden. Die Module führen verschiedene -Prüfungen und Verifizierungen durch, wenn sie geladen werden.\\ -WARNUNG: Einige der Tests werden das gesamte MTD"=Gerät, das sie testen, LÖSCHEN. -Verwenden Sie diese Tests nicht, wenn Sie nicht wirklich wissen, was Sie tun. - -\subsubsection{Partition parsers \texorpdfstring{$\rightarrow$}{->}} -\textit{(Partitionsparser)} - -\paragraph{Command line partition table parsing}$~$\\ -CONFIG\_MTD\_CMDLINE\_PARTS [=n] \textbf{[~]}\\* -Ermöglicht die generische Konfiguration der MTD"=Partitionstabellen über die Kernel"=Befehlszeile. -Mehrere Flash"=Ressourcen werden für Hardware unterstützt, bei der verschiedene Arten von -Flash"=Speicher verfügbar sind. -Die Parsing"=Funktionen müssen immer noch vom Treiber für Ihr spezielles Gerät aufgerufen werden. -Das wird nicht automatisch geschehen. Der SA1100"=Map"=Treiber (CONFIG\_MTD\_SA1100) verfügt zum -Beispiel über eine entsprechende Option. -Das Format für die Befehlszeile ist wie folgt:\\[0.5em] -\texttt{mtdparts=$<$mtddef$>$[;$<$mtddef]\\ -$<$mtddef$>$ := $<$mtd-id$>$:$<$partdef$>$[,$<$partdef$>$]\\ -$<$partdef$>$ := $<$size$>$[@offset][$<$name$>$][ro]\\ -%$<$mtd-id$>$ := eindeutige Kennung, die bei der Zuordnung von Treiber/Gerät verwendet wird\\ -$<$mtd-id$>$ := eindeutige Kennung für die Zuordnung von Treiber/Gerät\\ -$<$size$>$ := Standard-Linux-Memsize ODER \dq{}-\dq{}, um den verbleibenden Platz zu kennzeichnen\\ -$<$name$>$ := (NAME)}\\[0.5em] -Aufgrund der Art und Weise, wie Linux mit der Kommandozeile umgeht, sind in der Partitionsdefinition -keine Leerzeichen erlaubt, auch nicht in den mtd"=id's und Partitionsnamen.\\ -Beispiele:\\ -1 Flash-Ressource (mtd-id \glqq sa1100\grqq{}), mit 1 einzigen beschreibbaren Partition:\\ -\texttt{mtdparts=sa1100:-}\\ -Gleiches Flash, aber 2 benannte Partitionen, von denen die erste schreibgeschützt ist:\\ -\texttt{mtdparts=sa1100:256k(ARMboot)ro,-(root)}\\ -Wenn Sie unsicher sind, sagen Sie N. - -\paragraph{RedBoot partition table parsing}$~$\\ -CONFIG\_MTD\_REDBOOT\_PARTS [=n] \textbf{[~]}\\* -RedBoot ist ein ROM"=Monitor und Bootloader, der mit mehreren \glqq Images\grqq{} in -Flash"=Geräten umgeht, indem er eine Tabelle in einen der Löschblöcke auf dem Gerät -einfügt, ähnlich einer Partitionstabelle, die die Offsets, Längen und Namen aller im -Flash gespeicherten Images enthält. -Wenn Sie einen Code benötigen, der diese Tabelle erkennt und analysiert und -MTD"=\glqq{}Partitionen\grqq{} entsprechend jedem Bild in der Tabelle registriert, -aktivieren Sie diese Option. -Die Parsing"=Funktionen müssen weiterhin vom Treiber für Ihr spezielles Gerät -aufgerufen werden. Das wird nicht automatisch geschehen. -Der SA1100"=Kartentreiber (CONFIG\_MTD\_SA1100) verfügt beispielsweise über eine -Option für diese Funktion. - -\subsubsection{*** User Modules And Translation Layers ***} -\textit{(Benutzermodule und Übersetzungsschichten)} - -\subsubsection{Caching block device access to MTD devices} -CONFIG\_MTD\_BLOCK [=m] \textbf{[M]}\\* -Obwohl die meisten Flash"=Chips eine zu große Löschgröße haben, um als Blockbausteine nützlich zu sein, -ist es möglich, MTD"=Bausteine, die auf RAM"=Chips basieren, auf diese Weise zu verwenden. -Dieses Blockgerät ist ein Benutzer von MTD"=Geräten, die diese Funktion erfüllen. -Beachten Sie, dass das Mounten eines JFFS2"=Dateisystems nicht die Verwendung von mtdblock erfordert. -Es ist möglich, ein rootfs unter Verwendung des MTD"=Geräts in den \texttt{root=}"=Bootargs als -\texttt{root=mtd2} oder \texttt{root=mtd:name\_of\_device} zu mounten.\\ -Später kann es erweitert werden, um Lese-/Lösch-/Modifizierungs-/Schreibzyklen auf Flash"=Chips -durchzuführen, um eine kleinere Blockgröße zu emulieren. Dies ist natürlich sehr unsicher, könnte aber -für Dateisysteme nützlich sein, auf die fast nie geschrieben wird. -Für die Verwendung mit DiskOnChip"=Geräten benötigen Sie diese Option nicht. Aktivieren Sie für diese -Geräte stattdessen die NFTL"=Unterstützung (CONFIG\_NFTL). - -\paragraph{Readonly block device access to MTD devices}$~$\\ -CONFIG\_MTD\_BLOCK\_RO [=n] \textbf{[~]}\\* -Damit können Sie schreibgeschützte Dateisysteme (wie cramfs) von einem MTD"=Gerät einhängen, ohne den -Overhead (und die Gefahr) des Caching"=Treibers.\\ -Sie benötigen diese Option nicht für die Verwendung mit DiskOnChip"=Geräten. Aktivieren Sie für diese -stattdessen die NFTL"=Unterstützung (CONFIG\_NFTL). - -\subsubsection{*** Note that in some cases UBI block is preferred. See MTD\_UBI\_BLOCK. ***} -\textit{(Beachten Sie, dass in einigen Fällen der UBI"=Block vorzuziehen ist. Siehe MTD\_UBI\_BLOCK.)} - -\subsubsection{FTL (Flash Translation Layer) support} -CONFIG\_FTL [=n] \textbf{[~]}\\* -Dies bietet Unterstützung für den ursprünglichen Flash Translation Layer, der Teil der PCMCIA"=Spezifikation ist. -Es verwendet eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät, um ein Blockgerät mit 512-Byte"=Sektoren zu -emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird.\\ -Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der -freien Welt, in der Softwarepatente nicht legal sind -- in den USA ist es nur erlaubt, diesen Code auf -PCMCIA"=Hardware zu verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den -Code nach Belieben zu kopieren, zu verändern und zu verbreiten. Verwenden Sie ihn einfach nicht. - -\subsubsection{NFTL (NAND Flash Translation Layer) support} -CONFIG\_NFTL [=n] \textbf{[~]}\\* -Dies bietet Unterstützung für den NAND Flash Translation Layer, der auf den DiskOnChip"=Geräten von M"=Systems -verwendet wird. Es verwendet eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät, um ein Blockgerät mit -512-Byte"=Sektoren zu emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird. -Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der -freien Welt, wo Softwarepatente nicht legal sind -- in den USA dürfen Sie diesen Code nur auf -DiskOnChip"=Hardware verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den -Code nach Belieben zu kopieren, zu verändern und zu verteilen. Verwenden Sie ihn einfach nicht. - -\subsubsection{INFTL (Inverse NAND Flash Translation Layer) support} -CONFIG\_INFTL [=n] \textbf{[~]}\\* -Dies bietet Unterstützung für den Inverse NAND Flash Translation Layer, der auf den neueren DiskOnChip"=Geräten -von M"=Systems verwendet wird. Dabei wird eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät verwendet, -um ein Blockgerät mit 512-Byte"=Sektoren zu emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird. -Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der -freien Welt, wo Softwarepatente nicht legal sind -- in den USA dürfen Sie diesen Code nur auf -DiskOnChip"=Hardware verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den Code -nach Belieben zu kopieren, zu verändern und zu verteilen. Verwenden Sie ihn einfach nicht. - -\subsubsection{Resident Flash Disk (Flash Translation Layer) support} -CONFIG\_RFD\_FTL [=n] \textbf{[~]}\\* -Dies bietet Unterstützung für die Flash"=Übersetzungsschicht, bekannt als Resident Flash Disk (RFD), -wie sie vom Embedded BIOS von General Software verwendet wird. Es gibt einen Hinweis unter:\\ -\url{http://www.gensw.com/pages/prod/bios/rfd.htm} - -\subsubsection{NAND SSFDC (SmartMedia) read only translation layer} -CONFIG\_SSFDC [=n] \textbf{[~]}\\* -Dies ermöglicht den Nur-Lese-Zugriff auf SmartMedia"=formatierten NAND"=Flash. -Sie können es mit dem FAT"=Dateisystem mounten. - -\subsubsection{SmartMedia/xD new translation layer} -CONFIG\_SM\_FTL [=n] \textbf{[~]}\\* -Dies ermöglicht EXPERIMENTAL R/W Unterstützung für SmartMedia/xD FTL (Flash translation layer). -Die Schreibunterstützung ist nur leicht getestet, daher wird dieser Treiber nicht für die Verwendung -mit wertvollen Daten empfohlen (wenn Sie wertvolle Daten haben, machen Sie auf jeden Fall Backups, -egal welche Software/Hardware Sie verwenden, denn man weiß nie, was Ihre Daten frisst...) -Wenn Sie nur R/O-Zugriff benötigen, können Sie einen älteren R/O-Treiber verwenden (CONFIG\_SSFDC) - -\subsubsection{Log panic/oops to an MTD buffer} -CONFIG\_MTD\_OOPS [=n] \textbf{[~]}\\* -Dadurch können Panic- und Oops-Meldungen in einem Ringspeicher in einer Flash"=Partition protokolliert -werden, wo sie zu einem späteren Zeitpunkt wieder gelesen werden können. - -\subsubsection{Log panic/oops to an MTD buffer based on pstore} -CONFIG\_MTD\_PSTORE [=m] \textbf{[M]}\\* -Dadurch können Panic- und Oops-Meldungen in einem Ringspeicher in einer Flash"=Partition protokolliert -werden, wo sie nach dem Mounten des pstore"=Dateisystems als Dateien zurückgelesen werden können. -Wenn Sie unsicher sind, sagen Sie N. - -\subsubsection{Swap on MTD device support} -CONFIG\_MTD\_SWAP [=n] \textbf{[~]}\\* -Bietet einen flüchtigen Block"=Gerätetreiber auf der mtd"=Partition, der für Swapping geeignet ist. -Die Zuordnung der geschriebenen Blöcke wird nicht gespeichert. -Der Treiber bietet Verschleißausgleich durch Speicherung des Löschzählers im OOB. - -\subsubsection{Retain master device when partitioned} -CONFIG\_MTD\_PARTITIONED\_MASTER [=y] \textbf{[Y]}\\* -Aus historischen Gründen ist standardmäßig entweder ein Master vorhanden oder mehrere Partitionen, -aber nicht beides. Die Befürchtung war, dass Daten, die in mehreren Partitionen aufgelistet sind, -gefährlich sind; SCSI tut dies jedoch, und es ist häufig für Anwendungen nützlich. Diese Konfigurationsoption -lässt den Master bestehen, auch wenn das Gerät partitioniert ist. Sie macht außerdem das übergeordnete Gerät -der Partition zum Master"=Gerät und nicht das, was hinter dem Master"=Gerät liegt. - -\subsubsection{RAM/ROM/Flash chip drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(RAM/ROM/Flash-Chip-Treiber)} - -\paragraph{Detect flash chips by Common Flash Interface (CFI) probe}$~$\\ -CONFIG\_MTD\_CFI [=n] \textbf{[~]}\\* -Die Common Flash Interface-Spezifikation wurde von Intel, AMD und anderen Flash"=Herstellern entwickelt und -bietet eine universelle Methode zum Testen der Fähigkeiten von Flash"=Geräten. Wenn Sie ein CFI"=kompatibles -Gerät unterstützen möchten, müssen Sie diese Option aktivieren. Weitere Informationen über CFI finden Sie unter -\url{https://www.amd.com/products/nvd/overview/cfi.html}. - -\paragraph{Detect non-CFI AMD/JEDEC-compatible flash chips}$~$\\ -CONFIG\_MTD\_JEDECPROBE [=n] \textbf{[~]}\\* -Diese Option ermöglicht das Sondieren von Flash-Chips im JEDEC-Stil, die nicht mit dem Common Flash Interface -kompatibel sind, verwendet aber für alle identifizierten Chips, die tatsächlich in allen Bereichen außer der -Sondierungsmethode kompatibel sind, die gemeinsamen CFI"=konformen Flash"=Treiber. Dies deckt die meisten -AMD/Fujitsu"=kompatiblen Chips und auch nicht"=CFI"=Intel"=Chips ab. - -\paragraph{Support for RAM chips in bus mapping}$~$\\ -CONFIG\_MTD\_RAM [=n] \textbf{[~]}\\* -Diese Option ermöglicht die grundlegende Unterstützung von RAM"=Chips, auf die über einen -Bus"=Mapping"=Treiber zugegriffen wird. - -\paragraph{Support for ROM chips in bus mapping}$~$\\ -CONFIG\_MTD\_ROM [=m] \textbf{[M]}\\* -Diese Option ermöglicht die grundlegende Unterstützung von ROM"=Chips, auf die über einen -Bus"=Mapping"=Treiber zugegriffen wird. - -\paragraph{Support for absent chips in bus mapping}$~$\\ -CONFIG\_MTD\_ABSENT [=n] \textbf{[~]}\\* -Diese Option aktiviert die Unterstützung für einen Dummy"=Treiber, der zur Zuweisung von -Platzhalter"=MTD"=Geräten auf Systemen mit gesockelten oder austauschbaren Medien verwendet wird. -Die Verwendung dieses Treibers als Fallback"=Chip"=Sonde bewahrt die erwartete -Registrierungsreihenfolge der MTD"=Geräteknoten auf dem System unabhängig vom Vorhandensein von -Medien. Geräteknoten, die mit diesem Treiber erstellt werden, geben beim Zugriff -ENODEV zurück. - -\subsubsection{Mapping drivers for chip access \texorpdfstring{$\rightarrow$}{->}} -\textit{(Abbildung von Treibern für den Chipzugriff)} - -\paragraph{Support non-linear mappings of flash chips}$~$\\ -CONFIG\_MTD\_COMPLEX\_MAPPINGS [=n] \textbf{[~]}\\* -Dies führt dazu, dass die Chiptreiber komplizierte Paged"=Mappings von Flash"=Chips ermöglichen. - -\paragraph{Flash device in physical memory map}$~$\\ -CONFIG\_MTD\_PHYSMAP [=n] \textbf{[~]}\\* -Damit steht ein \glqq Mapping\grqq{}-Treiber zur Verfügung, der es dem NOR"=Flash- und -ROM"=Treibercode ermöglicht, mit Chips zu kommunizieren, die physisch im Speicher der CPU abgebildet sind. -Sie müssen die physikalische Adresse und Größe der Flash"=Chips auf Ihrer speziellen Karte sowie die -Busbreite konfigurieren, entweder statisch mit Konfigurationsoptionen oder zur Laufzeit. -Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{physmap} heißen. - -\paragraph{NOR flash on Intel Vermilion Range Expansion Bus CS0}$~$\\ -CONFIG\_MTD\_INTEL\_VR\_NOR [=n] \textbf{[~]}\\* -Kartentreiber für eine NOR-Flash-Bank, die sich auf dem Erweiterungsbus des Intel Vermilion Range Chipsatzes befindet. - -\paragraph{Map driver for platform device RAM (mtd-ram)}$~$\\ -CONFIG\_MTD\_PLATRAM [=n] \textbf{[~]}\\* -Kartentreiber für RAM-Bereiche, die über das Gerätesystem der Plattform beschrieben werden. -Mit dieser Auswahl wird automatisch der \texttt{map\_ram}-Treiber ausgewählt. - -\subsubsection{Self-contained MTD device drivers \texorpdfstring{$\rightarrow$}{->}} -\textit{(Eigenständige MTD-Gerätetreiber)} - -\paragraph{Ramix PMC551 PCI Mezzanine RAM card support)}$~$\\ -CONFIG\_MTD\_PMC551 [=n] \textbf{[~]}\\* -Dies bietet einen MTD"=Gerätetreiber für die Ramix PMC551 RAM PCI"=Karte von Ramix Inc. -\url{http://www.ramix.com/products/memory/pmc551.html}. -Diese Geräte gibt es in Speicherkonfigurationen von $\qtyrange{32}{1000}{\mebi\byte}$. -Wenn Sie ein solches Gerät haben, sollten Sie dies aktivieren. -Wenn dieser Treiber als Modul kompiliert wird, erhalten Sie die Möglichkeit, die Größe des Blendenfensters, -das in den Speicher des Geräts zeigt, zu wählen. Das bedeutet, dass der Kernel bei einer 1G"=Karte normalerweise -eine 1G"=Speicherabbildung als Ansicht des Geräts verwenden wird. -Als Modul können Sie ein 1M"=Fenster in den Speicher wählen, und der Treiber wird das Fenster um den Speicher -des PMC551 \glqq herumschieben\grqq{}. Dies war besonders bei den 2.2"=Kerneln auf PPC"=Architekturen nützlich, -da der Kernel nur begrenzten Speicherplatz zur Verfügung hatte. - -\paragraph{Support for AT45xxx DataFlash}$~$\\ -CONFIG\_MTD\_DATAFLASH [=n] \textbf{[~]}\\* -Dies ermöglicht den Zugriff auf AT45xxx DataFlash"=Chips über SPI. Manchmal sind DataFlash"=Chips in Karten -im MMC"=Format verpackt; zu diesem Zeitpunkt kann der MMC"=Stack diese nicht verarbeiten. - -\paragraph{Microchip 23K256 SRAM}$~$\\ -CONFIG\_MTD\_MCHP23K256 [=n] \textbf{[~]}\\* -Dies ermöglicht den Zugriff auf Microchip 23K256 SRAM"=Chips über SPI. -Richten Sie Ihre spi"=Geräte mit den richtigen plattenspezifischen Plattformdaten oder einer -Gerätebaumbeschreibung ein, wenn Sie eine Gerätepartitionierung angeben möchten. - -\paragraph{Microchip 48L640 EERAM}$~$\\ -CONFIG\_MTD\_MCHP48L640 [=n] \textbf{[~]}\\* -Dies ermöglicht den Zugriff auf Microchip 48L640 EERAM-Chips über SPI. - -\paragraph{Support SST25L (non JEDEC) SPI Flash chips}$~$\\ -CONFIG\_MTD\_SST25L [=n] \textbf{[~]}\\* -Dies ermöglicht den Zugriff auf die nicht-JEDEC SST25L SPI-Flash-Chips, die für die Programm- und -Datenspeicherung verwendet werden. -Richten Sie Ihre spi-Geräte mit den richtigen plattformspezifischen Daten ein, wenn Sie eine -Gerätepartitionierung festlegen möchten. - -\paragraph{Uncached system RAM}$~$\\ -CONFIG\_MTD\_SLRAM [=n] \textbf{[~]}\\* -Wenn Ihre CPU nicht den gesamten physischen Speicher Ihres Rechners zwischenspeichern kann, können -Sie ihn dennoch als Speicher oder Swap verwenden, indem Sie diesen Treiber verwenden, um ihn dem -System als Memory Technology Device vorzustellen. - -\paragraph{Physical system RAM}$~$\\ -CONFIG\_MTD\_PHRAM [=m] \textbf{[M]}\\* -Dies ist eine Neuimplementierung des obigen \texttt{slram}-Treibers. -Verwenden Sie diesen Treiber, um auf physischen Speicher zuzugreifen, auf den der Kernel selbst -keinen Zugriff hat, also auf Speicher jenseits der \texttt{mem=xxx}-Grenze, nvram, Speicher auf -der Grafikkarte usw... - -\paragraph{Test driver using RAM}$~$\\ -CONFIG\_MTD\_MTDRAM [=m] \textbf{[M]}\\* -Dies aktiviert einen Test"=MTD"=Gerätetreiber, der vmalloc() zur Bereitstellung von Speicher verwendet. -Sie wollen wahrscheinlich N sagen, es sei denn, Sie testen etwas. - -\paragraph{MTDRAM device size in KiB}$~$\\ -CONFIG\_MTDRAM\_TOTAL\_SIZE [=4096] \textbf{[4096]}\\* -Damit können Sie die Gesamtgröße des vom MTDRAM"=Treiber emulierten MTD"=Geräts konfigurieren. -Wenn der MTDRAM"=Treiber als Modul gebaut wurde, ist es auch möglich, dies als Parameter beim -Laden des Moduls anzugeben. - -\paragraph{MTDRAM erase block size in KiB}$~$\\ -CONFIG\_MTDRAM\_ERASE\_SIZE [=128] \textbf{[128]}\\* -Damit können Sie die Größe der Löschblöcke in dem vom MTDRAM"=Treiber emulierten Gerät konfigurieren. -Wenn der MTDRAM"=Treiber als Modul gebaut ist, ist es auch möglich, dies als Parameter beim -Laden des Moduls anzugeben. - -\paragraph{MTD using block device}$~$\\ -CONFIG\_MTD\_BLOCK2MTD [=m] \textbf{[M]}\\* -Mit diesem Treiber kann ein Blockgerät als MTD erscheinen. Er wird im Allgemeinen in den folgenden -Fällen verwendet:\\ -Wenn Sie Compact Flash als MTD verwenden, erscheinen diese dem System normalerweise als ATA"=Laufwerk. -Testen von MTD"=Benutzern (z.~B. JFFS2) auf großen Medien und Medien, die während eines Schreibvorgangs -entfernt werden könnten (Verwendung des Diskettenlaufwerks). - -\paragraph{*** Disk-On-Chip Device Drivers ***}$~$\\ -\textit{Disk-On-Chip-Gerätetreiber} - -\paragraph{M-Systems Disk-On-Chip G3}$~$\\ -CONFIG\_MTD\_DOCG3 [=n] \textbf{[~]}\\* -Dies ist ein MTD"=Gerätetreiber für die M"=Systems DiskOnChip G3"=Geräte. -Der Treiber bietet Zugriff auf G3 DiskOnChip, vertrieben von M"=Systems und jetzt Sandisk. -Die Unterstützung ist sehr experimentell und bietet keinen Zugriff auf Schreiboperationen. - -\subsubsection{NAND \texorpdfstring{$\rightarrow$}{->}} -\textit{(Not AND)} - -\paragraph{OneNAND Device Support ---}$~$\\ -CONFIG\_MTD\_ONENAND [=n] \textbf{[~]}\\* -Dies ermöglicht die Unterstützung des Zugriffs auf alle Arten von OneNAND"=Flash"=Geräten. +%1 %\section{General setup \( \rightarrow \) } +\input{linux_configuration_01_general_setup} +%2 +\input{linux_configuration_02_64-bit_kernel} +%3 +\input{linux_configuration_03_processor_type_and_features} +%4 +\input{linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities} +%5 +\input{linux_configuration_05_power_management_and_acpi_options} +%6 +\input{linux_configuration_06_bus_options} +%7 +\input{linux_configuration_07_binary_emulations} +%8 +\input{linux_configuration_08_virtualization} +%9 +\input{linux_configuration_09_general_architecture-dependent_options} +%10 +\input{linux_configuration_10_enable_loadable_module_support} +%11 +\input{linux_configuration_11_enable_the_block_layer} +%12 +\input{linux_configuration_12_executable_file_formats} +%13 +\input{linux_configuration_13_memory_management_options} +%14 +\input{linux_configuration_14_networking_support} +%15 +\input{linux_configuration_15_device_drivers} \end{document} - -\texorpdfstring{$\rightarrow$}{->} -\textit{Für diese Option gibt es keine Hilfe.} \ No newline at end of file diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex new file mode 100644 index 0000000..6937c30 --- /dev/null +++ b/documentation/linux_configuration_01_general_setup.tex @@ -0,0 +1,1351 @@ +\section{General setup \texorpdfstring{$\rightarrow$}{->}} + +\subsection{Compile also drivers which will not load} +CONFIG\_COMPILE\_TEST [=n] \textbf{[~]}\\ +\textit{Kompilieren Sie auch Treiber, die nicht geladen werden können}\\ +Einige Treiber können auf einer anderen Plattform kompiliert werden als +auf der, für die sie gedacht sind. Obwohl sie dort nicht geladen werden +können (oder selbst wenn sie geladen werden können, können sie aufgrund +fehlender Hardware-Unterstützung nicht verwendet werden), möchten +Entwickler, im Gegensatz zu Distributoren, solche Treiber vielleicht +trotzdem kompilieren und testen. + +\subsection{Compile the kernel with warnings as errors} +CONFIG\_WERROR \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ +\textit{Den Kernel mit Fehlermeldungen bei Warnungen kompilieren}\\ +Ein Build sollte keine Compiler-Warnungen ausgeben, dies aktiviert die +Flags '-Werror' (für C) und '-Dwarnings' (für Rust) um diese Regel +standardmäßig zu setzen. Bestimmte Warnungen von anderen Tools z.~B. der +Linker könnte mit dieser Option Fehler generieren. Deaktivieren ist +sinnvoll, wenn Sie einen neuen (oder sehr alten) Compiler bzw. Linker +mit seltenen, ungewöhnlichen Warnungen haben. Haben Sie auf Ihrer +Architektur Probleme, dann müssen Sie diese Konfiguration deaktivieren, +um den Kernel erfolgreich zu bauen. Im Zweifelsfall sagen sie Y für Ja. +\\\begin{scriptsize} +Für den Laptop wird der Kernel ohne Warnungen kompiliert, ansonsten wird ein Fehler generiert. +\end{scriptsize} + +\subsection{Local version -- append to kernel release} +CONFIG\_LOCALVERSION [=] \textbf{[~]}\\ +\textit{Lokale Version -- an die Kernelversion anhängen}\\ +Type: string\\ +Hängen Sie eine zusätzliche Zeichenkette an das Ende Ihrer Kernelversion +an.\\ +Dies wird angezeigt, wenn Sie z.\,B. \texttt{uname} eingeben. Die hier +angegebene Zeichenfolge wird an den Inhalt von einem Dateinamen mit +\texttt{localverion*} als Objekt und im Quellbaum, in dieser Reihenfolge +angezeigt. Die Zeichenkette darf maximal 64 Zeichen lang sein. + +\subsection{Automatically append version information to the version string} +CONFIG\_LOCALVERSION\_AUTO [=y] \textbf{[Y]}\\ +Dies versucht automatisch festzustellen, ob der aktuelle Baum ein +Release-Tree ist, indem es nach \textbf{Git}-Tags sucht, die zur aktuellen +Top-of-Tree-Revision gehören.\\ +Eine Zeichenkette des Formats \texttt{-gxxxxxxxx} wird der lokalen Version +hinzugefügt, wenn ein git-basierter Baum gefunden wird. Die so erzeugte +Zeichenkette wird nach allen passenden \glqq localversion*\grqq -Dateien +und nach dem in CONFIG\_LOCALVERSION eingestellten Wert angehängt. (Die hier +tatsächlich verwendete Zeichenkette sind die ersten 12 Zeichen, die durch +die Ausführung des Befehls erzeugt werden:\\ +\indent\texttt{\$ git rev-parse --verify HEAD}\\ +der innerhalb des Skripts \glqq scripts/setlocalversion\grqq{} ausgeführt wird.) +\subsection{Build ID Salt} +CONFIG\_BUILD\_SALT [=] \textbf{[~]}\\ +Type: string\\ +Dies wird verwendet, um die Binaries und ihre Debug-Infos zu verknüpfen. +Wenn diese Option gesetzt ist, dann wird dieser Wert in die Berechnung der +Build-ID einbezogen. Wird von Distributionen verwendet, die sicherstellen +wollen, dass es eineindeutige IDs zwischen verschiedenen Builds gibt. +Üblicherweise brauchen wir das nicht. + +\subsection{Kernel compression mode \texorpdfstring{$\rightarrow$}{->}} +Der Linux-Kernel ist eine Art selbstextrahierende, ausführbare Datei. +Es stehen mehrere Kompressionsalgorithmen zur Verfügung, die sich in +Effizienz, Kompressions- und Dekompressionsgeschwindigkeit unterscheiden. +Die Komprimierungsgeschwindigkeit ist nur bei der Erstellung eines Kernels +relevant. Die Dekomprimierungsgeschwindigkeit ist bei jedem Systemstart +von Bedeutung. (Eine ältere Version dieser Funktionalität (nur bzip2) +für 2.4 wurde von Christian Ludwig bereitgestellt) +Hohe Komprimierungsoptionen sind vor allem für Benutzer nützlich, die +wenig Festplattenplatz zur Verfügung haben (embedded systems), für die +aber die Ram-Größe weniger wichtig ist.\\ +Überblick: Gzip werden von den älteren Kernelversionen unterstützt,\\ +Arch Linux (since Linux/x86 5.9.0) Standard: ZSTD (former: XZ since 4.14.4, predecessor GZIP,XZ)\\ +Debian 11.6: XZ\\ +@TODO Weitere Linux Distributionen +\subsubsection{Gzip} +CONFIG\_KERNEL\_GZIP [=n] \textbf{[~]}\\ +Die alte und bewährte gzip-Kompression. Sie bietet ein gutes +Gleichgewicht zwischen Kompressionsrate und +Dekompressionsgeschwindigkeit. +\subsubsection{Bzip2} +CONFIG\_KERNEL\_BZIP2 [=n] \textbf{[~]}\\ +Die Kompressionsrate und auch die Geschwindigkeit der ist durchschnittlich. Die Geschwindigkeit +der Dekomprimierung ist die langsamste. Größe des Kernels ist etwa 10~\% kleiner +im Vergleich zu GZIP. Es benötigt auch einen großen Speicherbereich, bei +modernen Kerneln benötigt man zumindest 8~MB~RAM oder mehr beim Booten. +\subsubsection{LZMA} +CONFIG\_KERNEL\_LZMA [=n] \textbf{[~]}\\ +Dieser Kompressionsalgorithmus hat die höchste Komprimierung. Die Geschwindigkeit der +Dekomprimierung liegt zwischen GZIP und BZIP2. +Komprimierung ist die langsamste. Kernelgröße beträgt etwa 33~\% weniger als mit GZIP. +\subsubsection{XZ} +CONFIG\_KERNEL\_XZ [=n] \textbf{[~]}\\ +XZ verwendet den LZMA2-Algorithmus und befehlssatzspezifische +BCJ-Filter, die das Komprimierungsverhältnis des ausführbaren +Codes verbessern können. Die Größe des Kernels ist mit XZ im +Vergleich zu GZIP etwa 30~\% kleiner. Auf Architekturen, für die +es einen BCJ-Filter gibt (i386, x86\_64, ARM, IA-64, PowerPC und +SPARC), erzeugt XZ einen um einige Prozent kleineren Kernel als +einfaches LZMA. +Die Geschwindigkeit ist in etwa die gleiche wie bei LZMA: Die Dekomprimierungsgeschwindigkeit von +XZ ist besser als die von bzip2, aber schlechter als die von gzip und LZO. +Die Komprimierung ist langsam. +\subsubsection{LZO} +CONFIG\_KERNEL\_LZO [=n] \textbf{[~]}\\ +Kompressionsrate ist die schlechteste aller anderen. Kernelgröße ist etwa 10~\% größer als GZIP. +Jedoch ist die Geschwindigkeit beim Komprimieren und Dekomprimieren die höchste. + +\subsubsection{LZ4} +CONFIG\_KERNEL\_LZ4 [=n] \textbf{[~]}\\ +LZ4 ist eine LZ77-Typ-Komprimierung mit einer festen, byte-orientierten Enkodierung.\\ +Siehe auch \url{http://code.google.com/p/lz4}.\\ +Komprimierungsverhältnis ist noch schlechter als LZO. 8~\% größere Kernelgröße als bei LZO. +Dekomprimierung ist jedoch von der Geschwindigkeit her schneller als LZO. + +\subsubsection{ZSTD} +CONFIG\_KERNEL\_ZSTD [=y] \textbf{[Y]}\\ +ZSTD ist ein Komprimierungsalgorithmus, der auf eine Zwischenkomprimierung +mit schneller Dekomprimierungsgeschwindigkeit abzielt. Er +komprimiert besser als GZIP und dekomprimiert etwa so schnell wie +LZO, ist aber langsamer als LZ4. Sie benötigen mindestens +192~KB~RAM oder mehr zum Booten. Das Kommandozeilenprogramm \texttt{zstd} +ist für die Komprimierung erforderlich. + +\subsection{Default init path} +CONFIG\_DEFAULT\_INIT [=] \textbf{[~]}\\ +Diese Option legt den Standard-Init-Pfad für das System fest, +wenn in der Kernel-Befehlszeile keine solche init=-Option übergeben wird. +Wenn der angeforderte Pfad nicht vorhanden ist, wird trotzdem versucht, +weitere Orte zu finden (z.~B. /sbin/init usw.). Wenn dieser Pfad leer ist, +wird einfach die Fallback-Liste verwendet, wenn init= nicht übergeben wird. + +\subsection{Default hostname} +CONFIG\_DEFAULT\_HOSTNAME [=archlinux] \textbf{[=archlinux]}\\ +Diese Option legt den Standard-Hostnamen des Systems fest, +noch bevor der Userspace das Kommando sethostname(2) aufruft. +Der Kernel verwendet hier traditionell ''(none)'', Sie möchten +vielleicht eine andere Voreinstellung verwenden, um ein minimales +System mit weniger Konfiguration benutzbar zu machen. + +\subsection{System V IPC} +CONFIG\_SYSVIPC [=y] \textbf{[Y]}\\ +Die Inter-Prozess-Kommunikation IPC ist eine Zusammenstellung +aus Bibliotheksfunktionen (libraries) und Systemaufrufen die Prozesse (laufende Programme) +synchronisiert und Daten untereinander austauschen kann. Generell ist das eine gute Sache, +einige Programme würden auch nicht funktionieren wenn Sie hier kein Y (ja) setzen. + +\subsection{POSIX Message Queues} +CONFIG\_POSIX\_MQUEUE [=y] \textbf{[Y]}\\ +Die POSIX-Variante der Nachrichtenwarteschlangen (message queues) ist ein Teil der IPC. +In POSIX-Nachrichtenwarteschlangen hat jede Nachricht eine Priorität, die über die Reihenfolge +des Empfangs durch einen Prozess entscheidet. Wenn Sie Programme kompilieren und ausführen wollen, +die z.~B. für Solaris geschrieben wurden und die POSIX-Warteschlangen (Funktionen mq\_\*) verwenden, +sagen Sie hier Y. +POSIX-Nachrichtenwarteschlangen sind via Dateisystem als \glqq mqueue\grqq{} sichtbar und können irgendwo +eingehängt werden, wenn Sie Dateisystemoperationen auf Nachrichtenwarteschlangen durchführen wollen. + +\subsection{General notification queue} +CONFIG\_WATCH\_QUEUE [=y] \textbf{[Y]}\\ +Dies ist eine allgemeine Benachrichtigungswarteschlange für den Kernel, +um Ereignisse an den Userspace weiterzuleiten, indem sie in Pipes gesplittet werden. +Sie kann in Verbindung mit Watches für Schlüssel-/Schlüsseländerungsbenachrichtigungen (key/keyring) und +Gerätebenachrichtigungen verwendet werden.\\ +Bemerkung: Bei Debian Bullseye ist dies nicht gesetzt (N). + +\subsection{Enable process\_vm\_readv/writev\ syscalls} +CONFIG\_CROSS\_MEMORY\_ATTACH [=y] \textbf{[Y]}\\ +Die Aktivierung dieser Option fügt die Systemaufrufe process\_vm\_readv und +process\_vm\_writev hinzu, die es einem Prozess mit den richtigen Rechten ermöglichen, +direkt aus dem Adressraum eines anderen Prozesses zu lesen oder in diesen zu schreiben. +Weitere Einzelheiten finden Sie in der Manpage. + +\subsection{uselib syscall (for libc5 and earlier)} +CONFIG\_USELIB [=n] \textbf{[N]}\\ +Diese Option schaltet den uselib-Systemaufruf ein, der im dynamic-Linker von libc5 und früher verwendet wird. +Das aktuelle glibc verwendet diesen Systemaufruf nicht mehr, deshalb kann man diese Option +ausschalten wenn sie +keine Programme mehr verwenden, die auf libc5 (oder früher) compiliert wurden.\\ +Bemerkung: Debian Bullseye verwendet dies noch (Y). + +\subsection{Auditing support} +CONFIG\_AUDIT [=y] \textbf{[Y]}\\ +Aktivieren Sie eine Überwachungsinfrastruktur, die mit einem anderen Kernel-Subsystem +verwendet werden kann, wie z.~B. SELinux (das dies für die Protokollierung der Ausgabe +von avc-Nachrichten benötigt). Die Systemaufrufüberprüfung ist auf Architekturen, +die sie unterstützen, enthalten. + +\subsection{IRQ subsystem \texorpdfstring{$\rightarrow$}{->}} +Über diese Schnittstelle kann man Funktionen und Parameter für den +Kernelbau auswählen. +Merkmale können entweder eingebaut, modularisiert oder ignoriert werden. +Parameter müssen als dezimale oder hexadezimale Zahlen oder als Text eingegeben +werden. + +\subsubsection{Expose irq internals in debugfs} +CONFIG\_GENERIC\_IRQ\_DEBUGFS [=n] \textbf{[N]}\\ +Legt interne Zustandsinformationen über debugfs offen. +Hauptsächlich für Entwickler und zur Fehlersuche bei schwer +zu diagnostizierenden Interrupt-Problemen. + +\subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}} +\subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}} +Sie müssen aus den folgenden drei Möglichkeiten eine wählen: +\paragraph{Periodic timer ticks (constant rate, no dynticks)} $~$ \\ +CONFIG\_HZ\_PERIODIC [=n] \textbf{[N]}\\ +Diese Option sorgt dafür, dass der Tick periodisch mit einer konstanten Rate läuft, +auch wenn die CPU ihn nicht braucht. +\paragraph{Idle dynticks system (tickless idle)} $~$ \\ +CONFIG\_NO\_HZ\_IDLE [=n] \textbf{[N]}\\ +Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem): +Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im +Leerlauf ist. Dies ist v.a. zum Energiesparen interessant. +\paragraph{Full dynticks system (tickless)} $~$ \\ +CONFIG\_NO\_HZ\_FULL [=y] \textbf{[Y]}\\ +Diese Option ermöglicht ein tickloses idle-System (Leerlaufsystem): +Timer-Interrupts werden nur bei Bedarf ausgelöst, wenn das System im +Leerlauf ist. Dies ist v.a. zum Energiesparen interessant.\\ +Wird bei Linux-Distributionen ausgewählt. + +\subsubsection{Force user context tracking} +CONFIG\_CONTEXT\_TRACKING\_USER\_FORCE [=n] \textbf{[N]}\\ +Die wichtigste Voraussetzung für das Funktionieren von Full-Dynticks ist die +Unterstützung des Subsystems zur Verfolgung des Benutzerkontextes. +Es gibt aber auch noch andere Abhängigkeiten, die erfüllt werden müssen, damit +die vollständigen Dynticks funktionieren.\\ +Diese Option dient zum Testen, wenn eine Systemarchitektur das Backend für die +Benutzerkontextverfolgung implementiert, aber noch nicht alle Anforderungen erfüllt, +um die volle Dynticks-Funktion zu ermöglichen. +Ohne die vollständigen Dynticks gibt es keine Möglichkeit, +die Unterstützung für die Benutzerkontextverfolgung und die Teilsysteme, +die darauf angewiesen sind, zu testen: RCU Userspace extended quiescent state +und tickless cputime accounting. Diese Option kommt mit dem Fehlen des vollständigen +dynticks-Subsystems zurecht, indem sie die Benutzerkontextverfolgung auf +allen CPUs im System erzwingt. + +Sagen Sie nur dann ja (Y), wenn Sie an der Entwicklung eines Architektur-Backends +für die Benutzerkontextverfolgung arbeiten. +Sagen Sie ansonsten N, da diese Option einen Overhead mit sich bringt, den Sie in +der Praxis nicht haben wollen. + +\subsubsection{Old Idle dynticks config} +CONFIG\_NO\_HZ \colorbox{yellow!80}{[=y] \textbf{[N]}}\\* +\textit{Alte Leerlauf-Dynticks-Konfiguration}\\ +Dies ist der alte Konfigurationseintrag, der Dynticks im Leerlauf aktiviert. +\sout{Wir behalten ihn noch eine Weile bei, um die Abwärtskompatiblität mit älteren +Konfigurations\-dateien zu gewähr\-leisten.} +\\\begin{scriptsize} + Alte Dynticks-Konfiguration wird nicht mehr unterstützt. +\end{scriptsize} + +\subsubsection{High Resolution Timer Support} +CONFIG\_HIGH\_RES\_TIMERS [=y] \textbf{[Y]}\\ +\textit{Unterstützung von Timern mit hoher Auflösung}\\ +Diese Option aktiviert die Unterstützung hochauflösender Timer. +Wenn ihre Hardware dazu nicht in der Lage ist, erhöht diese +Option nur die Größe des Kernel-Images. + +\subsubsection{Clocksource watchdog maximum allowable skew} +CONFIG\_CLOCKSOURCE\_WATCHDOG\_MAX\_SKEW\_US [=100] \textbf{[100]}\\ +\textit{Maximal zulässige Abweichung der Watchdog-Taktquelle}\\ +Geben Sie den maximal zulässigen Wert für den Watchdog-Versatz +in Mikrosekunden an, bevor die Clocksource als instabil gemeldet wird. +Der Standardwert basiert auf einem Watchdog-Intervall von einer halben +Sekunde und der maximalen Frequenzdrift von NTP von 500 Teilen pro Million. +Wenn die Clocksource gut genug für NTP ist, ist sie auch gut genug +für den Watchdog der Clocksource!\\ +Bereich (Range): 50 -- 1000 + +\subsection{BPF subsystem \texorpdfstring{$\rightarrow$}{->}} +Berkeley Packet Filter, Firewall-Filtertechnik im Kernel + +\subsubsection{Enable bpf() system call} +CONFIG\_BPF\_SYSCALL [=y] \textbf{[Y]}\\ +Aktivieren Sie den Systemaufruf bpf(), der es ermöglicht, +BPF-Programme und -Maps über Dateideskriptoren zu manipulieren. + +\subsubsection{Enable BPF Just In Time compiler} +CONFIG\_BPF\_JIT [=y] \textbf{[Y]}\\ +BPF-Programme werden normalerweise von einem BPF-Interpreter verarbeitet. +Diese Option ermöglicht es dem Kernel, nativen Code zu erzeugen, +wenn ein Programm in den Kernel geladen wird. Dadurch wird die Verarbeitung +von BPF-Programmen erheblich beschleunigt.\\ +Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em] +\indent\texttt{/proc/sys/net/core/bpf\_jit\_enable}\\ +\indent\texttt{/proc/sys/net/core/bpf\_jit\_harden (optional)}\\ +\indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)} + +\paragraph{Permanently enable BPF JIT and remove BPF interpreter}$~$\\ +CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\ +Aktiviert BPF JIT und entfernt den BPF-Interpreter um spekulative Ausführungen +von BPF-An\-wei\-sun\-gen durch den Interpreter zu verhindern. +Wenn CONFIG\_BPF\_JIT\_ALWAYS\_ON eingeschaltet ist, dann wird +\texttt{/proc/sys/net/core/bpf\_jit\_enable} permanent auf 1 gesetzt, alle +Versuche diese Einstellung auf andere Werte zu legen wird mit einem Fehler +zurückgewiesen. +\subsubsection{Disable unprivileged BPF by default} +CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF [=y] \textbf{[Y]}\\ +Deaktiviert die unprivilegierte BPF standardmäßig, indem der entsprechende Eintrag\\ +\texttt{/proc/sys/kernel/unprivileged\_bpf\_disabled} auf 2 gesetzt wird. +Ein Administrator kann sie immer noch wieder aktivieren, +indem er sie später auf 0 setzt, oder sie dauerhaft deaktiviert, indem +er sie auf 1 setzt (von wo aus kein weiterer Übergang auf 0 mehr möglich ist).\\ +Unprivilegierte BPF könnte verwendet werden, um bestimmte potenzielle Seitenkanalschwachstellen +für spekulative Ausführung auf nicht gemilderter betroffener Hardware auszunutzen. +Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y. +\subsubsection{Preload BPF file system with kernel specific program + and map iterators \texorpdfstring{$\rightarrow$}{->}} +BPF\_PRELOAD [=n] \textbf{[N]}\\ +Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen erstellt, +die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt +eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF-Programmen +und -Maps nützlich ist. +\paragraph{bpf\_preload kernel module\\} $~$ \\ +\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\ +CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[~]}\\ +Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen +erstellt, die als für den Menschen lesbare Dateien in den BPF-FS-Einhängepunkt eingefügt werden, +was bei der Fehlersuche und der Untersuchung von BPF-Programmen und -Maps nützlich ist. +\subsubsection{Enable BPF LSM Instrumentation} +CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\ +Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Implementierung dynamischer +MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten +sollten, antworten Sie mit N. +\subsection{Preemption Model (Preemptible Kernel (Low-Latency Desktop)) \texorpdfstring{$\rightarrow$}{->}} + +Eingestellt auf : Low-Latency, d.~h. nur kleine Verzögerungen beim Modell des Multitaskings. +Es gibt drei Einstellungen: +\subsubsection{No Forced Preemption (Server)} +CONFIG\_PREEMPT\_NONE [=n] \textbf{[N]}\\ +Das war das traditionelle Linux Modell der Unterbrechungen, das sich auf den Durchsatz konzentrierte. +Wird vor allem für den Server-Einsatz verwendet. Es gibt durchaus gute Performance für die Latenz, jedoch +keine Garantie dafür und es kann zu zufälligen, längeren Verzögerungszeiten kommen. + +Für einen Serverbetrieb wird diese Einstellung empfohlen, damit der maximale Durchsatz an Rechenleistung +entsteht. +\subsubsection{Voluntary Kernel Preemption (Desktop)} +CONFIG\_PREEMPT\_VOLUNTARY [=n] \textbf{[N]}\\ +Diese Einstellung reduziert die Latenz des Kernels durch zusätzliche \glqq explizite Unterbrechungspunkte\glqq{} +im Kernel. +Diese neuen Unterbrechungspunkte wurden ausgewählt, um die maximale Latenz beim neuerlichen Zuordnen +des Schedulers zu reduzieren und dadurch schnelle Reaktionszeiten der Applikationen zu gewährleisten. -- +Auf Kosten eines geringeren Durchsatzes wird dies erreicht. +\subsubsection{Preemptible Kernel (Low-Latency Desktop)} +CONFIG\_PREEMPT [=y] \textbf{[Y]}\\ +Bei dieser Einstellung wird die Latenz des Kernels weiter erniedrigt indem der gesamte Code des Kernels +(keine kritischen, geschützten Bereiche) unterbrechbar gemacht wird. Dadurch wird ein reibungsloses +Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast. +Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit einer Latenz im +Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an +Rechenleistung einher. +\subsection{Preemtion behaviour defined on boot} +CONFIG\_PREEMPT\_DYNAMIC [=y] \textbf{[Y]}\\ +Diese Option ermöglicht es, das Präemptionsmodell über den +Kernel-Kommandozeilenparameter zu definieren und damit das +während der Kompilierung definierte Standard-Präemptionsmodell +außer Kraft zu setzen. +Diese Funktion ist vor allem für Linux-Distributionen +interessant, die eine vorgefertigte Kernel-Binärdatei +bereitstellen, um die Anzahl der angebotenen Kernel-Varianten +zu reduzieren und dennoch verschiedene Anwendungsfälle zu +ermöglichen. + +Der Laufzeit-Overhead ist vernachlässigbar, wenn +HAVE\_STATIC\_CALL\_INLINE aktiviert ist, aber wenn Laufzeit-Patching +für die spezifische Architektur nicht verfügbar ist, +sollte der potenzielle Overhead in Betracht gezogen werden. +Interessant wird es, wenn derselbe vorgefertigte Kernel +sowohl für Server- als auch für Desktop-Workloads verwendet +werden soll. +\subsection{Core Scheduling for SMT} +CONFIG\_SCHED\_CORE [=y] \textbf{[Y]}\\ +Kern-Scheduling für SMT + +Diese Option ermöglicht Core Scheduling, ein Mittel zur +koordinierten Auswahl von Aufgaben zwischen SMT-Geschwistern. +Wenn diese Option aktiviert ist - siehe prctl +(PR\_SCHED\_CORE) + - stellt die Aufgabenauswahl sicher, dass alle SMT-Geschwister +eine Aufgabe aus der gleichen \glqq Kerngruppe\grqq{} ausführen und +den Leerlauf erzwingen, wenn keine passende Aufgabe gefunden +wird. +Diese Funktion wird unter anderem verwendet: + +- Entschärfung einiger (nicht aller) SMT-Seitenkanäle; + +- Begrenzung der SMT-Interferenz zur Verbesserung des Determinismus und/oder der Leistung.\\ +SCHED\_CORE ist standardmäßig deaktiviert. Wenn es aktiviert und unbenutzt ist, was +bei Linux-Distributionen wahrscheinlich der Fall ist, +sollte es keine messbaren Auswirkungen auf die Leistung +haben. + +\subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}} + +\subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}} +\paragraph{Full dynticks CPU time accounting} $~$\\ +CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um die Berechnung der Task- und CPU-Zeit auf +Full-Dynticks-Systemen zu aktivieren. +Diese Berechnung wird durch die Überwachung aller Kernel-Benutzer-Grenzen mithilfe des +Kontextverfolgungs-Subsystems implementiert.\\ +Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\ +Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen +Dynticks-Subsystems arbeiten. + +\subsubsection{Fine granularity task level IRQ time accounting} +CONFIG\_IRQ\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\ +Wählen Sie diese Option aus, um eine fein granulare Berechnung der +Task-Irq-Zeit zu aktivieren. +Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang +zwischen dem softirq- und dem hardirq-Zustand, so dass es zu geringen +Leistungseinbußen kommen kann.\\ +Im Zweifelsfall sagen Sie hier N für Nein. + +\subsubsection{BSD Process Accounting} +CONFIG\_BSD\_PROCESS\_ACCT [=y] \textbf{[Y]}\\ +Wenn Sie hier Y (für Ja) angeben, kann ein Programm auf Benutzerebene den Kernel +(über einen speziellen Systemaufruf) anweisen, Prozessabrechnungsinformationen +in eine Datei zu schreiben: Jedes Mal, wenn ein Prozess beendet wird, werden +Informationen über diesen Prozess vom Kernel an die Datei angehängt. +Die Informationen beinhalten Dinge wie die Erstellungszeit, den besitzenden +Benutzer, den Befehlsnamen, den Speicherverbrauch, das kontrollierende Terminal +usw. (die vollständige Liste kann in der acct-Struktur in +\textless{}file:include/linux/acct.h\textgreater{} gefunden werden). +Es obliegt dem Programm auf Benutzerebene, nützliche Dinge mit diesen +Informationen zu tun. Dies ist im Allgemeinen eine gute Idee, also sagen +Sie Y für Ja. + +\paragraph{BSD Process Accounting version 3 file format} $~$\\ +CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\ +Wenn Sie hier Y (für Ja) angeben, werden die Prozessabrechnungsinformationen +in ein neues Dateiformat geschrieben, das auch die Prozess-IDs der einzelnen +Prozesse und ihrer Eltern protokolliert. Beachten Sie, dass dieses +Dateiformat nicht mit den früheren v0/v1/v2-Dateiformaten kompatibel ist, +so dass Sie aktualisierte Werkzeuge für die Verarbeitung benötigen. +Eine vorläufige Version dieser Werkzeuge ist unter +\url{http://www.gnu.org/software/acct/} verfügbar. + +\subsubsection{Export task/process statistics through netlink} +CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\ +Export ausgewählter Statistiken für Aufgaben/Prozesse über die generische +Netlink-Schnittstelle. Im Gegensatz zur BSD-Prozessabrechnung sind die +Statistiken während der Lebensdauer von Auf\-gaben/Pro\-zes\-sen als Antwort auf +Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in +den Benutzerbereich gesendet.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\paragraph{Enable per-task delay accounting} $~$\\ +CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\ +Sammeln Sie Informationen über die Zeit, die eine Task für das Warten auf +Systemressourcen wie CPU, synchrone Block-E/A-Abwicklung und Auslagerung +von Seiten aufwendet. Solche Statistiken können bei der Festlegung der +Prioritäten eines Tasks im Verhältnis zu anderen Tasks für CPU-, IO-, +RSS-Limits usw. helfen.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\paragraph{Enable extended accounting over taskstats}$~$\\ +CONFIG\_TASK\_XACCT [=y] \textbf{[Y]}\\ +Sammeln von erweiterten Task-Accounting-Daten und Senden der Daten an +das Userland zur Verarbeitung über die Taskstats-Schnittstelle.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subparagraph{Enable per-task storage I/O accounting}$~$\\ +CONFIG\_TASK\_IO\_ACCOUNTING [=y] \textbf{[Y]}\\ +Sammeln von Informationen über die Anzahl +der Bytes an Speicher-E/A, die dieser Task verursacht hat.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Pressure stall information tracking} +CONFIG\_PSI [=y] \textbf{[Y]}\\ +Sammeln Sie Metriken, die anzeigen, wie überlastet die CPU-, Speicher- +und IO-Ka\-pa\-zi\-tät im System sind. + +Wenn Sie hier Y angeben, erstellt der Kernel /proc/pressure/ mit die +Druckstatistikdateien cpu, memory und io. Diese zeigen den Anteil der +Walltime an, in dem einige oder alle Tasks im System aufgrund der +Beanspruchung der jeweiligen Ressource verzögert sind. + +In Kerneln mit cgroup-Unterstützung verfügen cgroups (nur cgroup2) über +cpu.pressure-,\\* +memory.pressure- und io.pressure-Dateien, die nur die +Druckstaus für die gruppierten Aufgaben zusammenfassen.\\ +Weitere Einzelheiten finden Sie unter Documentation/accounting/psi.rst.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\ +CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\ +Wenn diese Option gesetzt ist, ist die Verfolgung von Druck\-stau\-informationen +standardmäßig deaktiviert, kann aber durch die Übergabe von psi=1 auf der +Kernel-Befehlszeile beim Booten aktiviert werden.\\ +Diese Funktion fügt dem Task-Wakeup- und Sleep-Pfad des Schedulers etwas Code hinzu. +Der Overhead ist zu gering, um gängige planungsintensive Arbeitslasten in der Praxis +zu beeinträchtigen (z.~B. Web\-server, Memcache), aber es zeigt sich in künstlichen +Scheduler-Stresstests, wie z.~B. Hackbench.\\ +Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird, +sagen Sie Y für Ja.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsection{CPU isolation} +CONFIG\_CPU\_ISOLATION [=y] \textbf{[Y]}\\ +Stellen Sie sicher, dass CPUs, auf denen kritische Aufgaben laufen, +nicht durch irgendwelche \glqq Störquellen\grqq{} wie ungebundene Workqueues, Timers, +kthreads usw. gestört werden.\\ +Ungebundene Aufgaben werden auf Housekeeping-CPUs verlagert. +Dies wird durch den Boot-Parameter \glqq isolcpus=\grqq{} gesteuert.\\ +Sagen Sie Y für ja, wenn Sie unsicher sind. + +\subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}} +Read -- Copy -- Update (Lesen, Kopieren, Aktualisieren) +\subsubsection{Make expert-level adjustments to RCU configuration} +CONFIG\_RCU\_EXPERT [=y] \textbf{[Y]}\\ +Diese Option muss aktiviert werden, wenn Sie Anpassungen der RCU-Konfiguration +auf Expertenebene vornehmen möchten. +Standardmäßig können solche Anpassungen nicht vorgenommen werden, +was den oft vorteilhaften Nebeneffekt hat, dass \glqq make oldconfig\grqq{} Sie +davon abhält, alle möglichen detaillierten Fragen darüber zu stellen, +wie Sie zahlreiche obskure RCU-Optionen eingerichtet haben möchten.\\ +Sagen Sie Y, wenn Sie Anpassungen an RCU auf Expertenebene vornehmen müssen.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Force selection of TASKS\_RCU} +CONFIG\_FORCE\_TASKS\_RCU [=n] \textbf{[N]}\\ +Diese Option erzwingt eine aufgabenbasierte RCU-Implementierung die nur +freiwillige Kontextwechsel verwendet (keine Preemption!), Leerlauf und +Benutzermodus-Ausführung als Ruhezustände verwendet. +Nicht für manuelle Auswahl in den meisten Fällen. + +\subsubsection{Force selection of Tasks Rude RCU} +CONFIG\_FORCE\_TASKS\_RUDE\_RCU [=n] \textbf{[N]}\\ +Diese Option erzwingt eine Task-basierte RCU-Implementierung, die nur +Kontextwechsel (einschließlich Preemption) und die Ausführung im +Benutzermodus als Ruhezustand verwendet. Sie erzwingt IPIs und +Kontextwechsel auf allen Online-CPUs, auch auf den Idle-CPUs, also +mit Vorsicht verwenden. +In den meisten Fällen nicht für die manuelle Auswahl geeignet. + +\subsubsection{Force selection of Tasks Trace RCU} +CONFIG\_FORCE\_TASKS\_TRACE\_RCU [=n] \textbf{[N]}\\ +Diese Option ermöglicht eine Task-basierte RCU-Implementierung, die +explizite rcu\_read\_lock\_trace()-Lesemarker verwendet und es ermöglicht, +dass diese Leser sowohl in der Leerlaufschleife als auch in den +CPU-Hotplug-Codepfaden erscheinen. Es kann IPIs auf Online-CPUs erzwingen, +auch auf Idle-CPUs, also mit Vorsicht verwenden. +In den meisten Fällen nicht für die manuelle Auswahl geeignet. + +\subsubsection{Tree-based hierarchical RCU fanout value} +CONFIG\_RCU\_FANOUT [=64] \textbf{[64]}\\ +Diese Option steuert den Fanout von hierarchischen Implementierungen von +RCU, so dass RCU auf Maschinen mit einer großen Anzahl von CPUs effizient +arbeiten kann. Dieser Wert muss mindestens die vierte Wurzel von NR\_CPUS +sein, wodurch NR\_CPUS wahnsinnig groß werden kann. Der Standardwert von +RCU\_FANOUT sollte für Produktionssysteme verwendet werden, aber wenn Sie +die RCU-Implementierung selbst einem Stresstest unterziehen, ermöglichen +kleine RCU\_FANOUT-Werte das Testen von Codepfaden für große Systeme auf +kleinen (kleineren) Systemen.\\ +Wählen Sie eine bestimmte Zahl, wenn Sie RCU selbst testen. +Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ +Symbol: RCU\_FANOUT [=64]\\ +Type : integer (Ganzzahl)\\ +Bereich (range) : [2 64] + +\subsubsection{Tree-based hierarchical RCU leaf-level fanout value} +CONFIG\_RCU\_FANOUT\_LEAF [=16] \textbf{[16]}\\ +Diese Option steuert das Fanout auf Blattebene bei hierarchischen +Implementierungen von RCU und ermöglicht es, Cache-Misses gegen +Sperrkonflikte abzuwägen. Systeme, die ihre Scheduling"=Clock"=Interrupts +aus Gründen der Energieeffizienz synchronisieren, werden die +Standardeinstellung bevorzugen, da der kleinere Leaf-Level-Fanout die +Lock-Contention-Level akzeptabel niedrig hält. Sehr große Systeme +(Hunderte oder Tausende von CPUs) werden stattdessen diesen Wert auf den +maximal möglichen Wert setzen wollen, um die Anzahl der Cache-Misses zu +reduzieren, die während der Initialisierung der RCU-Grace-Periode auftreten. +Diese Systeme neigen dazu, CPU-gebunden zu laufen, und werden daher nicht +von synchronisierten Interrupts unterstützt, und neigen daher dazu, sie zu +verzerren, was den Sperrkonflikt so weit reduziert, dass große Fanouts auf +Blattebene gut funktionieren. Das heißt, wenn Sie den Fanout auf Blattebene +auf eine große Zahl setzen, wird dies wahrscheinlich zu problematischen +Sperrkonflikten auf den rcu\_node-Strukturen auf Blattebene führen, es sei +denn, Sie booten mit dem Kernelparameter skew\_tick.\\ +Wählen Sie eine bestimmte Zahl, wenn Sie die RCU selbst testen.\\ +Wählen Sie den maximal zulässigen Wert für große Systeme, aber bedenken Sie, +dass Sie möglicherweise auch den Kernel-Boot-Parameter skew\_tick setzen +müssen, um Konflikte bei den Sperren der rcu\_node-Strukturen zu vermeiden. +Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ +Symbol: RCU\_FANOUT\_LEAF [=64]\\ +Type : integer (Ganzzahl)\\ +Bereich (range) : [2 64] + +\subsubsection{Enable RCU priority boosting} +CONFIG\_RCU\_BOOST [=y] \textbf{[Y]}\\ +Diese Option erhöht die Priorität von preemptierten RCU-Lesern, die +die aktuelle preemptible RCU-Schonfrist zu lange blockieren. +Diese Option verhindert auch, dass schwere Lasten den Aufruf von RCU-Callbacks +blockieren.\\ +Geben Sie hier Y an, wenn Sie mit Echtzeitanwendungen oder großen Lasten arbeiten.\\ +Sagen Sie hier N ein, wenn Sie unsicher sind. + +\paragraph{Milliseconds to delay boosting after RCU grace-period start}$~$\\ +CONFIG\_RCU\_BOOST\_DELAY [=500] \textbf{[500]}\\ +Diese Option gibt die Zeit an, die nach dem Beginn einer bestimmten Karenzzeit +gewartet werden soll, bevor die Priorität von RCU-Lesern, die diese Karenzzeit +blockieren, erhöht wird.\\ +Beachten Sie, dass jeder RCU-Leser, der eine beschleunigte RCU-Schonfrist +blockiert, sofort hochgestuft wird.\\ +Akzeptieren Sie die Standardeinstellung, wenn Sie unsicher sind.\\ +Symbol: RCU\_BOOST\_DELAY [=500]\\ +Typ : Integer (Ganzzahl)\\ +Bereich : [0 3000] + +\paragraph{Perform RCU expedited work in a real-time kthread}$~$\\ +CONFIG\_RCU\_EXP\_KTHREAD [=n] \textbf{[N]}\\ +Verwenden Sie diese Option, um die Latenzzeiten der beschleunigten Neuheitsschonfristen +weiter zu reduzieren, was allerdings mit mehr Störungen verbunden ist. +Diese Option ist standardmäßig auf PREEMPT\_RT=y-Kerneln deaktiviert, +die beschleunigte Neuheitsschonfristen nach dem Booten durch die bedingungslose +Einstellung rcupdate.rcu\_normal\_after\_boot=1 deaktivieren.\\ +Akzeptieren Sie die Voreinstellung, wenn Sie unsicher sind. + +\subsubsection{Offload RCU callback processing from boot-selected CPUs} +CONFIG\_RCU\_NOCB\_CPU [=y] \textbf{[Y]}\\ +Verwenden Sie diese Option, um den Jitter des Betriebssystems für aggressive HPC- oder +Echtzeit-Workloads zu reduzieren. +Sie kann auch verwendet werden, um RCU-Callback-Aufrufe auf energieeffiziente CPUs in +batteriebetriebenen asymmetrischen Multiprozessoren auszulagern. Der Preis für diesen +reduzierten Jitter ist, dass der Overhead von call\_rcu() ansteigt und dass bei einigen +Workloads ein erheblicher Anstieg der Kontextwechselraten zu verzeichnen ist.\\ +Diese Option entlastet den Aufruf von Callbacks von der Gruppe von CPUs, die zur +Boot-Zeit durch den rcu\_nocbs-Parameter angegeben wird. Für jede dieser CPUs wird ein +kthread (\glqq rcuox/N\grqq{}) erstellt, um Callbacks aufzurufen, wobei \glqq N\grqq{} die CPU ist, die +entlastet wird, und wobei \glqq x\grqq{} \glqq p\grqq{} für RCU-preempt +(PREEMPTION-Kernel) und \glqq s\grqq{} für +RCU-sched (!PREEMPTION-Kernel) ist. Nichts hindert diesen kthread daran, auf den +angegebenen CPUs zu laufen, aber (1) die kthreads können zwischen jedem Callback +preempted werden, und (2) Affinität oder cgroups können verwendet werden, um die +kthreads zu zwingen, auf jeder gewünschten Gruppe von CPUs zu laufen.\\ +Sagen Sie hier Y, wenn Sie trotz des zusätzlichen Overheads ein geringeres +OS-Jitter benötigen.\\ +Sagen Sie hier N, wenn Sie unsicher sind. + +\paragraph{Offload RCU callback processing from all CPUs by default}$~$\\ +CONFIG\_RCU\_NOCB\_CPU\_DEFAULT\_ALL [=n] \textbf{[N]}\\ +Verwenden Sie diese Option, um die Callback-Verarbeitung standardmäßig von allen +CPUs zu entlasten, wenn der Boot-Parameter rcu\_nocbs oder nohz\_full nicht vorhanden +ist. Dadurch wird auch die Notwendigkeit vermieden, Boot-Parameter zu verwenden, um +den Effekt der Entlastung aller CPUs beim Booten zu erreichen.\\ +Geben Sie hier Y an, wenn Sie alle CPUs standardmäßig beim Booten entlasten wollen.\\ +Sagen Sie hier N, wenn Sie sich nicht sicher sind. + +\paragraph{Offload RCU callback from real-time kthread}$~$\\ +CONFIG\_RCU\_NOCB\_CPU\_CB\_BOOST [=n] \textbf{[N]}\\ +Verwenden Sie diese Option, um ausgelagerte Rückrufe als SCHED\_FIFO aufzurufen, um +ein Aushungern durch schwere SCHED\_OTHER-Hintergrundlast zu vermeiden. Natürlich +führt die Ausführung als SCHED\_FIFO während Callback Floods dazu, dass die rcuo[ps] +kthreads die CPU für Hunderte von Millisekunden oder mehr monopolisieren. +Wenn Sie diese Option aktivieren, müssen Sie daher sicherstellen, dass +latenzempfindliche Aufgaben entweder mit höherer Priorität oder auf einer anderen CPU +ausgeführt werden.\\ +Geben Sie hier Y an, wenn Sie die RT-Priorität für die Auslagerung von kthreads +festlegen möchten.\\ +Sagen Sie hier N, wenn Sie einen !PREEMPT\_RT-Kernel bauen und sich unsicher sind. + +\subsubsection{Tasks Trace RCU readers use memory barriers in user and idle} +CONFIG\_TASKS\_TRACE\_RCU\_READ\_MB [=n] \textbf{[N]}\\ +Verwenden Sie diese Option, um die Anzahl der IPIs (inter-processor interrupts), +die an CPUs gesendet werden, +die im Benutzerraum ausgeführt werden oder sich im Leerlauf befinden, während Tasks +RCU-Tilgungsfristen verfolgen, weiter zu reduzieren. +Da eine vernünftige Einstellung des Kernel-Boot-Parameters +rcupdate.rcu\_task\_ipi\_delay solche IPIs für viele Arbeitslasten eliminiert, ist +die richtige Einstellung dieser Kconfig-Option vor allem für aggressive +Echtzeitinstallationen und für batteriebetriebene Geräte wichtig, daher die oben +gewählte Standardeinstellung.\\ +Sagen Sie hier Y, wenn Sie IPIs hassen.\\ +Sagen Sie hier N, wenn Sie leseseitige Speicherbarrieren hassen.\\ +Nehmen Sie die Standardeinstellung, wenn Sie unsicher sind. + +\subsubsection{RCU callback lazy invocation functionality} +CONFIG\_RCU\_LAZY [=y] \textbf{[Y]}\\ +Um Strom zu sparen, sollten Sie RCU-Rückrufe stapeln und nach einer Verzögerung, +einem Speicherdruck oder einer zu großen Rückrufliste flushen. + +\subsubsection{RCU callback-batch backup time check} +CONFIG\_RCU\_DOUBLE\_CHECK\_CB\_TIME [=y] \textbf{[Y]}\\ +Verwenden Sie diese Option, um eine präzisere Durchsetzung des Modulparameters +rcutree.rcu\_resched\_ns in Situationen zu ermöglichen, in denen ein einziger +RCU-Callback Hunderte von Mikrosekunden lang laufen könnte, wodurch die +32-Callback-Batching-Funktion, die verwendet wird, um die Kosten der feinkörnigen, +aber teuren local\_clock()-Funktion zu amortisieren, unterlaufen wird.\\ +Diese Option rundet rcutree.rcu\_resched\_ns auf den nächsten Jiffy auf und setzt +die 32-Callback-Batching-Funktion außer Kraft, wenn diese Grenze überschritten wird.\\ +Sagen Sie hier Y, wenn Sie eine strengere Durchsetzung des Rückruflimits benötigen.\\ +Sagen Sie hier N, wenn Sie unsicher sind. + +\subsection{Kernel .config support} +CONFIG\_IKCONFIG [=y] \textbf{[Y]}\\ +Mit dieser Option kann der gesamte Inhalt der \glqq .config\grqq{}-Datei des Linux-Kernels im +Kernel gespeichert werden. Sie dokumentiert, welche Kernel-Optionen in einem +laufenden Kernel oder in einem On-Disk-Kernel verwendet werden. +Diese Informationen können mit dem Skript scripts/extract-ikconfig aus der +Kernel-Image-Datei extrahiert und als Eingabe verwendet werden, um den aktuellen +Kernel neu zu erstellen oder einen anderen Kernel zu bauen. +Sie können auch aus einem laufenden Kernel extrahiert werden, indem +/proc/config.gz gelesen wird, falls dies aktiviert ist (siehe unten).\\ +Definiert mit init/Kconfig:686 + +\subsubsection{Enable access to .config through /proc/config.gz} +CONFIG\_IKCONFIG\_PROC [=y] \textbf{[Y]}\\ +Diese Option ermöglicht den Zugriff auf die Kernelkonfigurationsdatei über +/proc/config.gz. + +\subsection{Enable kernel headers through /sys/kernel/kheaders.tar.xz} +CONFIG\_IKHEADERS [=m] \textbf{[M]}\\ +Diese Option ermöglicht den Zugriff auf die In-Kernel-Header, die während des +Build-Prozesses erzeugt werden. Diese können verwendet werden, um +eBPF-Tracing-Programme oder ähnliche Programme zu erstellen. Wenn Sie die Header +als Modul erstellen, wird ein Modul namens kheaders.ko erstellt, das bei Bedarf +geladen werden kann, um Zugriff auf die Header zu erhalten. + +\subsection{Kernel log buffer size (16 \texorpdfstring{$\Rightarrow$}{=>} 64KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} +CONFIG\_LOG\_BUF\_SHIFT [=17] \textbf{[17]}\\ +Wählen Sie die minimale Größe des Kernel-Protokollpuffers als eine Potenz von 2 aus. +Die endgültige Größe wird durch den Konfigurationsparameter LOG\_CPU\_MAX\_BUF\_SHIFT +beeinflusst, siehe unten. Eine höhere Größe kann auch durch den Boot-Parameter +\glqq log\_buf\_len\grqq{} erzwungen werden.\\ +Beispiele:\\ +\indent 17 $\Rightarrow$ 128 KB\\ +\indent 16 $\Rightarrow$ 64 KB\\ +\indent 15 $\Rightarrow$ 32 KB\\ +\indent 14 $\Rightarrow$ 16 KB\\ +\indent 13 $\Rightarrow$ 8 KB\\ +\indent 12 $\Rightarrow$ 4 KB\\ +Symbol: LOG\_BUF\_SHIFT\\ +Type: Integer (Ganzzahl)\\ +Bereich (range): [12 25] +\subsection{CPU kernel log buffer size contribution (13 \texorpdfstring{$\Rightarrow$}{=>} 8 KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} +CONFIG\_LOG\_BUF\_SHIFT [=12] \textbf{[12]}\\ +Diese Option ermöglicht es, die Standardgröße des Ringpuffers entsprechend der Anzahl +der CPUs zu erhöhen. Der Wert definiert den Beitrag jeder CPU als eine Potenz von 2. +Der beanspruchte Speicherplatz beträgt in der Regel nur wenige Zeilen, kann aber viel +mehr sein, wenn Probleme gemeldet werden, z.~B. bei Rückverfolgungen. +Die erhöhte Größe bedeutet, dass ein neuer Puffer zugewiesen werden muss und der +ursprüngliche statische Puffer ungenutzt ist. Dies ist nur auf Systemen mit mehr CPUs +sinnvoll. Daher wird dieser Wert nur verwendet, wenn die Summe der Beiträge größer ist +als die Hälfte des Standard-Kernel-Ringpuffers, wie durch \texttt{LOG\_BUF\_SHIFT} definiert. +Die Standardwerte sind so eingestellt, dass mehr als 16 CPUs erforderlich sind, um die +Zuweisung auszulösen. Diese Option wird auch ignoriert, wenn der Kernelparameter +\glqq log\_buf\_len\grqq{} verwendet wird, da er eine exakte (Zweierpotenz) Größe des +Ringpuffers erzwingt. Die Anzahl der möglichen CPUs wird für diese Berechnung verwendet, +wobei Hotplugging ignoriert wird, so dass die Berechnung für das Worst-Case-Szenario +optimal ist und gleichzeitig ein einfacher Algorithmus ab dem Hochfahren verwendet +werden kann. Beispiele für Verschiebungswerte und ihre Bedeutung:\\ +\indent 17 $\Rightarrow$ 128 KB für jede CPU\\ +\indent 16 $\Rightarrow$ 64 KB für jede CPU\\ +\indent 15 $\Rightarrow$ 32 KB für jede CPU\\ +\indent 14 $\Rightarrow$ 16 KB für jede CPU\\ +\indent 13 $\Rightarrow$ 8 KB für jede CPU\\ +\indent 12 $\Rightarrow$ 4 KB für jede CPU\\ +Symbol: LOG\_CPU\_MAX\_BUF\_SHIFT\\ +Type: Integer (Ganzzahl)\\ +Bereich (range): [0 21] + +\subsection{Printk indexing debugfs interface)} +CONFIG\_PRINTK\_INDEX [=y] \textbf{[Y]}\\ +Unterstützung für die Indizierung aller zur Kompilierzeit bekannten +printk-Formate unter\\ +$<$debugfs$>$/printk/index/$<$module$>$ hinzufügen. +Dies kann als Teil der Wartung von Daemonen, die /dev/kmsg überwachen, +verwendet werden, da es die Überprüfung der in einem Kernel vorhandenen +printk-Formate erlaubt, was die Erkennung von Fällen ermöglicht, +in denen überwachte printks geändert oder nicht mehr vorhanden sind.\\ +Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist. + +\subsection{Scheduler features \texorpdfstring{$\rightarrow$}{->}} +Scheduler-Funktionen + +\subsubsection{Enable utilization clamping for RT/FAIR tasks} +CONFIG\_UCLAMP\_TASK [=y] \textbf{[Y]}\\ +Diese Funktion ermöglicht es dem Scheduler, die geklemmte Auslastung jeder CPU +auf der Grundlage der auf dieser CPU geplanten RUNNABLE-Tasks zu verfolgen. +Mit dieser Option kann der Benutzer die minimale und maximale CPU-Auslastung +angeben, die für RUNNABLE-Aufgaben zulässig ist. Die maximale Auslastung +definiert die maximale Häufigkeit, mit der ein Task laufen soll, während die +minimale Auslastung die minimale Häufigkeit definiert, mit der er laufen soll.\\ +Sowohl die Minimal- als auch die Maximalwerte für die Auslastung sind Hinweise +für den Scheduler, um seine Frequenzauswahl zu verbessern, aber sie erzwingen +oder gewähren keine bestimmte Bandbreite für Tasks.\\ +Im Zweifelsfall sagen Sie N für Nein. + +\paragraph{Number of supported utilization clamp buckets}$~$\\ +CONFIG\_UCLAMP\_BUCKETS\_COUNT [=5] \textbf{[5]}\\ +Legt die Anzahl der zu verwendenden Klammerbereiche fest. Der Bereich der +einzelnen Buckets ist SCHED\_CAPACITY\_SCALE/UCLAMP\_BUCKETS\_COUNT. +Je höher die Anzahl der Clamp-Buckets, desto feiner die Granularität und +desto höher die Präzision der Clamp-Aggregation und -Verfolgung während der +Laufzeit. +Mit dem minimalen Konfigurationswert haben wir beispielsweise 5 Clamp-Buckets, +die jeweils 20 \% Auslastung verfolgen. Eine um 25 \% gesteigerte Aufgabe +wird im Bucket [20..39]\% gezählt und setzt den effektiven Wert der +Bucketklemme auf 25 \%. +Wenn eine zweite, um 30 \% erhöhte Aufgabe auf derselben CPU eingeplant wird, +wird diese Aufgabe im selben Bucket wie die erste Aufgabe gezählt und erhöht +den effektiven Bucket-Clamp-Wert auf 30 \%. +Der effektive Klemmwert eines Bereichs wird auf seinen Nennwert (20 \% im +obigen Beispiel) zurückgesetzt, wenn keine weiteren Aufgaben mehr in diesem +Bereich gezählt werden. Bei einigen Aufgaben kann eine zusätzliche +Verstärkungs-/Kappungsmarge hinzugefügt werden. Im obigen Beispiel wird +die 25 \%-Aufgabe auf 30 \% angehoben, bis sie die CPU verlässt. +Sollte dies auf bestimmten Systemen nicht akzeptabel sein, ist es immer +möglich, den Spielraum zu verringern, indem die Anzahl der Clamp-Buckets +erhöht wird, um den verbrauchten Speicher gegen die Genauigkeit der +Laufzeitverfolgung einzutauschen.\\ +Im Zweifelsfall sollten Sie den Standardwert verwenden. + +\subsection{Memory placement aware NUMA scheduler} +CONFIG\_NUMA\_BALANCING [=y] \textbf{[Y]}\\ +Diese Option bietet Unterstützung für die automatische +NUMA-kompatible Speicher-/Task-Platzierung. +Der Mechanismus ist recht primitiv und basiert darauf, dass Speicher +migriert wird, wenn er Referenzen auf den Knoten hat, auf dem die Aufgabe läuft.\\ +Dieses System ist auf UMA-Systemen inaktiv. + +\subsubsection{Automatically enable NUMA aware memory/task placemnent} +CONFIG\_NUMA\_BALANCING\_DEFAULT\_ENABLED [=y] \textbf{[Y]}\\ +Wenn diese Option gesetzt ist, wird der automatische NUMA-Ausgleich aktiviert, +wenn das System auf einem NUMA-Rechner läuft. + +\subsection{Control Group support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CGROUPS [=y] \textbf{[Y]}\\ +(Unterstützung der Kontrollgruppe)\\ +Diese Option bietet Unterstützung für die Gruppierung von Prozessgruppen zur Verwendung mit Prozesskontrollsubsystemen wie Cpusets, CFS, Speicherkontrolle oder Geräteisolierung. +\\Siehe +\begin{itemize} +\item Dokumentation/scheduler/sched-design-CFS.rst (CFS) +\item Documentation/admin-guide/cgroup-v1/ (Funktionen für Gruppierung, + Isolierung und Ressourcenkontrolle) +\end{itemize} +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Favor dynamic modification latency reduction by default} +CONFIG\_CGROUP\_FAVOR\_DYNMODS [=n] \textbf{[N]}\\ +Diese Option aktiviert standardmäßig die Einhängeoption +\glqq favordynmods\grqq{}, die die Latenzzeiten dynamischer C-Gruppen-Änderungen +wie Task-Migrationen und Controller-Ein-/Ausschaltungen +auf Kosten von Hot-Path-Operationen wie Forks und Exits +verteuert.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Memory controller} +CONFIG\_MEMCG [=y] \textbf{[Y]}\\ +Ermöglicht die Kontrolle über den Speicherbedarf von Tasks in einer cgroup. + +\subsubsection{IO controller} +CONFIG\_BLK\_CGROUP [=y] \textbf{[Y]}\\ +Generische Block IO Controller cgroup Schnittstelle. Dies ist die gemeinsame +cgroup-Schnittstelle, die von verschiedenen IO-Kontrollstrategien verwendet +werden sollte.\\ +Derzeit wird sie vom CFQ IO Scheduler zur Erkennung von Task-Gruppen und zur +Steuerung der Zuweisung von Festplattenbandbreite (proportionale +Zeitscheibenzuweisung) an solche Task-Gruppen verwendet. Sie wird auch von +der Bio-Throttling-Logik in der Blockschicht verwendet, um eine Obergrenze +für die IO-Raten auf einem Gerät einzuführen.\\ +Diese Option aktiviert nur die generische Infrastruktur des Block-IO-Controllers. +Man muss auch die tatsächliche IO-Kontrolllogik/-Politik aktivieren. +Um die proportionale Aufteilung der Festplattenbandbreite in CFQ zu aktivieren, +setzen Sie +CONFIG\_BFQ\_GROUP\_IOSCHED=y; für die Aktivierung der Drosselungspolitik +setzen Sie CONFIG\_BLK\_DEV\_THROTTLING=y.\\ +Weitere Informationen finden Sie unter +Documentation/admin-guide/cgroup-v1/blkio-controller.rst. + +\subsubsection{CPU controller \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CGROUP\_SCHED [=y] \textbf{[Y]}\\ +Diese Funktion ermöglicht es dem CPU-Scheduler, Task-Gruppen zu erkennen und +die Zuweisung von CPU-Bandbreite an solche Task-Gruppen zu steuern. +Er verwendet cgroups, um Tasks zu gruppieren. + +\paragraph{Group scheduling for SCHED\_OTHER}$~$\\ +CONFIG\_FAIR\_GROUP\_SCHED [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{CPU bandwidth provisioning for FAIR\_GROUP\_SCHED}$~$\\ +CONFIG\_CFS\_BANDWIDTH [=y] \textbf{[Y]}\\ +Mit dieser Option können Benutzer CPU-Bandbreitenraten (Limits) für Aufgaben +festlegen, die innerhalb des Fair Group Schedulers laufen. +Gruppen, für die kein Limit festgelegt wurde, gelten als uneingeschränkt +und werden ohne Einschränkung ausgeführt.\\ +Weitere Informationen finden Sie unter Documentation/scheduler/sched-bwc.rst. + +\paragraph{Group scheduling for SCHED\_RR/FIFO}$~$\\ +CONFIG\_RT\_GROUP\_SCHED [=n] \textbf{[N]}\\ +Mit dieser Funktion können Sie den Task-Gruppen explizit echte CPU-Bandbreite +zuweisen. Wenn sie aktiviert ist, wird es auch unmöglich, Echtzeitaufgaben +für Nicht-Root-Benutzer zu planen, bis Sie ihnen Echtzeitbandbreite zuweisen.\\ +Weitere Informationen finden Sie unter Documentation/scheduler/sched-rt-group.rst. + +\subsubsection{Utilization clamping per group of tasks} +CONFIG\_UCLAMP\_TASK\_GROUP [=y] \textbf{[Y]}\\ +Mit dieser Funktion kann der Scheduler die geklemmte Auslastung jeder CPU auf der +Grundlage der RUNNABLE-Tasks, die derzeit auf dieser CPU geplant sind, verfolgen. +Wenn diese Option aktiviert ist, kann der Benutzer eine minimale und maximale +CPU-Bandbreite angeben, die für jede einzelne Aufgabe in einer Gruppe zulässig ist. +Mit der maximalen Bandbreite kann die maximale Frequenz, die ein Task verwenden kann, +festgelegt werden, während mit der minimalen Bandbreite eine minimale Frequenz +festgelegt werden kann, die ein Task immer verwenden wird. +Bei aktivierter aufgabengruppenbasierter Auslastungsbegrenzung wird ein eventuell +angegebener aufgabenspezifischer Begrenzungswert durch den von cgroup angegebenen +Begrenzungswert eingeschränkt. Sowohl die minimale als auch die maximale Task-Klemmung +kann nicht größer sein als die entsprechende auf Task-Gruppen-Ebene definierte Klemmung.\\ +Im Zweifelsfall sagen Sie N. + +\subsubsection{PIDs controller} +CONFIG\_CGROUP\_PIDS [=y] \textbf{[Y]}\\ +Erzwingt die Begrenzung der Prozessanzahl im Bereich einer cgroup. Jeder Versuch, mehr +Prozesse zu forken, als in der cgroup erlaubt sind, schlägt fehl. +PIDs sind grundsätzlich eine globale Ressource, da es ziemlich trivial ist, eine +PID-Erschöpfung zu erreichen, bevor man auch nur eine konservative kmemcg-Grenze erreicht. +Infolgedessen ist es möglich, ein System zum Stillstand zu bringen, ohne durch andere +cgroup-Richtlinien eingeschränkt zu werden. Der PID-Regler ist dafür ausgelegt, dies zu verhindern. +Es sollte beachtet werden, dass organisatorische Operationen (wie z.~B. das Anhängen an +eine cgroup-Hierarchie) *nicht* durch den PIDs-Controller blockiert werden, da das PIDs-Limit +nur die Fähigkeit eines Prozesses zum Forking, nicht aber zum Anhängen an eine cgroup beeinflusst. + +\subsubsection{RDMA controller} +CONFIG\_CGROUP\_RDMA [=y] \textbf{[Y]}\\ +Ermöglicht die Durchsetzung der vom IB-Stack definierten RDMA-Ressourcen. Es ist relativ +einfach für Verbraucher, RDMA-Ressourcen zu erschöpfen, was dazu führen kann, dass Ressourcen +für andere Verbraucher nicht mehr verfügbar sind. Der RDMA-Controller ist dafür ausgelegt, +dies zu verhindern. Das Anhängen von Prozessen mit aktiven RDMA-Ressourcen an die +cgroup-Hierarchie ist erlaubt, auch wenn die Grenze der Hierarchie überschritten werden kann. + +\subsubsection{Freezer controller} +CONFIG\_CGROUP\_FREEZER [=y] \textbf{[Y]}\\ +Ermöglicht das Einfrieren und Aufheben des Einfrierens aller Aufgaben in einer C-Group. +Diese Option betrifft die ORIGINAL cgroup-Schnittstelle. Der cgroup2-Speicher-Controller +enthält standardmäßig wichtige In-Kernel-Speicherverbraucher.\\ +Wenn Sie cgroup2 verwenden, sagen Sie N. + +\subsubsection{HugeTLB controller} +CONFIG\_CGROUP\_HUGETLB [=y] \textbf{[Y]}\\ +Bietet eine cgroup-Steuerung für HugeTLB-Seiten. Wenn Sie dies aktivieren, können Sie die +HugeTLB-Nutzung pro cgroup begrenzen. Die Begrenzung wird während eines Seitenfehlers +durchgesetzt. Da HugeTLB keine Seitenrückforderung unterstützt, bedeutet die Durchsetzung +des Limits zum Zeitpunkt des Seitenfehlers, dass die Anwendung ein SIGBUS-Signal erhält, +wenn sie versucht, über das Limit hinaus auf HugeTLB-Seiten zuzugreifen. Dies setzt voraus, +dass die Anwendung im Voraus weiß, wie viele HugeTLB-Seiten sie für ihre Nutzung benötigt. +Die Kontrollgruppe wird im dritten Page-lru-Zeiger verfolgt. Dies bedeutet, dass wir die +Steuergruppe nicht mit einer riesigen Seite von weniger als 3 Seiten verwenden können. + +\subsubsection{Cpuset controller} +CONFIG\_CPUSETS [=y] \textbf{[Y]}\\ +Mit dieser Option können Sie CPUSETs erstellen und verwalten, die es ermöglichen, ein System +dynamisch in Gruppen von CPUs und Speicherknoten zu partitionieren und Aufgaben zuzuweisen, +die nur innerhalb dieser Gruppen ausgeführt werden. +Dies ist vor allem auf großen SMP- oder NUMA-Systemen nützlich.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\paragraph{Include legacy /proc/$<$pid$>$/cpuset file}$~$\\ +CONFIG\_PROC\_PID\_CPUSET [=y] \textbf{[Y]}\\ +This option will let you create and manage CPUSETs which allow dynamically partitioning a +system into sets of CPUs and Memory Nodes and assigning tasks to run only within those sets. +This is primarily useful on large SMP or NUMA systems.\\ +Say N if unsure. + +\subsubsection{Device controller} +CONFIG\_CGROUP\_DEVICE [=y] \textbf{[Y]}\\ +Bietet einen cgroup-Controller an, der Whitelists für Geräte implementiert, +die ein Prozess in der cgroup mknod oder öffnen kann. + +\subsubsection{Simple CPU accounting controller} +CONFIG\_CGROUP\_CPUACCT [=y] \textbf{[Y]}\\* +(Einfacher CPU-Accounting-Controller)\\ +Bietet einen einfachen Controller für die Überwachung des gesamten +CPU-Verbrauchs der Tasks in einer cgroup an. + +\subsubsection{Perf controller} +CONFIG\_CGROUP\_PERF [=y] \textbf{[Y]}\\ +Diese Option erweitert den Modus perf per-cpu, um die Überwachung auf Threads zu beschränken, +die zu der angegebenen cgroup gehören und auf der angegebenen CPU laufen. +Sie kann auch verwendet werden, um die cgroup ID in Stichproben zu haben, +so dass sie Leistungsereignisse zwischen cgroups überwachen kann.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Support for eBPF programs attached to cgroups} +CONFIG\_CGROUP\_BPF [=y] \textbf{[Y]}\\ +Erlaubt das Anhängen von eBPF-Programmen an eine cgroup mit dem +bpf(2)-Syscall-Befehl\\ +\texttt{BPF\_PROG\_ATTACH}.\\ +In welchem Kontext auf diese Programme zugegriffen wird, hängt von der Art des Attachments ab. +Zum Beispiel werden Programme, die mit BPF\_CGROUP\_INET\_INGRESS angehängt werden, +auf dem Ingress-Pfad von inet-Sockets ausgeführt. + +\subsubsection{Misc resource controller} +CONFIG\_CGROUP\_MISC [=y] \textbf{[Y]}\\ +Bietet einen Controller für verschiedene Ressourcen auf einem Host. +Verschiedene skalare Ressourcen sind die Ressourcen auf dem Host-System, die nicht wie die +anderen cgroups abstrahiert werden können. Dieser Controller verfolgt und begrenzt die +verschiedenen Ressourcen, die von einem Prozess verwendet werden, der an eine +cgroup-Hierarchie angeschlossen ist.\\ +Weitere Informationen finden Sie im Abschnitt misc cgroup in /Documentation/admin-guide/cgroup-v2.rst. + +\subsubsection{Debug controller} +CONFIG\_CGROUP\_DEBUG [=n] \textbf{[N]}\\ +Diese Option aktiviert einen einfachen Controller, der Debugging"=Informationen über das +cgroups"=Frame\-work exportiert. Dieser Controller ist nur für das Debugging von Kontroll-C-Gruppen gedacht. +Seine Schnitt\-stellen sind nicht stabil.\\ +Sagen Sie N. + +\subsection{Namespaces support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NAMESPACES [=y] \textbf{[Y]}\\ +(Unterstützung von Namensräumen, namespaces)\\ +Bietet die Möglichkeit, Aufgaben mit verschiedenen Objekten unter Verwendung derselben Kennung +arbeiten zu lassen. Zum Beispiel kann sich dieselbe IPC-ID auf verschiedene Objekte beziehen oder +dieselbe Benutzer-ID oder pid kann sich auf verschiedene Aufgaben beziehen, wenn sie in verschiedenen +Namensräumen verwendet werden. + +\subsubsection{UTS namespace} +CONFIG\_UTS\_NS [=y] \textbf{[Y]}\\ +In diesem Namensraum sehen Aufgaben verschiedene Informationen, die mit dem Systemaufruf uname() +bereitgestellt werden + +\subsubsection{TIME namespace} +CONFIG\_TIME\_NS [=y] \textbf{[Y]}\\ +In diesem Namespace können boottime und monotone Uhren eingestellt werden. +Die Zeit läuft dann mit der gleichen Geschwindigkeit weiter. + +\subsubsection{IPC namespace} +CONFIG\_IPC\_NS [=y] \textbf{[Y]}\\ +In diesem Namensraum arbeiten Aufgaben mit IPC-IDs (Interprozess-IDs), die jeweils +verschiedenen IPC-Objekten in verschiedenen Namensräumen entsprechen. + +\subsubsection{User namespace} +CONFIG\_USER\_NS [=y] \textbf{[Y]}\\ +Dies ermöglicht es Containern, d.~h. V-Servern, Benutzernamensräume zu verwenden, +um verschiedene Benutzerinformationen für verschiedene Server bereitzustellen. +Wenn Benutzernamensräume im Kernel aktiviert sind, wird empfohlen, dass die Option \texttt{MEMCG} ebenfalls +aktiviert wird und dass der Benutzerbereich die Speicherkontrollgruppen verwendet, +um die Speichermenge zu begrenzen, die nicht privilegierte Benutzer verwenden können. + +\paragraph{Allow unprivileged users to create namespaces}$~$\\ +CONFIG\_USERS\_NS\_UNPRIVILEGED [=y] \textbf{[Y]}\\ +Wenn diese Funktion deaktiviert ist, können unprivilegierte Benutzer keine neuen Namensräume +erstellen. Die Möglichkeit, dass Benutzer ihre eigenen Namespaces erstellen können, war Teil mehrerer +kürzlich erfolgter lokaler Privilegienerweiterungen. Wenn Sie also Benutzernamespaces benötigen, +aber paranoid bzw. sicherheitsbewusst sind, sollten Sie diese Funktion deaktivieren. +Diese Einstellung kann zur Laufzeit mit dem +\texttt{kernel.unprivileged\_userns\_clone sysctl} +außer Kraft gesetzt werden.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{PID namespace} +CONFIG\_PID\_NS [=y] \textbf{[Y]}\\ +Unterstützung von Prozess-ID-Namensräumen. Dies ermöglicht es, mehrere Prozesse mit der gleichen pid +zu haben, solange sie sich in verschiedenen pid-Namensräumen befinden. Dies ist ein Baustein von Containern. + +\subsubsection{Network namespace} +CONFIG\_NET\_NS [=y] \textbf{[Y]}\\ +Ermöglicht es dem Benutzer, scheinbar mehrere Instanzen des Netzwerkstapels zu erstellen. + +\subsection{Checkpoint/restore support} +CONFIG\_CHECKPOINT\_RESTORE [=y] \textbf{[Y]}\\ +Ermöglicht zusätzliche Kernel-Funktionen in einer Art Checkpoint/Restore. +Insbesondere fügt es zu\-sätz\-liche prctl-Codes zum Einrichten von Prozesstext, Daten- und Heap-Segmentgrößen +sowie einige zusätzliche /proc-Dateisystemeinträge hinzu.\\ +Wenn Sie unsicher sind, geben Sie hier N an. + + +\subsection{Automatic process group scheduling} +CONFIG\_SCHED\_AUTOGROUP [=y] \textbf{[Y]}\\ +Mit dieser Option wird der Scheduler für gängige Desktop-Workloads optimiert, +indem automatisch Aufgabengruppen erstellt und aufgefüllt werden. +Diese Trennung von Arbeitslasten isoliert aggressive CPU-Brenner (wie Build-Jobs) von Desktop-Anwendungen. +Die automatische Erstellung von Aufgabengruppen basiert derzeit auf der Aufgabensitzung. + +\subsection{Kernel\texorpdfstring{$\rightarrow$}{->}user space relay support (formerly relayfs)} +CONFIG\_RELAY [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung für die Relaisschnittstelle in bestimmten Dateisystemen +(wie debugfs). Sie wurde entwickelt, um einen effizienten Mechanismus für Werkzeuge und Einrichtungen +zur Weiterleitung großer Datenmengen aus dem Kernelbereich in den Benutzerbereich bereitzustellen.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Initial RAM filesystem and RAM disk (initramfs/initrd) support} +CONFIG\_BLK\_DEV\_INITRD [=y] \textbf{[Y]}\\ +Das anfängliche RAM-Dateisystem ist ein ramfs, das vom Bootloader (loadlin oder lilo) geladen und vor +dem normalen Bootvorgang als root eingehängt wird. Es wird typischerweise verwendet, um Module zu laden, +die zum Einhängen des \glqq echten\grqq{} Root-Dateisystems benötigt werden, usw.\\ +Siehe $<$file:Documentation/admin-guide/initrd.rst$>$ für Details. +Wenn die RAM-Disk-Unter\-stützung\\ +(BLK\_DEV\_RAM) eben\-falls enthalten ist, aktiviert dies auch die anfängliche +RAM-Disk-Unterstützung (initrd) und fügt 15 KByte (auf einigen anderen Architekturen mehr) zur Kernelgröße hinzu.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Initramfs source file(s)} +CONFIG\_INITRAMFS\_SOURCE [=] \textbf{[~]}\\ +Dies kann entweder ein einzelnes cpio-Archiv mit der Endung .cpio oder eine durch Leerzeichen getrennte +Liste von Verzeichnissen und Dateien zur Erstellung des initramfs-Abbilds sein. +Ein cpio-Archiv sollte ein Dateisystemarchiv enthalten, das als initramfs-Abbild verwendet werden soll. +Verzeichnisse sollten ein Dateisystem-Layout enthalten, das in das initramfs-Abbild aufgenommen werden +soll. Die Dateien sollten Einträge in dem Format enthalten, das vom +Programm \texttt{usr/gen\_init\_cpio} im Kernelbaum beschrieben wird. +Wenn mehrere Verzeichnisse und Dateien angegeben werden, wird das initramfs-Abbild die Summe aller +dieser Verzeichnisse und Dateien sein.\\ +Siehe $<$file:Documentation/driver-api/early-userspace/early\_userspace\_support.rst$>$ +für weitere Details.\\ +Wenn Sie sich nicht sicher sind, lassen Sie das Feld leer.\\ +Symbol: INITRAMFS\_SOURCE [=]\\ +Type : string (Zeichenkette) + +\subsubsection{Support initial ramdisk/ramfs compressed using gzip} +CONFIG\_RD\_GZIP [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines gzip-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using bzip2} +CONFIG\_RD\_BZIP2 [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines bzip2-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using LZMA} +CONFIG\_RD\_LZMA [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines LZMA-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using XZ} +CONFIG\_RD\_XZ [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines XZ-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using LZO} +CONFIG\_RD\_LZO [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines LZO-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using LZ4} +CONFIG\_RD\_LZ4 [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines LZ4-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Support initial ramdisk/ramfs compressed using ZSTD} +CONFIG\_RD\_ZSTD [=y] \textbf{[Y]}\\ +Unterstützung des Ladens eines ZSTD-kodierten Anfangs-Ramdisk- +oder Cpio-Puffers.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Boot config support} +CONFIG\_BOOT\_CONFIG [=y] \textbf{[Y]}\\ +Extra boot config ermöglicht es dem Systemadministrator, eine Konfigurationsdatei +als zusätzliche Erweiterung der Kernel-Cmdline beim Booten zu übergeben. +Die Bootkonfigurationsdatei muss am Ende von \mbox{initramfs} mit Prüfsumme, Größe und +magischem Wort angehängt werden.\\ +Siehe $<$file:Documentation/admin-guide/bootconfig.rst$>$ für Details.\\ +Wenn Sie unsicher sind, sagen Sie Y. + + +\subsubsection{Force unconditional bootconfig processing} +CONFIG\_BOOT\_CONFIG\_FORCE [=n] \textbf{[N]}\\ +Wenn diese Kconfig-Option gesetzt ist, wird die BOOT\_CONFIG-Verarbeitung auch dann +durchgeführt, wenn der Kernel-Boot-Parameter "bootconfig" weggelassen wird. +Tatsächlich gibt es mit dieser Kconfig-Option keine Möglichkeit, den Kernel dazu +zu bringen, die von BOOT\_CONFIG gelieferten Kernel-Boot-Parameter zu ignorieren.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Embed bootconfig file in the kernel} +CONFIG\_BOOT\_CONFIG\_EMBED [=n] \textbf{[N]}\\ +Eine mit BOOT\_CONFIG\_EMBED\_FILE angegebene bootconfig-Datei in den Kernel einbetten. +Normalerweise wird die bootconfig-Datei mit dem initrd-Image geladen. Wenn das System +jedoch initrd nicht unterstützt, hilft Ihnen diese Option, indem sie eine bootconfig-Datei +beim Erstellen des Kernels einbettet.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Preserve cpio archive mtimes in initramfs} +CONFIG\_INITRAMFS\_PRESERVE\_MTIME [=y] \textbf{[Y]}\\ +Jeder Eintrag in einem initramfs cpio-Archiv enthält einen mtime-Wert. +Wenn diese Option aktiviert ist, übernehmen die extrahierten cpio-Einträge diese mtime, +wobei die mtime-Einstellung des Verzeichnisses aufgeschoben wird, bis nach der +Erstellung aller untergeordneten Einträge.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Compiler optimization level \texorpdfstring{$\rightarrow$}{->}} +Optimierungsgrad des Compilers, Auswahl aus den folgenden zwei Punkten: + +\subsubsection{Optimize for performance (-O2)} +CONFIG\_CC\_OPTIMIZE\_FOR\_PERFORMANCE [=y] \textbf{[Y]}\\ +Dies ist die Standardoptimierungsstufe für den Kernel, die mit dem Compiler-Flag \texttt{-O2} +erstellt wird, um die beste Leistung und die hilfreichsten Warnungen bei der +Kompilierung zu erhalten. + +\subsubsection{Optimize for size (-Os)} +CONFIG\_CC\_OPTIMIZE\_FOR\_SIZE [=n] \textbf{[N]}\\ +Wenn Sie diese Option wählen, wird \texttt{-Os} an Ihren Compiler übergeben, +was zu einem kleineren Kernel führt. + +\subsection{Configure standard kernel features (expert users)} +CONFIG\_EXPERT [=n] \textbf{[~]}\\ +Mit dieser Option können bestimmte Basis-Kerneloptionen und -einstellungen +deaktiviert oder optimiert werden. Dies ist für spezielle Umgebungen gedacht, +die einen \glqq Nicht-Standard\grqq{}-Kernel tolerieren können.\\ +Verwenden Sie diese Option nur, wenn Sie wirklich wissen, was Sie tun. + +\subsubsection{Load all symbols for debugging/ksymoops} +CONFIG\_KALLSYMS [=y] \textbf{[Y]}\\ +(sichtbar wenn EXPERT [=n])\\ +Geben Sie hier Y ein, damit der Kernel symbolische Absturzinformationen und +symbolische Stack-Backtraces ausgibt. Dies erhöht die Größe des Kernels etwas, +da alle Symbole in das Kernel-Image geladen werden müssen. + +\paragraph{Test the basic functions and performance of kallsyms}$~$\\ +CONFIG\_KALLSYMS\_SELFTEST [=n] \textbf{[N]}\\ +Testen Sie die Grundfunktionen und die Leistung einiger Schnittstellen, wie z.~B. +\texttt{kallsyms\_lookup\_name}. Außerdem wird die Kompressionsrate des +kallsyms-Kompressionsalgorithmus für den aktuellen Symbolsatz berechnet. +Starten Sie den Selbsttest automatisch nach dem Systemstart.\\ +Es wird empfohlen, \texttt{dmesg | grep kallsyms\_selftest} auszuführen, +um die Testergebnisse zu sammeln. +In der letzten Zeile wird \texttt{finish} angezeigt, was bedeutet, +dass der Test abgeschlossen ist. + +\paragraph{Include all symbols in kallsyms}$~$\\ +CONFIG\_KALLSYMS\_ALL [=y] \textbf{[Y]}\\ +Normalerweise enthält kallsyms nur die Symbole von Funktionen für schönere +OOPS-Meldungen und Backtraces (d.~h. Symbole aus den Abschnitten text und +inittext). Dies ist für die meisten Fälle ausreichend. Nur wenn Sie Kernel-Live-Patching +oder andere weniger häufige Anwendungsfälle (z.~B. wenn ein Debugger verwendet +wird) aktivieren wollen, sind alle Symbole erforderlich (d.~h. die Namen von Variablen +aus den Data-Abschnitten usw.).\\ +Diese Option stellt sicher, dass alle Symbole in das Kernel-Image geladen werden +(d.~h. Symbole aus allen Sektionen), was die Kernelgröße erhöht (je nach Kernelkonfiguration +kann sie 300KiB oder etwas Ähnliches betragen).\\ +Sagen Sie N, es sei denn, Sie brauchen wirklich alle Symbole, +oder Kernel-Live-Patching. + +\subsection{Kernel Performance Events And Counters \texorpdfstring{$\rightarrow$}{->}} +Kernel-Leistungsereignisse und -Zähler + +\subsubsection{Kernel performance events and counters} +CONFIG\_PERF\_EVENTS [=y] \textbf{[Y]}\\ +Aktivieren Sie die Kernel-Unterstützung für verschiedene von Software und Hardware +bereitgestellte Leistungsereignisse. + +Software-Ereignisse werden entweder integriert oder über die Verwendung von generischen +Tracepoints unterstützt. + +Die meisten modernen CPUs unterstützen Leistungsereignisse über Leistungszählerregister. +Diese Register zählen die Anzahl bestimmter Arten von hw-Ereignissen: z.~B. ausgeführte +Anweisungen, erlittene Cachemisses oder falsch vorhergesagte Verzweigungen -- ohne den +Kernel oder Anwendungen zu verlangsamen. Diese Register können auch Unterbrechungen +auslösen, wenn eine bestimmte Anzahl von Ereignissen überschritten wird -- und können so +dazu verwendet werden, ein Profil des Codes zu erstellen, der auf dieser CPU läuft. + +Das Linux-Performance-Event-Subsystem bietet eine Abstraktion dieser Software- und +Hardware-Event-Fähigkeiten, die über einen Systemaufruf zugänglich sind und von dem +Dienstprogramm \texttt{perf} in \texttt{tools/perf/} verwendet werden. +Es stellt Zähler pro Task +und pro CPU zur Verfügung und bietet darüber hinaus Ereignisfunktionen.\\ +Sagen Sie Y, wenn Sie unsicher sind. + +\paragraph{Debug: use vmalloc to back perf mmap() buffers}$~$\\ +CONFIG\_DEBUG\_PERF\_USE\_VMALLOC [=n] \textbf{[N]}\\ +Verwendung von vmalloc-Speicher zur Sicherung von mmap()-Puffern. Hauptsächlich nützlich zum Debuggen des vmalloc-Codes auf Plattformen, die dies nicht erfordern. +Sagen Sie N, wenn Sie unsicher sind. + +\subsection{Profiling support} +CONFIG\_PROFILING [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, um die erweiterten Unterstützungsmechanismen für das Profiling zu +aktivieren, die von Profilern verwendet werden. + +\subsection{Kexec and crash features \texorpdfstring{$\rightarrow$}{->}} +Kexec und Absturzmerkmale + +\subsubsection{Enable kexec system call} +CONFIG\_KEXEC [=y] \textbf{[Y]}\\ +\texttt{kexec} ist ein Systemaufruf, der die Fähigkeit implementiert, den aktuellen Kernel +herunterzufahren und einen anderen Kernel zu starten. Es ist wie ein Neustart, aber er ist +unabhängig von der System-Firmware. Und wie ein Neustart können Sie damit jeden Kernel +starten, nicht nur Linux. +Der Name kommt von der Anlehnung mit dem Systemaufruf \texttt{exec}. +Es ist ein fortlaufender Prozess, um sicher zu sein, dass die Hardware eines Rechners +ordnungsgemäß heruntergefahren wird, seien Sie also nicht überrascht, wenn dieser Code bei +Ihnen zunächst nicht funktioniert. Zum Zeitpunkt des Verfassens dieses Artikels ist die +genaue Hardwareschnittstelle noch stark im Wandel, so dass keine gute Empfehlung +ausgesprochen werden kann. + +\subsubsection{Enable kexec file based system call} +CONFIG\_KEXEC\_FILE [=y] \textbf{[Y]}\\ +(Aktivieren des dateibasierten Systemaufrufs kexec)\\ +Dies ist eine neue Version des Systemaufrufs \texttt{kexec}. Dieser Systemaufruf ist dateibasiert und +nimmt Dateideskriptoren als Systemaufrufsargument für Kernel und initramfs anstelle einer Liste +von Segmenten, wie sie vom kexec-Systemaufruf akzeptiert wird. + +\paragraph{Verify kernel signature during kexec\_file\_load() syscall}$~$\\ +CONFIG\_KEXEC\_SIG [=y] \textbf{[Y]}\\ +Mit dieser Option wird der Syscall \texttt{kexec\_file\_load()} auf eine gültige Signatur des +Kernel-Images geprüft. Das Image kann immer noch ohne gültige Signatur geladen werden, es sei denn, +Sie aktivieren auch KEXEC\_SIG\_FORCE, aber wenn es eine Signatur gibt, die überprüft werden kann, +dann muss sie auch gültig sein. +Zusätzlich zu dieser Option müssen Sie die Signaturprüfung für den entsprechenden Kernel-Image-Typ, +der geladen wird, aktivieren, damit dies funktioniert. + +\subparagraph{Require a valid signature in kexec\_file\_load() syscall}$~$\\ +CONFIG\_KEXEC\_SIG\_FORCE [=n] \textbf{[N]}\\ +Diese Option macht die Überprüfung der Kernelsignatur für den Syscall +\texttt{kexec\_file\_load()} zwingend erforderlich. + +\subparagraph{Enable bzImage signature verification support}$~$\\ +CONFIG\_KEXEC\_BZIMAGE\_VERIFY\_SIG [=n] \textbf{[N]}\\ +Aktivierung der Unterstützung von bzImage für die Signaturprüfung. + +\subsubsection{kexec jump} +CONFIG\_KEXEC\_JUMP [=y] \textbf{[Y]}\\ +Sprung zwischen Original-Kernel und kexeced-Kernel und Aufruf von Code im physikalischen +Adressmodus über KEXEC + +\subsubsection{kexec crash dumps} +CONFIG\_KEXEC\_DUMP [=y] \textbf{[Y]}\\ +Absturzdump (Speicherauszug) erzeugen, nachdem er von kexec gestartet wurde. +Dies sollte normalerweise nur in speziellen Crash-Dump-Kerneln gesetzt werden, die im Hauptkernel +mit kexec-tools in einen speziell reservierten Bereich geladen werden und dann später nach einem +Absturz von kdump/kexec ausgeführt werden. Der Crash-Dump-Kernel muss mit PHYSICAL\_START auf eine +Speicheradresse kompiliert werden, die nicht vom Hauptkernel oder BIOS verwendet wird, oder er muss +als relocatable image (CONFIG\_RELOCATABLE=y) erstellt werden.\\ +Für weitere Details siehe Documentation/admin-guide/kdump/kdump.rst + +Für s390 aktiviert diese Option auch zfcpdump.\\ +Siehe auch $<$file:Documentation/s390/zfcpdump.rst$>$ + +\paragraph{Update the crash elfcorehdr on system configuration changes}$~$\\ +CONFIG\_CRASH\_HOTPLUG [=y] \textbf{[Y]}\\ +Aktivierung der direkten Aktualisierung der Crash-Elfcorehdr (die die Liste der CPUs und +Speicherbereiche enthält, die bei einem Absturz gelöscht werden sollen) als Reaktion auf +Hot-Plug/Unplug oder Online/Offline von CPUs oder Speicher. Dies ist ein sehr viel +fortschrittlicherer Ansatz als der Versuch dies im Userspace zu tun.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{Specify the maximum number of memory regions for the elfcorehdr}$~$\\ +CONFIG\_CRASH\_MAX\_MEMORY\_RANGES [=8192] \textbf{[8192]}\\ +Für den Pfad des Systemaufrufs \texttt{kexec\_file\_load()} ist die maximale Anzahl +der Speicherbereiche anzugeben, die der elfcorehdr-Puffer/das elfcorehdr-Segment aufnehmen kann. +Diese Regionen werden über \texttt{walk\_system\_ram\_res()} ermittelt, z.~B. die +'System RAM'-Einträge in /proc/iomem. Dieser Wert wird mit NR\_CPUS\_DEFAULT kombiniert und mit +\texttt{sizeof(Elf64\_Phdr)} multipliziert, um die endgültige elfcorehdr-Speicherpuffer-/Segmentgröße +zu bestimmen. Der Wert 8192 beispielsweise deckt ein (dünn besiedeltes) 1TiB-System ab, +das aus 128MiB-Memblöcken besteht, und führt zu einer elfcorehdr-Speicher\-puffer-/Segmentgröße +von unter 1MiB. Dies ist eine vernünftige Wahl, um sowohl Baremetal- als auch virtuelle +Maschinenkonfigurationen zu unterstützen.\\ +Für den Syscall-Pfad \texttt{kexec\_load()} +ist CRASH\_MAX\_MEMORY\_RANGES Teil der Berechnung hinter dem Wert, +der über das Attribut /sys/kernel/crash\_elfcorehdr\_size bereitgestellt wird. diff --git a/documentation/linux_configuration_02_64-bit_kernel.tex b/documentation/linux_configuration_02_64-bit_kernel.tex new file mode 100644 index 0000000..d54959c --- /dev/null +++ b/documentation/linux_configuration_02_64-bit_kernel.tex @@ -0,0 +1,4 @@ +\section{64-bit kernel} +CONFIG\_64BIT [=y] \textbf{[Y]}\\ +Sagen Sie Y für ja, zur Erstellung eines 64-Bit-Kernels -- früher bekannt als x86\_64\\ +Sagen Sie N für nein, um einen 32-Bit-Kernel zu erstellen -- früher bekannt als i386 diff --git a/documentation/linux_configuration_03_processor_type_and_features.tex b/documentation/linux_configuration_03_processor_type_and_features.tex new file mode 100644 index 0000000..53f81e5 --- /dev/null +++ b/documentation/linux_configuration_03_processor_type_and_features.tex @@ -0,0 +1,879 @@ +\section{Processor type and features \texorpdfstring{$\rightarrow$}{->}} +Prozessortyp und Eigenschaften + +\subsection{Symmetric multi-processing support} +CONFIG\_SMP [=y] \textbf{[Y]}\\ +Dies ermöglicht die Unterstützung von Systemen mit mehr als einer CPU. Wenn Sie ein System mit nur +einer CPU haben, sagen Sie N. Wenn Sie ein System mit mehr als einer CPU haben, sagen Sie Y. +Wenn Sie hier N angeben, läuft der Kernel auf Uni- und Multi\-prozessor"=Maschinen, verwendet aber nur +eine CPU einer Multi\-pro\-zes\-sor"=Ma\-schine. +Wenn Sie hier Y angeben, läuft der Kernel auf vielen, aber nicht auf +allen Uni\-pro\-zes\-sor"=Ma\-schi\-nen. + +Auf einer Uni\-pro\-zes\-sor"=Maschine läuft der Kernel schneller, wenn Sie hier N angeben. +Beachten Sie, dass der Kernel nicht auf 486er-Architekturen läuft, wenn Sie hier Y angeben und unter +\glqq Prozessor\-familie\grqq{} die Architektur \glqq 586\grqq{} oder \glqq Pentium\grqq{} auswählen. + +Ebenso funktionieren Multi\-pro\-zes\-sor"=Kernel für die \glqq PPro\grqq{}"=Ar\-chi\-tek\-tur +möglicherweise nicht auf allen Pentium"=basierten Boards. + +Benutzer von Multi\-prozessor-Maschinen, die hier Y für \glqq Ja\grqq{} angeben, sollten auch +\glqq Ja\grqq{} +zu \glqq Enhanced Real Time Clock Support\grqq{} (siehe unten) sagen. +Der \glqq Advanced Power Management\grqq{}-Code wird deaktiviert, wenn Sie hier +\glqq Y\grqq{} angeben. Siehe auch $<$file:Documentation/arch/x86/i386/IO-APIC.rst$>$, +$<$file:Documentation/admin-guide/lockup-watchdogs.rst$>$ und das SMP-HOWTO, verfügbar unter:\\ +\url{http://www.tldp.org/docs.html\#howto}.\\ +Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. + +\subsection{Support x2apic} +CONFIG\_X86\_X2APIC [=y] \textbf{[Y]}\\ +Dies ermöglicht die Unterstützung von x2apic auf CPUs, die über diese Funktion verfügen. +Dies ermöglicht 32-Bit-Apic-IDs (so dass es sehr große Systeme unterstützen kann) und greift auf den +lokalen apic über MSRs und nicht über mmio zu. Einige Intel-Systeme ab ca. 2022 sind in den x2APIC-Modus +gesperrt und können nicht auf die alten APIC-Modi zurückgreifen, wenn SGX oder TDX im BIOS aktiviert +sind. Ohne Aktivierung dieser Option booten sie mit stark eingeschränkter Funktionalität.\\ +Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. + +\subsection{Enable MPS table} +CONFIG\_X86\_MPPARSE [=y] \textbf{[Y]}\\ +Für alte smp-Systeme, die keine richtige acpi-Unterstützung haben. Neuere Systeme +(insbesondere mit 64bit-CPUs) mit acpi-Unterstützung, werden von MADT und DSDT überschrieben. + +\subsection{x86 CPU resource control support} +CONFIG\_X86\_CPU\_RESCTRL [=y] \textbf{[Y]}\\ +Aktivieren Sie die Unterstützung der x86-CPU-Ressourcensteuerung. Unterstützung für die Zuweisung und +Überwachung der Nutzung von Systemressourcen durch die CPU. Intel nennt dies Intel Resource Director +Technology (Intel(R) RDT). Weitere Informationen über RDT finden Sie im Intel x86 Architecture +Software Developer Manual. AMD bezeichnet dies als AMD Platform Quality of Service (AMD QoS).\\ +Weitere Informationen über AMD QoS finden Sie im Handbuch AMD64 Technology Platform Quality of Service +Extensions.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsection{Support for extended (non-PC) x86 platforms} +CONFIG\_X86\_EXTENDED\_PLATFORM [=n] \textbf{[N]}\\ +Wenn Sie diese Option deaktivieren, unterstützt der Kernel nur Standard-PC-Plattformen +(was die große Mehrheit der Systeme da draußen abdeckt). +Wenn Sie diese Option aktivieren, können Sie die Unterstützung für die folgenden (nicht-PC) +64-Bit-x86-Plattformen auswählen: +\begin{itemize} + \item Numascale NumaChip + \item ScaleMP vSMP + \item SGI Ultraviolet +\end{itemize} +Wenn Sie eines dieser Systeme haben, oder wenn Sie einen generischen Distributionskernel bauen +wollen, geben Sie hier Y an -- andernfalls sagen Sie N. + +\subsection{Intel Low Power Subsystem Support} +CONFIG\_X86\_INTEL\_LPSS [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um Unterstützung für das Intel Low Power Subsystem zu erstellen, +wie es auf dem Intel Lynxpoint PCH zu finden ist. Die Auswahl dieser Option ermöglicht Dinge wie +Clock Tree (Common Clock Framework) und Pincontrol, die von den LPSS-Peripherietreibern benötigt werden. + +\subsection{AMD ACPI2Platform devices support} +CONFIG\_X86\_AMD\_PLATFORM\_DEVICE [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um AMD-spezifische ACPI-Geräte wie I2C, UART, GPIO, die auf AMD Carrizo +und späteren Chipsätzen zu finden sind, als Plattformgeräte zu interpretieren. I2C und UART hängen +von COMMON\_CLK ab, um den Takt zu setzen. Der GPIO-Treiber ist im PINCTRL-Subsystem implementiert. + +\subsection{Intel SoC IOSF Sideband support for SoC platforms} +CONFIG\_IOSF\_MBI [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung des Seitenband-Registerzugriffs für Intel SoC-Plattformen. +Auf diesen Plattformen wird das IOSF-Seitenband anstelle von MSRs für einige Registerzugriffe +verwendet, vor allem, aber nicht ausschließlich, für thermische und Stromversorgungs-Register. +Treiber können die Verfügbarkeit dieser Geräte abfragen, um festzustellen, ob sie das Seitenband +benötigen, um auf diesen Plattformen zu funktionieren. +Das Seitenband ist auf den folgenden SoC-Produkten verfügbar. +\begin{itemize} + \item BayTrail + \item Braswell + \item Quark +\end{itemize} +Sie sollten Y sagen, wenn Sie einen Kernel auf einem dieser SoCs ausführen. + +\subsubsection{Enable IOSF sideband access through debugfs} +CONFIG\_IOSF\_MBI\_DEBUG [=n] \textbf{[N]}\\ +Wählen Sie diese Option, um die IOSF-Seitenband-Zugriffsregister (MCR, MDR, MCRX) über debugfs +freizugeben, um Registerinformationen von verschiedenen Einheiten auf dem SoC zu schreiben und +zu lesen. Dies ist sehr nützlich, um Informationen über den Gerätezustand für Debugging und +Analyse zu erhalten. Da es sich um einen allgemeinen Zugriffsmechanismus handelt, müssen die +Benutzer dieser Option das Gerät, auf das sie zugreifen wollen, genau kennen.\\ +Wenn Sie die Option nicht benötigen oder im Zweifel sind, sagen Sie N. + +\subsection{Single-depth WCHAN output} +CONFIG\_SHED\_OMIT\_FRAME\_POINTER [=y] \textbf{[Y]}\\ +Berechne einfachere /proc/$<$PID$>$/wchan-Werte. Wenn diese Option deaktiviert ist, werden die +wchan-Werte zur aufrufenden Funktion zurückgeführt. Dies liefert genauere wchan-Werte, allerdings +auf Kosten eines etwas größeren Planungsaufwands (scheduling overhead).\\ +Im Zweifelsfall sagen Sie "Y". + +\subsection{Linux guest support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_HYPERVISOR\_GUEST [=y] \textbf{[Y]}\\ +Geben Sie hier Y ein, um Optionen für die Ausführung von Linux unter verschiedenen Hypervisoren zu +aktivieren. Diese Option aktiviert die grundlegende Hypervisor-Erkennung und die Einrichtung der +Plattform. +Wenn Sie N sagen, werden alle Optionen in diesem Untermenü übersprungen und deaktiviert, und die +Linux-Gastunterstützung wird nicht eingebaut. + +\subsubsection{Enable paravirtualization code} +CONFIG\_PARAVIRT [=y] \textbf{[Y]}\\ +Der Kernel wird so verändert, dass er sich selbst modifizieren kann, wenn er unter einem Hypervisor +ausgeführt wird, was die Leistung gegenüber einer vollständigen Virtualisierung erheblich verbessern +kann. Wenn der Kernel jedoch ohne Hypervisor ausgeführt wird, ist er theoretisch langsamer und etwas +größer. + +\subsubsection{paravirt-ops debugging} +CONFIG\_PARAVIRT\_DEBUG [=n] \textbf{[N]}\\ +Ermöglicht das Debuggen von paravirt\_ops Interna. +Insbesondere BUG, wenn eine paravirt\_op fehlt, wenn sie aufgerufen wird. + +\subsubsection{Paravirtualization layer for spinlocks} +CONFIG\_PARAVIRT\_SPINLOCKS [=y] \textbf{[Y]}\\ +Paravirtualisierte Spinlocks ermöglichen es einem pvops-Backend, die Spinlock-Implementierung durch +etwas Virtualisierungsfreundliches zu ersetzen (z.~B. Blockieren der virtuellen CPU anstelle +von Spinning). +Dies hat nur minimale Auswirkungen auf native Kernel und bringt einen deutlichen Leistungsvorteil +für paravirtualisierte KVM/Xen-Kernel.\\ +Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y. + +\subsubsection{Xen guest support} +CONFIG\_XEN [=y] \textbf{[Y]}\\ +Dies ist der Linux-Xen-Port. Wenn Sie dies aktivieren, kann der Kernel in einer +paravirtualisierten Umgebung unter dem Xen-Hypervisor booten. + +\paragraph{Xen PV guest support}$~$\\ +CONFIG\_XEN\_PV [=y] \textbf{[Y]}\\ +Der Betrieb als Xen PV-Gast wird unterstützt. + +\subparagraph{Limit Xen pv-domain memory to 512GB}$~$\\ +CONFIG\_XEN\_512GB [=y] \textbf{[Y]}\\ +Begrenzen der paravirtualisierten Benutzerdomänen auf 512~GB RAM. +Die Xen-Tools und die Tools zur Analyse von Crash-Dumps unterstützen möglicherweise keine pv-Domänen +mit mehr als 512~GB~RAM. Diese Option steuert die Standardeinstellung des Kernels, um nur bis zu +512~GB oder mehr zu verwenden. +Es ist jederzeit möglich, die Standardeinstellung durch Angabe des Boot-Parameters +\texttt{xen\_512gb\_limit} zu ändern. + +\paragraph{Xen PVHVM guest support}$~$\\ +CONFIG\_XEN\_PVHVM\_GUEST [=y] \textbf{[Y]}\\ +Der Betrieb als Xen PVHVM-Gast wird unterstützt. + +\paragraph{Enable Xen debug and tuning parameters in debugfs}$~$\\ +CONFIG\_XEN\_DEBUG\_FS [=n] \textbf{[N]}\\ +Der Betrieb als Xen PV-Gast wird unterstützt. + +\paragraph{Xen PVH guest support}$~$\\ +CONFIG\_XEN\_PVH [=y] \textbf{[Y]}\\ +Der Betrieb als Xen PVH-Gast wird unterstützt. + +\subsubsection{Xen Dom0 support} +CONFIG\_XEN\_DOM0 [=y] \textbf{[Y]}\\ +Der Betrieb als Xen Dom0-Gast wird unterstützt. + +\subsubsection{Always use safe MSR accesses in PV guests} +CONFIG\_XEN\_PV\_MSR\_SAFE [=y] \textbf{[Y]}\\ +Verwenden Sie sichere (nicht fehlerhafte) MSR-Zugriffsfunktionen, auch wenn der MSR-Zugriff +ohnehin nicht fehlerhaft sein sollte. Der Standardwert kann mit dem Boot-Parameter +\texttt{xen\_msr\_safe} geändert werden. + +\subsubsection{KVM Guest support (including kvmclock)} +CONFIG\_KVM\_GUEST [=y] \textbf{[Y]}\\ +Diese Option ermöglicht verschiedene Optimierungen für die Ausführung unter dem KVM-Hypervisor. +Sie beinhaltet eine paravirtualisierte Uhr, so dass der Host dem Gast eine Zeitinfrastruktur wie +die Tageszeit und die Systemzeit zur Verfügung stellt, anstatt sich auf eine PIT-Emulation +(oder wahrscheinlich eine andere) durch das zugrunde liegende Gerätemodell zu verlassen. + +\subsubsection{Disable host haltpoll when loading haltpoll driver} +CONFIG\_ARCH\_CPUIDLE\_HALTPOLL [=y] \textbf{[Y]}\\ +(Haltpoll des Hosts beim Laden des Haltpoll-Treibers deaktivieren)\\ +Wenn Sie unter KVM virtualisieren, deaktiviert den haltpoll des Hosts. + +\subsubsection{Support for running PVH guests} +CONFIG\_PVH [=y] \textbf{[Y]}\\ +Diese Option aktiviert den PVH-Einstiegspunkt für virtuelle Gastmaschinen, +wie in der x86/HVM Direct Boot ABI angegeben. + +\subsubsection{Paravirtual steal time accounting} +CONFIG\_PARAVIRT\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\ +Wählen Sie diese Option aus, um die Berechnung der Zeit für das Stehlen von Aufgaben mit feiner +Granularität zu aktivieren. Die Zeit, die für die Ausführung anderer Aufgaben parallel zur aktuellen +vCPU aufgewendet wird, ist von der vCPU-Leistung abgezogen. Um dies zu berücksichtigen, +kann es zu geringen Leistungseinbußen kommen.\\ +Im Zweifelsfall geben Sie hier N an. + +\subsubsection{Jailhouse non-root cell support} +CONFIG\_JAILHOUSE\_GUEST [=y] \textbf{[Y]}\\ +Diese Option ermöglicht es, Linux als Gast in einer Jailhouse-Nicht-Root-Zelle auszuführen. +Sie können diese Option deaktiviert lassen, wenn Sie Jailhouse nur starten und Linux anschließend +in der Root-Zelle ausführen möchten. + +\subsubsection{ACRN Guest support} +CONFIG\_ACRN\_GUEST [=y] \textbf{[Y]}\\ +Diese Option ermöglicht die Ausführung von Linux als Gast im ACRN-Hypervisor. +ACRN ist ein flexibler, leichtgewichtiger Referenz-Open-Source-Hypervisor, der mit Blick auf Echtzeit +und Sicherheitskritik entwickelt wurde. Er wurde für eingebettete IOT mit kleinem Platzbedarf und +Echtzeitfunktionen entwickelt. Weitere Einzelheiten finden Sie unter \url{https://projectacrn.org/}. + +\subsubsection{Intel TDX (Trust Domain Extensions) - Guest Support} +CONFIG\_INTEL\_TDX\_GUEST [=y] \textbf{[Y]}\\ +Unterstützung der Ausführung als Gast unter Intel TDX.\\ +Ohne diese Unterstützung kann der Gastkernel nicht booten oder unter TDX laufen. TDX umfasst +Speicherverschlüsselungs- und Integritätsfunktionen, die die Vertraulichkeit und Integrität des +Gastspeicherinhalts und des CPU-Status schützen. TDX-Gäste sind vor einigen Angriffen durch den +VMM geschützt. + +\subsection{Processor family (Generic-x86-64) \texorpdfstring{$\rightarrow$}{->}} +Dies ist der Prozessortyp Ihrer CPU. Diese Information wird für Optimierungszwecke verwendet. +Um einen Kernel zu kompilieren, der auf allen unterstützten x86-CPU-Typen laufen kann (wenn auch +nicht optimal schnell), können Sie hier \glqq 486\grqq{} angeben. Beachten Sie, dass der 386er +nicht mehr unterstützt wird, dies schließt AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, +UMC 486SX-S und den NexGen Nx586 ein. Der Kernel läuft nicht notwendigerweise auf älteren +Architekturen als der von Ihnen gewählten, z.~B. läuft ein Pentium-optimierter Kernel auf einem PPro, +aber nicht unbedingt auf einem i486. + +Hier sind die empfohlenen Einstellungen für höchste Geschwindigkeit: +\begin{itemize} + \item \texttt{486} für den AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 oder SL/SLC/SLC2/SLC3/SX/SX2 und UMC U5D oder U5S. + \item \texttt{586} für generische Pentium-CPUs, denen das TSC-Register (Zeitstempelzähler) fehlt. + \item \texttt{Pentium-Classic} für den Intel Pentium. + \item \texttt{Pentium-MMX} für den Intel Pentium MMX. + \item \texttt{Pentium-Pro} für den Intel Pentium Pro. + \item \texttt{Pentium-II} für den Intel Pentium II oder den Pre-Coppermine Celeron. + \item \texttt{Pentium-III} für den Intel Pentium III oder Coppermine Celeron. + \item \texttt{Pentium-4} für den Intel Pentium 4 oder den P4-basierten Celeron. + \item \texttt{K6} für den AMD K6, K6-II und K6-III (auch bekannt als K6-3D). + \item \texttt{Athlon} für die AMD K7-Familie (Athlon/Duron/Thunderbird). + \item \texttt{Opteron/Athlon64/Hammer/K8} für alle K8 und neuere AMD-CPUs. + \item \texttt{Crusoe} für die Transmeta Crusoe-Serie. + \item \texttt{Efficeon} für die Transmeta Efficeon-Reihe. + \item \texttt{Winchip-C6} für den ursprünglichen IDT-Winchip. + \item \texttt{Winchip-2} für IDT-Winchips mit 3dNow! Fähigkeiten. + \item \texttt{AMD Elan} für die 32-Bit AMD Elan Embedded CPU. + \item \texttt{GeodeGX1} für Geode GX1 (Cyrix MediaGX). + \item \texttt{Geode GX/LX} für AMD Geode GX und LX Prozessoren. + \item \texttt{CyrixIII/VIA C3} für VIA Cyrix III oder VIA C3. + \item \texttt{VIA C3-2} für VIA C3-2 "Nehemiah" (Modell 9 und höher). + \item \texttt{VIA C7} für VIA C7. + \item \texttt{Intel P4} für die Pentium 4/Netburst-Mikroarchitektur. + \item \texttt{Core 2/newer Xeon} für alle Core2 und neueren Intel-CPUs. + \item \texttt{Intel Atom} für die CPUs mit Atom-Mikroarchitektur. + \item \texttt{Generic-x86-64} für einen Kernel, der auf jeder x86-64-CPU läuft. +\end{itemize} +Weitere Details finden Sie im Hilfetext der jeweiligen Option. Wenn Sie nicht wissen, +was Sie tun sollen, wählen Sie \texttt{486}.\\[1em] +Derzeit (Kernelversion 6.6.x) können Sie nur aus fünf auswählen: + +\subsubsection{Opteron/Athlon64/Hammer/K8} +CONFIG\_MK8 [=n] \textbf{[N]}\\ +Wählen Sie diese Option für einen Prozessor der AMD Opteron- oder Athlon64 Hammer"=Fa\-mi\-lie. +Er\-mög\-licht die Verwendung einiger erweiterter Anweisungen und übergibt entsprechende +Optimierungsflags an den GCC. + +\subsubsection{Intel P4 / older Netburst based Xeon} +CONFIG\_MPSC [=n] \textbf{[N]}\\ +Optimiert für Intel Pentium 4, Pentium D und ältere Nocona/Dempsey Xeon CPUs mit Intel 64bit, +die mit x86-64 kompatibel sind. Beachten Sie, dass die neuesten Xeons (Xeon 51xx und 53xx) nicht +auf dem Netburst-Kern basieren und diese Option nicht verwenden sollten.\\ +Sie können sie anhand des Feldes cpu family in /proc/cpuinfo unterscheiden. +Familie 15 ist ein älterer Xeon, Familie 6 ein neuerer. + +\subsubsection{Intel P4 / older Netburst based Xeon} +CONFIG\_MCORE2 [=n] \textbf{[Y]}\\ +Wählen Sie dies für Intel Core 2 und neuere Core 2 Xeons (Xeon 51xx und 53xx) CPUs.\\ +Sie können neuere von älteren Xeons anhand der CPU-Familie in /proc/cpuinfo unterscheiden. +Neuere haben 6 und ältere 15 (kein Tippfehler). + +\subsubsection{Intel Atom} +CONFIG\_MATOM [=n] \textbf{[N]}\\ +Wählen Sie diese Option für die Intel Atom-Plattform. Intel Atom CPUs haben eine +In-Order-Pipelining-Architektur und können daher von entsprechend optimiertem Code profitieren. +Verwenden Sie einen aktuellen GCC mit spezieller Atom-Unterstützung, um die Vorteile dieser Option +voll ausschöpfen zu können. + +\subsubsection{Generic-x86-64} +CONFIG\_GENERIC\_CPU [=y] \textbf{[N]}\\ +Allgemeine x86-64-CPU. Läuft gleich gut auf allen x86-64-CPUs. + +\subsection{Old AMD GART IOMMU support} +CONFIG\_GART\_IOMMU [=n] \textbf{[N]}\\ +Bietet einen Treiber für ältere AMD Athlon64/Opteron/Turion/Sempron GART basierte Hardware +\mbox{IOMMUs} an. +Der GART unterstützt vollen DMA-Zugriff für Geräte mit 32-Bit-Zugriffsbeschränkungen auf Systemen +mit mehr als 3~GB. Dies wird normalerweise für USB, Sound, viele IDE/SATA-Chipsätze und einige andere +Geräte benötigt. Neuere Systeme haben in der Regel eine moderne AMD IOMMU, die über die +Konfigurationsoption CONFIG\_AMD\_IOMMU=y unterstützt wird. In normalen Konfigurationen ist dieser +Treiber nur aktiv, wenn er benötigt wird: +Es sind mehr als 3~GB Arbeitsspeicher vorhanden und das System enthält ein auf 32~Bit +begrenztes Gerät.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Enable Maximum number of SMP Processors and NUMA Nodes} +CONFIG\_MAXSMP [=n] \textbf{[N]}\\ +Aktivieren der maximalen Anzahl von CPUs- und NUMA-Knoten für diese Architektur.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Maximum number of CPUs} +CONFIG\_NR\_CPUS [=320] \textbf{[8]}\\ +Hier können Sie die maximale Anzahl von CPUs angeben, die dieser Kernel unterstützen soll. +Wenn CPUMASK\_OFFSTACK aktiviert ist, ist der maximal unterstützte Wert 8192, andernfalls +ist der maximale Wert 512. Der Mindestwert, der Sinn macht, ist 2. + +Dies dient lediglich dazu, Speicher zu sparen: jede unterstützte CPU fügt dem Kernel-Image +etwa 8~kB hinzu. + +\subsection{Cluster scheduler support} +CONFIG\_SCHED\_CLUSTER [=y] \textbf{[N]}\\ +Die Unterstützung des Cluster-Schedulers verbessert die Entscheidungsfindung des CPU-Schedulers +beim Umgang mit Maschinen, die Cluster von CPUs haben. Mit Cluster sind in der Regel mehrere CPUs +gemeint, die eng beieinander liegen und sich Mid-Level-Caches, Last-Level-Cache-Tags oder interne +Busse teilen. + +\subsection{Multi-core scheduler support} +CONFIG\_SCHED\_MC [=y] \textbf{[Y]}\\ +Die Unterstützung des Multi-Core-Schedulers verbessert die Entscheidungsfindung des CPU-Schedulers +beim Umgang mit Multi-Core-CPU-Chips auf Kosten eines leicht erhöhten Overheads an einigen Stellen.\\ +Wenn Sie unsicher sind, geben Sie hier N an. + +\subsubsection{CPU core priorities scheduler support} +CONFIG\_SCHED\_MC\_PRIO [=y] \textbf{[Y]}\\ +Bei CPUs mit Intel Turbo-Boost-Max-Technik 3.0 wird die Reihenfolge der Kerne bei der Herstellung +festgelegt, so dass bestimmte Kerne höhere Turbofrequenzen erreichen können +(bei Single-Thread-Arbeitslasten) als andere. Durch die Aktivierung dieser Kernel-Funktion wird +der Scheduler über die TBM3- (auch ITMT-) Prioritätsreihenfolge der CPU-Kerne informiert und passt +die CPU-Auswahllogik des Schedulers entsprechend an, so dass eine höhere Gesamtsystemleistung +erzielt werden kann. Diese Funktion hat keine Auswirkungen auf CPUs ohne diese Funktion.\\ +Wenn Sie unsicher sind, geben Sie hier Y an. + +\subsection{Reroute for broken boot IRQs} +CONFIG\_X86\_REROUTE\_FOR\_BROKEN\_BOOT\_IRQS [=y] \textbf{[Y]}\\ +Diese Option ermöglicht eine Umgehung, die eine Quelle für unerwünschte Unterbrechungen behebt. +Dies wird empfohlen, wenn die Thread-Interrupt-Behandlung auf Systemen verwendet wird, bei denen +die Erzeugung von überflüssigen \glqq Boot-Interrupts\grqq{} nicht deaktiviert werden kann. +Einige Chipsätze erzeugen einen Legacy-INTx-\glqq Boot-IRQ\grqq{}, wenn der IRQ-Eintrag im +IO-APIC des Chipsatzes maskiert ist (wie es z.~B. der RT-Kernel während der Interruptbehandlung +tut). Bei Chipsätzen, bei denen diese Boot-IRQ-Erzeugung nicht deaktiviert werden kann, wird +durch diese Abhilfe die ursprüngliche IRQ-Leitung maskiert, so dass nur der entsprechende +\glqq Boot-IRQ\grqq{} an die CPUs geliefert wird. Die Problemumgehung weist den Kernel außerdem +an, den IRQ-Handler auf der Boot-IRQ-Leitung einzurichten. Auf diese Weise wird nur ein Interrupt +an den Kernel geliefert. Andernfalls kann der zweite Interrupt den Kernel dazu veranlassen, +(lebenswichtige) Interrupt-Leitungen herunterzufahren. Betrifft nur +\glqq defekte\grqq{} Chipsätze. Die gemeinsame Nutzung von Interrupts kann auf diesen Systemen +erhöht werden. + +\subsection{Machine Check / overheating reporting} +CONFIG\_X86\_MCE [=y] \textbf{[Y]}\\ +(Maschinenprüfung / Überhitzungsmeldung) +Durch die Unterstützung von Machine Check kann der Prozessor den Kernel benachrichtigen, +wenn er ein Problem feststellt (z.~B. Überhitzung, Datenbeschädigung). Welche Maßnahmen der +Kernel ergreift, hängt von der Schwere des Problems ab und reicht von Warnmeldungen bis +zum Anhalten des Rechners. + +\subsubsection{Support for deprecated /dev/mcelog character device} +CONFIG\_X86\_MCELOG\_LEGACY [=n] \textbf{[N]}\\ +Aktivierung der Unterstützung für /dev/mcelog, die vom alten mcelog-Benutzerraum-Logging-Daemon +(mcelog userspace logging daemon) benötigt wird. Erwägen Sie den Umstieg auf die neue +Generation des rasdaemon. + +\subsubsection{Intel MCE features} +CONFIG\_X86\_MCE\_INTEL [=y] \textbf{[Y]}\\ +Zusätzliche Unterstützung für Intel-spezifische MCE-Funktionen wie den +Temperaturmonitor (thermal monitor). + +\subsubsection{AMD MCE features} +CONFIG\_X86\_MCE\_AMD [=y] \textbf{[N]}\\ +Zusätzliche Unterstützung für AMD-spezifische MCE-Funktionen wie den +DRAM-Fehlerschwellenwert (DRAM Error Threshold). + +\subsection{Machine check injector support} +CONFIG\_X86\_MCE\_INJECT [=m] \textbf{[M]}\\ +Unterstützung bei der Einspeisung von Maschinenprüfungen zu Testzwecken. Wenn Sie nicht wissen, +was eine Maschinenprüfung ist und Sie keine Kernel-Qualitätssicherung durchführen, können Sie +mit Sicherheit N sagen, also nein. + +\subsection{Performance monitoring \texorpdfstring{$\rightarrow$}{->}} +Leistungsüberwachung + +\subsubsection{Intel uncore performance events} +CONFIG\_PERF\_EVENTS\_INTEL\_UNCORE [=m] \textbf{[M]}\\ +Unterstützung für Intel-Uncore-Leistungsereignisse. Diese sind auf NehalemEX +und moderneren Prozessoren verfügbar. + +\subsubsection{Intel/AMD rapl performance events} +CONFIG\_PERF\_EVENTS\_INTEL\_RAPL [=m] \textbf{[M]}\\ +Unterstützung für Intel- und AMD-RAPL-Leistungsereignisse zur +Leistungsüberwachung auf modernen Prozessoren. + +\subsubsection{Intel cstate performance events} +CONFIG\_PERF\_EVENTS\_INTEL\_CSTATE [=m] \textbf{[M]}\\ +Einbeziehung der Unterstützung für Intel cstate performance events für die +Leistungsüberwachung auf modernen Prozessoren. + +\subsubsection{AMD Processor Power Reporting Mechanism} +CONFIG\_PERF\_EVENTS\_AMD\_POWER [=m] \textbf{[M]}\\ +Unterstützung von Stromversorgungsberichten für AMD-Prozessoren.\\ +Derzeit wird die Schnitt\-stel\-le X86\_FEATURE\_ACC\_POWER +(CPUID Fn8000\_0007\_EDX[12]) genutzt, +um den durchschnittlichen Stromverbrauch von Prozessoren der Familie 15h zu +berechnen. + +\subsubsection{AMD Uncore performance events} +CONFIG\_PERF\_EVENTS\_AMD\_UNCORE [=m] \textbf{[M]}\\ +Unterstützung für AMD-Uncore-Leistungsereignisse für die Verwendung mit z.~B.\\ +\texttt{perf stat -e amd\_l3/.../,amd\_df/.../}.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{amd-uncore} genannt. + +\subsubsection{AMD Zen3 Branch Sampling support} +CONFIG\_PERF\_EVENTS\_AMD\_BRS [=y] \textbf{[Y]}\\ +Aktivieren Sie die AMD Zen3 Branch Sampling-Unterstützung (BRS), die bis zu 16 aufeinanderfolgende +Verzweigungen in Registern erfasst. + +\subsubsection{IOPERM and IOPL Emulation} +CONFIG\_X86\_IOPL\_IOPERM [=y] \textbf{[Y]}\\ +Dies ermöglicht die ioperm()- und iopl()-Systemaufrufe, die für Legacy-Anwendungen erforderlich sind. +Bei der Legacy-IOPL-Unterstützung handelt es sich um einen weitreichenden Mechanismus, der es dem Userspace +ermöglicht, neben dem Zugriff auf alle 65536 E/A-Ports auch Interrupts zu deaktivieren. Um diesen Zugriff +zu erhalten, benötigt der Aufrufer CAP\_SYS\_RAWIO-Fähigkeiten und die Erlaubnis von potenziell aktiven +Sicherheitsmodulen. Die Emulation schränkt die Funktionalität des Syscalls auf den Zugriff auf alle E/A-Ports +ein, verhindert aber die Möglichkeit, Interrupts aus dem Userspace zu deaktivieren, was bei Verwendung des +Hardware-IOPL-Mechanismus möglich wäre. + +\subsubsection{Late microcode loading (DANGEROUS)} +CONFIG\_MICROCODE\_LATE\_LOADING [=n] \textbf{[N]}\\ +Das späte Laden von Mikrocode, wenn das System bereits läuft und Befehle ausführt, ist eine heikle +Angelegenheit und sollte nach Möglichkeit vermieden werden. Allein die Abfolge der Synchronisierung +aller Kerne und SMT-Threads ist ein zerbrechlicher Tanz, der nicht garantiert, dass die Kerne nach +dem Laden nicht softlocking werden. Daher sollten Sie dies auf eigenes Risiko tun. Das späte Laden +färbt auch den Kernel. + +\subsubsection{/dev/cpu/*/msr - Model-specific register support} +CONFIG\_X86\_MSR [=y] \textbf{[Y]}\\ +Dieses Gerät ermöglicht privilegierten Prozessen den Zugriff auf die modellspezifischen x86-Register (MSRs).\\ +Es ist ein Zeichengerät mit Major 202 und Minors 0 bis 31 für +\texttt{/dev/cpu/0/msr} bis \texttt{/dev/cpu/31/msr}. +MSR-Zugriffe sind bei Multiprozessorsystemen an eine bestimmte CPU gerichtet. + +\subsubsection{/dev/cpu/*/cpuid - CPU information support} +CONFIG\_X86\_CPUID [=y] \textbf{[Y]}\\ +Dieses Gerät ermöglicht Prozessen den Zugriff auf den x86 CPUID-Befehl, der auf einem bestimmten Prozessor +ausgeführt werden soll. Es handelt sich um ein Zeichengerät mit Major 203 und Minors 0 bis 31 für +\texttt{/dev/cpu/0/cpuid} bis \texttt{/dev/cpu/31/cpuid}. + +\subsubsection{Enable 5-level page tables support} +CONFIG\_X86\_5LEVEL [=y] \textbf{[Y]}\\ +5-Level-Paging ermöglicht den Zugriff auf einen größeren Adressraum: +bis zu 128~PiB virtueller Adressraum und 4~PiB physikalischer Adressraum. Es wird von zukünftigen Intel-CPUs +unterstützt werden. Ein Kernel mit aktivierter Option kann auf Rechnern gebootet werden, die 4- oder 5-Level-Paging +unterstützen. Siehe Documentation/arch/x86/x86\_64/5level-paging.rst für weitere Informationen.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Enable statistic for Change Page Attribute} +CONFIG\_X86\_CPA\_STATISTICS [=y] \textbf{[Y]}\\ +Statistiken über den Mechanismus zum Ändern von Seitenattributen offenlegen, der dabei hilft, +die Wirksamkeit der Erhaltung großer und umfangreicher Seitenzuordnungen zu bestimmen, +wenn Zuordnungsschutzmaßnahmen geändert werden. + +\subsubsection{AMD Secure Memory Encryption (SME) support} +CONFIG\_AMD\_MEM\_ENCRYPT [=y] \textbf{[N]}\\ +Sagen Sie Ja, um die Unterstützung für die Verschlüsselung des Systemspeichers zu aktivieren. +Dies erfordert einen AMD-Prozessor, der Secure Memory Encryption (SME) unterstützt. + +\paragraph{Activate AMD Secure Memory Encryption (SME) by default}$~$\\ +CONFIG\_AMD\_MEM\_ENCRYPT\_ACTIVE\_BY\_DEFAULT [=n] \textbf{[N]}\\ +Sagen Sie Ja, damit der Systemspeicher standardmäßig verschlüsselt wird, wenn er auf einem +AMD"=Pro\-zes\-sor läuft, der Secure Memory Encryption (SME) unterstützt. +Wenn Sie Y wählen, kann die Verschlüsselung des Systemspeichers mit der Befehlszeilenoption +\texttt{mem\_encrypt=off} deaktiviert werden. Ist der Wert auf N gesetzt, kann die Verschlüsselung +des Systemspeichers mit der Befehlszeilenoption \texttt{mem\_encrypt=on} aktiviert werden. + +\subsubsection{NUMA Memory Allocation and Scheduler Support} +CONFIG\_NUMA [=y] \textbf{[Y]}\\ +Aktivieren Sie die NUMA-Unterstützung (Non-Uniform Memory Access). Der Kernel wird versuchen, den +von einer CPU verwendeten Speicher dem lokalen Speicher-Controller der CPU zuzuweisen und dem Kernel +mehr Kenntnis über NUMA zu geben.\\ +Für 64-Bit wird dies empfohlen, wenn das System Intel Core i7 (oder höher), +AMD Opteron oder EM64T NUMA ist.\\ +Für 32-Bit ist dies nur erforderlich, wenn Sie einen 32-Bit-Kernel auf einer 64-Bit-NUMA-Plattform booten. +Andernfalls sollten Sie N angeben. + +\paragraph{Old style AMD Opteron NUMA detection}$~$\\ +CONFIG\_AMD\_NUMA [=y] \textbf{[N]}\\ +Aktivieren Sie die Erkennung der AMD NUMA-Knoten-Topologie. Wenn Sie ein AMD-Multi\-pro\-zes\-sor\-system haben, +sollten Sie hier Y angeben. Dies verwendet eine alte Methode, um die NUMA-Konfiguration direkt von der +eingebauten Northbridge des Opteron zu lesen.\\ +Es wird empfohlen, stattdessen +X86\_64\_ACPI\_NUMA zu verwenden, +das auch Priorität hat, wenn beide einkompiliert sind. + +\paragraph{ACPI NUMA detection}$~$\\ +CONFIG\_X86\_64\_ACOU\_NUMA [=y] \textbf{[Y]}\\ +Aktivieren Sie die auf ACPI SRAT basierende Knoten-Topologie-Erkennung. + +\paragraph{NUMA emulation}$~$\\ +CONFIG\_NUMA\_EMU [=n] \textbf{[N]}\\ +Aktivieren Sie die NUMA-Emulation. Eine flache Maschine wird in virtuelle Knoten aufgeteilt, wenn sie mit +\texttt{numa=fake=N} gebootet wird, wobei N die Anzahl der Knoten ist. +Dies ist nur für die Fehlersuche nützlich. + +\paragraph{Maximum NUMA Nodes (as a power of 2)}$~$\\ +CONFIG\_NODES\_SHIFT [=5] \textbf{[5]}\\ +(Maximale NUMA-Knoten (als eine Potenz von 2))\\ +Geben Sie die maximale Anzahl der auf dem Zielsystem verfügbaren NUMA-Knoten an. +Erhöht den reservierten Speicherplatz für verschiedene Tabellen. + +\subsubsection{Enable sysfs memory/probe interface} +CONFIG\_ARCH\_MEMORY\_PROBE [=n] \textbf{[N]}\\ +Diese Option aktiviert eine sysfs-Speicher/Probe-Schnittstelle für Tests.\\ +Siehe Documentation/admin-guide/mm/memory-hotplug.rst für weitere Informationen. +Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N. + +\subsubsection{Support non-standard NVDIMMs and ADR protected memory} +CONFIG\_X86\_PMEM\_LEGACY [=m] \textbf{[M]}\\ +Behandeln Sie Speicher, der mit dem nicht standardmäßigen e820-Typ von 12 markiert ist, wie er vom +Intel Sandy Bridge-EP Referenz-BIOS verwendet wird, als geschützten Speicher. +Der Kernel bietet diese Regionen dem \texttt{pmem}-Treiber an, so dass sie für persistenten Speicher +verwendet werden können.\\ +Sagen Sie Y, wenn Sie unsicher sind. + +\subsubsection{Check for low memory corruption} +CONFIG\_X86\_CHECK\_BIOS\_CORRUPTION [=y] \textbf{[Y]}\\ +Regelmäßige Überprüfung auf Speicherbeschädigung im niedrigen Speicher, die vermutlich durch das BIOS +verursacht wird. Auch wenn dies in der Konfiguration aktiviert ist, zur Laufzeit ist es deaktiviert. +Aktivieren Sie es, indem Sie \texttt{memory\_corruption\_check=1} in der Kernel-Befehlszeile eingeben. +Standardmäßig werden die unteren 64~k des Speichers alle 60 Sekunden überprüft; siehe die Parameter +\texttt{memory\_corruption\_check\_size} und \texttt{memory\_corruption\_check\_period} in +Documentation/admin-guide/kernel-parameters.rst, um dies anzupassen. +Wenn diese Option mit den Standardparametern aktiviert ist, hat sie so gut wie keinen Overhead, da sie +eine relativ kleine Menge an Speicher reserviert und diesen nur selten durchsucht. Sie erkennt Korruption +und verhindert, dass sie das laufende System beeinträchtigt. Sie ist jedoch als Diagnosewerkzeug gedacht; +wenn eine wiederholte BIOS-verursachte Beschädigung stets denselben Speicher betrifft, können Sie +\texttt{memmap=} verwenden, um zu verhindern, dass der Kernel diesen Speicher verwendet.\\[1em] +\noindent\fbox{% + \parbox{445\unitlength}{Hinweis: Kann ausgeschaltet werden, wenn im \texttt{journalctl} niemals + \glqq corrupted low memory\grqq{} erscheint.} +} + +\paragraph{Set the default setting of memory\_corruption\_check}$~$\\ +CONFIG\_X86\_BOOTPARAM\_MEMORY\_CORRUPTION\_CHECK [=y] \textbf{[Y]}\\ +Legt fest, ob der Standardstatus von \texttt{memory\_corruption\_check} ein- oder ausgeschaltet ist. + +\subsubsection{MTRR (Memory Type Range Register) support} +CONFIG\_MTRR [=y] \textbf{[Y]}\\ +Bei Prozessoren der Intel P6-Familie (Pentium Pro, Pentium II und später) können die Memory Type Range Register (MTRRs) +verwendet werden, um den Zugriff des Prozessors auf Speicherbereiche zu steuern. Dies ist besonders nützlich, wenn Sie +eine Videokarte (VGA) an einem PCI- oder AGP-Bus haben. Durch die Aktivierung von Write-Combining können +Bus-Schreibübertragungen zu einer größeren Übertragung kombiniert werden, bevor sie über den PCI/AGP-Bus geleitet +werden. Dies kann die Leistung von Bildschreiboperationen um das 2,5-fache oder mehr erhöhen. +Wenn Sie hier Y angeben, wird eine /proc/mtrr-Datei erstellt, die zur Manipulation der MTRRs Ihres Prozessors verwendet +werden kann. Normalerweise sollte der X-Server dies verwenden.\\ +Dieser Code hat eine recht generische Schnittstelle, so dass ähnliche Steuerregister auf anderen Prozessoren ebenfalls +leicht unterstützt werden können:\\ +Die Prozessoren Cyrix 6x86, 6x86MX und M II verfügen über Address Range Registers (ARRs), die eine ähnliche +Funktionalität wie MTRRs bieten. In diesen Fällen werden die ARRs zur Emulation der MTRRs verwendet. +Die AMD-Prozessoren K6-2 (Stepping 8 und höher) und K6-3 haben zwei MTRRs. Der Centaur C6 (WinChip) hat 8 MCRs, die +Schreibkombinationen ermöglichen. Alle diese Prozessoren werden von diesem Code unterstützt und es ist sinnvoll, hier +Y anzugeben, wenn Sie einen dieser Prozessoren haben.\\ +Die Angabe von Y an dieser Stelle behebt auch ein Problem mit fehlerhaften SMP-BIOSen, die die MTRRs nur für die +Boot-CPU und nicht für die sekundären CPUs setzen. Das kann zu allen möglichen Problemen führen, also ist es gut, +hier Y zu sagen.\\ +Sie können sicher Y sagen, auch wenn Ihr Rechner keine MTRRs hat, Sie werden nur etwa 9 KB zu Ihrem Kernel hinzufügen. +Siehe $<$file:Documentation/arch/x86/mtrr.rst$>$ für weitere Informationen. + +\paragraph{MTRR cleanup support}$~$\\ +CONFIG\_MTRR\_SANITIZER [=y] \textbf{[Y]}\\ +Umwandlung des MTRR-Layouts von kontinuierlich in diskret, damit X-Treiber Rückschreibeinträge hinzufügen können. +Kann mit \texttt{disable\_mtrr\_cleanup} in der Kernel-Kommandozeile deaktiviert werden. +Die größte MTRR-Eintragsgröße für einen kontinuierlichen Block kann mit \texttt{mtrr\_chunk\_size} festgelegt werden.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{MTRR cleanup enable value (0-1)}$~$\\ +CONFIG\_MTRR\_SANITIZER [=1] \textbf{[1]}\\ +Aktivieren Sie den \glqq mtrr cleanup\grqq{}-Standardwert + +\paragraph{MTRR cleanup spare reg num (0-7)}$~$\\ +CONFIG\_MTRR\_SANITIZER\_SPARE\_REG\_NR\_DEFAULT [=0] \textbf{[0]}\\ +MTRR cleanup spare entries Defaulteintrag, dies kann über +\texttt{mtrr\_spare\_reg\_nr=N} auf der Kernel-Be\-fehls\-zei\-le geändert werden. + +\subsubsection{Indirect Branch Tracking} +CONFIG\_X86\_KERNEL\_IBT [=y] \textbf{[Y]}\\ +Bauen Sie den Kernel mit Unterstützung für Indirect Branch Tracking auf, eine Hardware-Unterstützung, die die Integrität +des Kontrollflusses an den Rändern schützt. Sie erzwingt, dass alle indirekten Aufrufe auf einer ENDBR-Anweisung landen +müssen, und der Compiler wird den Code mit ihnen instrumentieren, damit dies geschieht.\\ +Zusätzlich zur Erstellung des Kernels mit IBT werden alle Funktionen, die keine indirekten Aufrufziele sind, versiegelt, +um zu verhindern, dass sie jemals zu solchen werden.\\ +Dies erfordert LTO wie objtool-Läufe und verlangsamt den Bau. Es reduziert jedoch die Anzahl der ENDBR-Anweisungen im +Kernel-Image erheblich. + +\subsubsection{Memory Protection Keys} +CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ +Memory Protection Keys bietet einen Mechanismus zur Erzwingung seitenbasierter Schutzmaßnahmen, ohne dass die +Seitentabellen geändert werden müssen, wenn eine Anwendung ihre Schutzdomänen ändert. Einzelheiten siehe +Documentation/core-api/protection-keys.rst\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{TSX enable mode () \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ +Intels TSX-Funktion (Transactional Synchronization Extensions) ermöglicht die Optimierung von Sperrprotokollen durch +Lock Elision, was zu einer spürbaren Leistungssteigerung führen kann. +Andererseits hat sich gezeigt, dass TSX für Seitenkanalangriffe (z.~B. TAA) ausgenutzt werden kann, und es ist +wahrscheinlich, dass in Zukunft weitere Angriffe dieser Art entdeckt werden. +Daher ist TSX standardmäßig nicht aktiviert (aka \texttt{tsx=off}). Ein Administrator kann diese Entscheidung durch den +Befehlszeilenparameter \texttt{tsx=on} außer Kraft setzen. +Auch wenn TSX aktiviert ist, versucht der Kernel, die bestmögliche TAA-Abschwächung zu aktivieren, je nach dem für +den jeweiligen Rechner verfügbaren Mikrocode. +Mit dieser Option kann der Standard-Tsx-Modus zwischen \texttt{tsx=on}, \texttt{=off} und \texttt{=auto} +eingestellt werden. Siehe +Documentation/admin-guide/kernel-parameters.txt für weitere Details. +Sagen Sie off, wenn Sie sich nicht sicher sind, auto, wenn TSX in Gebrauch ist, aber auf sicheren Plattformen +verwendet werden sollte, oder on, wenn TSX in Gebrauch ist und der Sicherheitsaspekt von tsx nicht relevant ist. + +\paragraph{off}$~$\\ +CONFIG\_X86\_INTEL\_TSX\_MODE\_OFF [=n] \textbf{[N]}\\ +TSX ist, wenn möglich, deaktiviert -- entspricht dem Befehlszeilenparameter \texttt{tsx=off}. + +\paragraph{on}$~$\\ +CONFIG\_X86\_INTEL\_TSX\_MODE\_ON [=n] \textbf{[N]}\\ +TSX ist auf TSX-fähiger Hardware immer aktiviert -- gleichbedeutend +mit dem Befehlszeilenparameter \texttt{tsx=on} + +\paragraph{auto}$~$\\ +CONFIG\_X86\_INTEL\_TSX\_MODE\_AUTO [=y] \textbf{[Y]}\\ +TSX wird auf TSX-fähiger Hardware aktiviert, die als sicher gegen Seitenkanalangriffe gilt -- gleichbedeutend +mit dem Befehlszeilenparameter \texttt{tsx=auto}. + +\subsubsection{Software Guard eXtensions (SGX)} +CONFIG\_X86\_SGX [=y] \textbf{[Y]}\\ +Intel(R) Software Guard eXtensions (SGX) ist eine Reihe von CPU-Befehlen, die von Anwendungen verwendet werden +können, um private Code- und Datenbereiche, die so genannten Enklaven, zu reservieren. Auf den privaten Speicher +einer Enklave kann nur von Code zugegriffen werden, der innerhalb der Enklave läuft. Zugriffe von außerhalb der +Enklave, einschließlich anderer Enklaven, werden von der Hardware nicht zugelassen.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{X86 userspace shadow stack} +CONFIG\_X86\_USER\_SHADOW\_STACK [=y] \textbf{[Y]}\\ +Der Schattenstapelschutz ist eine Hardwarefunktion, die eine Beschädigung der Rücksprungadresse einer Funktion +erkennt. Dies hilft, ROP-Angriffe abzuschwächen. Anwendungen müssen aktiviert sein, um sie zu nutzen, und der +alte Userspace erhält den Schutz nicht "umsonst". CPUs, die Shadow Stacks unterstützen, wurden erstmals im +Jahr~2020 vorgestellt. Weitere Informationen finden Sie unter Documentation/arch/x86/shstk.rst.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{EFI runtime service support} +CONFIG\_EFI [=y] \textbf{[Y]}\\ +Dies ermöglicht es dem Kernel, verfügbare EFI-Laufzeitdienste (wie die EFI-Variablendienste) zu nutzen.\\ +Diese Option ist nur auf Systemen mit EFI-Firmware sinnvoll. Außerdem sollten Sie den neuesten ELILO-Lader +verwenden, der unter \url{http://elilo.sourceforge.net} verfügbar ist, um die Vorteile der +EFI-Laufzeitdienste zu nutzen. Aber auch mit dieser Option sollte der resultierende Kernel weiterhin auf +bestehenden Nicht-EFI-Plattformen booten. + +\paragraph{EFI stub support}$~$\\ +CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ +Mit dieser Kernel-Funktion kann ein bzImage direkt von der EFI-Firmware geladen werden, ohne dass ein +Bootloader erforderlich ist.\\ +Weitere Informationen finden Sie unter Documentation/admin-guide/efi-stub.rst. + +\subparagraph{EFI handover protocol (DEPRECATED)}$~$\\ +CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ +(EFI-Übergabeprotokoll (VERALTET))\\ +Wählen Sie dies, um Unterstützung für das veraltete EFI-Handover-Protokoll zu erhalten, das alternative +Einstiegspunkte in den EFI-Stub definiert. Dies ist eine Praxis, die keine Grundlage in der UEFI-Spezifikation +hat und ein Vorwissen seitens des Bootloaders über Linux/x86-spezifische Wege der Übergabe der Kommandozeile +und initrd erfordert, und wo im Speicher diese Assets geladen werden können.\\ +Im Zweifelsfall sagen Sie Y. Auch wenn die entsprechende Unterstützung im Upstream-GRUB oder anderen +Bootloadern nicht vorhanden ist, bauen die meisten Distros GRUB mit zahlreichen Downstream-Patches und können +sich daher auf das Handover-Protokoll verlassen. + +\subparagraph{EFI mixed-mode support}$~$\\ +CONFIG\_EFI\_MIXED [=y] \textbf{[Y]}\\ +Wenn Sie diese Funktion aktivieren, kann ein 64-Bit-Kernel auf einer 32-Bit-Firmware gebootet werden, +vorausgesetzt, Ihre CPU unterstützt den 64-Bit-Modus.\\ +Beachten Sie, dass es nicht möglich ist, einen Mixed-Mode-fähigen Kernel über den EFI-Boot-Stub zu +booten -- es muss ein Bootloader verwendet werden, der das EFI-Handover-Protokoll unterstützt.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Enable EFI fake memory map}$~$\\ +CONFIG\_EFI\_FAKE\_MEMMAP [=n] \textbf{[N]}\\ +Wenn Sie hier Y angeben, wird die Boot-Option \texttt{efi\_fake\_mem} aktiviert. +Durch Angabe dieses Parameters können Sie einem bestimmten Speicherbereich beliebige Attribute hinzufügen, +indem Sie die ursprüngliche (von der Firmware bereitgestellte) EFI-Memmap aktualisieren. +Dies ist nützlich für das Debugging von EFI-Memmap-bezogenen Funktionen, z.~B. Address Range Mirroring. + +\subsubsection{Timer frequency () \texorpdfstring{$\rightarrow$}{->}} +Ermöglicht die Konfiguration der Timer-Frequenz. Es ist üblich, den Timer-Interrupt mit 1000 Hz laufen +zu lassen, aber 100 Hz kann für Server und NUMA-Systeme vorteilhafter sein, die keine schnelle Reaktion +für die Benutzerinteraktion benötigen und bei denen es zu Buskonflikten und Cacheline-Bounches als Folge +von Timer-Interrupts kommen kann. Beachten Sie, dass der Timer-Interrupt in einer SMP-Umgebung auf jedem +Prozessor auftritt, was zu NR\_CPUS * HZ Anzahl der Timer-Interrupts pro Sekunde führt. + +\paragraph{100~Hz}$~$\\ +CONFIG\_HZ\_100 [=n] \textbf{[N]}\\ +100~Hz ist eine typische Wahl für Server, SMP- und NUMA-Systeme mit vielen Prozessoren, die eine +geringere Leistung aufweisen können, wenn zu viele Timer-Interrupts auftreten. +\paragraph{250~Hz}$~$\\ +CONFIG\_HZ\_250 [=n] \textbf{[N]}\\ +250~Hz ist ein guter Kompromiss, der eine gute Serverleistung ermöglicht und auch auf SMP- und +NUMA-Systemen eine gute interaktive Reaktionsfähigkeit zeigt. Wenn Sie NTSC-Video oder Multimedia +verwenden, wählen Sie stattdessen 300~Hz. +\paragraph{300~Hz}$~$\\ +CONFIG\_HZ\_300 [=y] \textbf{[Y]}\\ +300~Hz ist ein guter Kompromiss, der eine gute Serverleistung und gleichzeitig eine gute interaktive +Reaktionsfähigkeit selbst auf SMP- und NUMA-Systemen ermöglicht und sowohl bei PAL- als auch bei +NTSC-Bildraten für Video- und Multimedia-Arbeiten genau eingehalten wird. +\paragraph{1000~Hz}$~$\\ +CONFIG\_HZ\_1000 [=n] \textbf{[N]}\\ +1000~Hz ist die bevorzugte Wahl für Desktop-Systeme und andere Systeme, die schnelle interaktive +Reaktionen auf Ereignisse erfordern. + +\subsubsection{Physical address where the kernel is loaded} +CONFIG\_PHYSICAL\_START [=0x1000000] \textbf{[0x1000000]}\\ +Dies gibt die physikalische Adresse an, unter der der Kernel geladen wird. Wenn der Kernel nicht verschiebbar ist +(CONFIG\_RELOCATABLE=n), dekomprimiert sich bzImage an die oben genannte physikalische Adresse und wird von dort +aus gestartet. Andernfalls wird bzImage von der Adresse aus gestartet, an der es vom Bootloader geladen wurde, +und ignoriert die obige physikalische Adresse. In normalen kdump-Fällen muss diese Option nicht gesetzt/geändert +werden, da bzImage nun als vollständig relozierbares Image (CONFIG\_RELOCATABLE=y) kompiliert und zum Laden und +Ausführen von einer anderen Adresse verwendet werden kann. Diese Option ist vor allem für die Leute nützlich, +die kein bzImage für die Erfassung des Crash-Dumps verwenden wollen und stattdessen vmlinux einsetzen wollen. +vmlinux ist nicht relocatable, daher muss ein Kernel speziell kompiliert werden, um von einem bestimmten +Speicherbereich (normalerweise ein reservierter Bereich) zu laufen, und diese Option ist sehr nützlich. +Wenn Sie also bzImage zum Erfassen des Crash-Dumps verwenden, lassen Sie den Wert hier unverändert auf +0x1000000 und setzen Sie CONFIG\_RELOCATABLE=y.\\ +Andernfalls, wenn Sie vmlinux für die Aufzeichnung des Crash-Dumps verwenden wollen, ändern Sie diesen Wert +auf den Beginn des reservierten Bereichs. Mit anderen Worten, er kann auf der Grundlage des "X"-Wertes gesetzt +werden, wie er im "crashkernel=YM@XM"-Befehlszeilen-Boot-Parameter angegeben ist, der an den panic-ed-Kernel +übergeben wird. Weitere Details zu Crash Dumps finden Sie in Documentation/admin-guide/kdump/kdump.rst. +Die Verwendung von bzImage für die Aufzeichnung des Crash-Dumps wird empfohlen, da man nicht zwei Kernel +erstellen muss. Derselbe Kernel kann als Produktionskernel und als Erfassungskernel verwendet werden. Die obige +Option sollte verschwinden, nachdem die Unterstützung von relocatable bzImage eingeführt wurde. Sie ist aber noch +vorhanden, weil es Benutzer gibt, die weiterhin vmlinux für die Dump-Erfassung verwenden. Diese Option sollte im +Laufe der Zeit verschwinden. Ändern Sie diese Option nicht, wenn Sie nicht wissen, was Sie tun. + +\subsubsection{Build a relocatable kernel} +CONFIG\_RELOCATABLE [=y] \textbf{[Y]}\\ +Dadurch wird ein Kernel-Image erstellt, das die Informationen über den Standortwechsel beibehält, so dass es an +einem anderen Ort als den standardmäßigen 1~MB geladen werden kann. +Die Verschiebungen machen das Kernel-Binary etwa 10~\% größer, werden aber zur Laufzeit verworfen. +Eine Anwendung ist der kexec on panic-Fall, bei dem der Wiederherstellungs-Kernel an einer anderen +physikalischen Adresse liegen muss als der primäre Kernel. +Anmerkung: Wenn CONFIG\_RELOCATABLE=y ist, dann läuft der Kernel von der Adresse aus, an der er geladen wurde, +und von der zur Kompilierzeit physische Adresse (CONFIG\_PHYSICAL\_START) als Mindeststandort verwendet. + +\paragraph{Randomize the address of the kernel image (KASLR)}$~$\\ +CONFIG\_RANDOMIZE\_BASE [=y] \textbf{[Y]}\\ +Zur Unterstützung der Kernel Address Space Layout Randomization (KASLR) werden +die physische Adresse, an der das Kernel-Image dekomprimiert wird, und +die virtuelle Adresse, auf die das Kernel-Image abgebildet wird, +randomisiert. Dies ist ein Sicherheitsmerkmal, das Exploit-Versuche verhindert, +die auf der Kenntnis des Speicherorts von Kernel-Code-Interna beruhen. +Bei 64-Bit werden die physische und die virtuelle Adresse des Kernels getrennt randomisiert. +Die physische Adresse liegt irgendwo zwischen 16~MB und dem Anfang des physischen Speichers +(bis zu 64~TB). Die virtuelle Adresse wird von 16~MB bis zu 1~GB randomisiert +(9 Bits Entropie). +Beachten Sie, dass dadurch auch der für Kernel-Module verfügbare Speicherplatz +von 1,5~GB auf 1~GB reduziert wird. +Bei 32-Bit werden die physischen und virtuellen Adressen des Kernels zusammen +randomisiert. Sie werden von 16~MB bis zu 512~MB randomisiert (8 Bits Entropie).\\ +Die Entropie wird mit dem RDRAND-Befehl erzeugt, sofern er unterstützt wird. +Wenn RDTSC unterstützt wird, wird sein Wert ebenfalls in den Entropie-Pool +gemischt. Wenn weder RDRAND noch RDTSC unterstützt werden, wird die Entropie aus +dem i8254-Zeitgeber gelesen. Die nutzbare Entropie ist dadurch begrenzt, dass der +Kernel mit 2~GB-Adressierung aufgebaut ist und dass PHYSICAL\_ALIGN mindestens +2~MB betragen muss. +Infolgedessen sind theoretisch nur 10 Bits Entropie möglich, aber die +Implementierungen sind aufgrund des Speicherlayouts noch weiter eingeschränkt.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Alignment value to which kernel should be aligned} +CONFIG\_PHYSICAL\_ALIGN [=0x200000] \textbf{[0x200000]}\\ +Dieser Wert legt die Ausrichtungsbeschränkungen für die physikalische Adresse fest, von der der Kernel geladen und +ausgeführt wird. Der Kernel wird für eine Adresse kompiliert, die den obigen Ausrichtungsbeschränkungen entspricht. +Wenn der Bootloader den Kernel an einer nicht ausgerichteten Adresse lädt und CONFIG\_RELOCATABLE gesetzt ist, +verschiebt sich der Kernel an die nächstgelegene Adresse, die auf den obigen Wert ausgerichtet ist, und wird von +dort aus gestartet. +Wenn der Bootloader den Kernel an einer nicht ausgerichteten Adresse lädt und CONFIG\_RELOCATABLE nicht gesetzt ist, +ignoriert der Kernel die Ladeadresse zur Laufzeit und dekomprimiert sich an die Adresse, für die er kompiliert wurde, +und läuft von dort aus. Die Adresse, für die der Kernel kompiliert wurde, erfüllt bereits die oben genannten +Ausrichtungsbeschränkungen. Das Endergebnis ist also, dass der Kernel von einer physikalischen Adresse aus läuft, +die die oben genannten Ausrichtungsbeschränkungen erfüllt. +Bei 32-Bit muss dieser Wert ein Vielfaches von 0x2000 sein. Bei 64-Bit muss dieser Wert ein Vielfaches von 0x200000 sein.\\ +Ändern Sie dies nicht, wenn Sie nicht wissen, was Sie tun. + +\subsubsection{Randomize the kernel memory sections} +CONFIG\_RANDOMIZE\_MEMORY [=y] \textbf{[Y]}\\ +Randomisiert die virtuelle Basisadresse von Kernel-Speicherabschnitten (physische Speicherzuordnung, vmalloc \& vmemmap). +Dieses Sicherheitsmerkmal macht Exploits, die sich auf vorhersehbare Speicherplätze verlassen, weniger zuverlässig. Die Reihenfolge der +Zuweisungen bleibt unverändert. Entropie wird auf die gleiche Weise wie bei RANDOMIZE\_BASE erzeugt. Aktuelle Implementierung +in der optimalen Konfiguration haben im Durchschnitt 30.000 verschiedene mögliche virtuelle Adressen für jeden Speicherabschnitt.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Linear Address Masking support} +CONFIG\_ADDRESS\_MASKING [=y] \textbf{[Y]}\\ +Linear Address Masking (LAM) ändert die Prüfung, die auf lineare 64-Bit-Adressen angewandt wird, und ermöglicht der Software +die nicht übersetzten Adressbits für Metadaten zu verwenden.\\ +Diese Fähigkeit kann für die effiziente Implementierung von Adress-Sanitizern (ASAN) und für Optimierungen in JITs genutzt werden. + +\subsubsection{Disable the 32-bit vDSO (needed for glibc 2.3.3)} +CONFIG\_COMPAT\_VDSO [=n] \textbf{[N]}\\ +Bestimmte fehlerhafte Versionen der glibc stürzen ab, wenn sie mit einem 32-Bit vDSO konfrontiert werden, das nicht auf die in +der Segmenttabelle angegebene Adresse abgebildet ist. +Adresse zugeordnet ist, die in der Segmenttabelle angegeben ist.\\ +Der Fehler wurde eingeführt durch f866314b89d56845f55e6f365e18b31ec978ec3a und behoben durch\\ +3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a und 49ad572a70b8aeb91e57483a11dd1b77e31c4468.\\ +Glibc~2.3.3 ist die einzige veröffentlichte Version mit dem Fehler, aber OpenSUSE 9 enthält eine fehlerhafte +\glqq glibc 2.3.2\grqq{}. +Das Symptom des Fehlers ist, dass alles beim Start abstürzt und sagt:\\ +\texttt{dl\_main: Assertion \`~(void \*) ph-$>$p\_vaddr == \_rtld\_local.\_dl\_sysinfo\_dso}\\ +Wenn Sie hier Y sagen, wird der Standardwert der Bootoption vdso32 von 1 auf 0 geändert, wodurch die +32-Bit vDSO vollständig deaktiviert wird. Dies umgeht zwar den Glibc-Bug, beeinträchtigt aber die Leistung.\\ +Wenn Sie unsicher sind, sagen Sie N: Wenn Sie Ihren eigenen Kernel kompilieren, ist es unwahrscheinlich, +dass Sie eine fehlerhafte Version der glibc verwenden. + +\subsubsection{vsyscall table for legacy applications () \texorpdfstring{$\rightarrow$}{->}} +Legacy-Benutzercode, der nicht weiß, wie er den vDSO finden kann, erwartet, dass er drei Syscalls ausgeben kann, +indem er feste Adressen im Kernel-Bereich aufruft. +Da dieser Ort nicht mit ASLR randomisiert wird, kann er dazu verwendet werden, die Ausnutzung von Sicherheitslücken +zu unterstützen. +Diese Einstellung kann zur Boot-Zeit über den Kernel-Befehlszeilenparameter +\texttt{vsyscall=[emulate|xonly|none]} geändert werden.\\ +Der Emulationsmodus ist veraltet und kann nur noch über die Kernel-Befehlszeile aktiviert werden. +Auf einem System mit ausreichend aktueller glibc (2.14 oder neuer) und ohne statische Binärdateien können Sie +\glqq None\grqq{} ohne Leistungseinbußen verwenden um die Sicherheit zu verbessern.\\ +Wenn Sie unsicher sind, wählen Sie \glqq Nur Ausführung emulieren\glqq{}. + +\paragraph{Emulate execution only}$~$\\ +CONFIG\_LEGACY\_VSYSCALL\_XONLY [=y] \textbf{[Y]}\\ +Der Kernel fängt und emuliert Aufrufe in die feste vsyscall-Adresszuordnung und lässt keine Lesezugriffe zu. +Diese Konfiguration wird empfohlen, wenn der Userspace den Legacy-Vsyscall-Bereich verwenden könnte, aber keine +Unterstützung für die binäre Instrumentierung von Legacy-Code benötigt wird. Sie entschärft bestimmte Verwendungen +des vsyscall-Bereichs als Puffer zur Umgehung von ASLR. + +\paragraph{None}$~$\\ +CONFIG\_LEGACY\_VSYSCALL\_NONE [=n] \textbf{[N]}\\ +Es wird überhaupt keine vsyscall-Zu\-ordnung geben. Dies eliminiert jegliches Risiko einer ASLR-Um\-ge\-hung +aufgrund der festen vsyscall-Adressen-Zuordnung. Versuche, die vsyscalls zu verwenden, werden an dmesg gemeldet, +so dass entweder alte oder bösartige Userspace-Programme identifiziert werden können. + +\subsubsection{Built-in kernel command line} +CONFIG\_CMDLINE\_BOOL [=n] \textbf{[N]}\\ +Ermöglicht die Angabe von Boot-Argumenten für den Kernel zur Erstellungszeit. Auf einigen Systemen +(z.~B. eingebetteten [embedded]) ist es notwendig oder praktisch, einige oder alle Kernel-Boot-Argumente mit +dem Kernel selbst bereitzustellen (d.~h. sich nicht darauf zu verlassen, dass der Bootloader sie bereitstellt). +Um Kommandozeilenargumente in den Kernel zu kompilieren, setzen Sie diese Option auf Y und geben Sie dann +die Boot-Argumente in CONFIG\_CMDLINE ein. Bei Systemen mit voll funktionsfähigen Bootloadern +(d.~h. nicht eingebetteten) sollte diese Option auf N gesetzt bleiben. + +\subsubsection{Enforce strict size checking for sigaltstack} +CONFIG\_STRICT\_SIGALTSTACK\_SIZE [=n] \textbf{[N]}\\ +Aus historischen Gründen ist MINSIGSTKSZ eine Konstante, die mit der AVX512-Unterstützung bereits zu klein wurde. +Fügen Sie einen Mechanismus hinzu, um die strenge Überprüfung der Sigaltstack-Größe gegen die tatsächliche Größe +des FPU-Rahmens zu erzwingen. Diese Option aktiviert die Überprüfung standardmäßig. Sie kann auch über die +Kernel-Kommandozeilenoption \texttt{strict\_sas\_size} unabhängig von diesem Konfigurationsschalter gesteuert werden. +Das Aktivieren dieser Option könnte bestehende Anwendungen zerstören, die einen zu kleinen Sigaltstack zuweisen, +aber \glq funktionieren\grq{}, weil sie nie ein Signal geliefert bekommen.\\ +Sagen Sie N, wenn Sie diese Prüfung nicht wirklich erzwingen wollen. + +\subsubsection{Kernel Live Patching} +CONFIG\_LIVEPATCH [=n] \textbf{[N]}\\ +Geben Sie hier Y an, wenn Sie Kernel-Live-Patching unterstützen wollen. Diese Option hat keine Auswirkungen auf die +Laufzeit, bis ein Kernel-\glqq Patch\grqq{}-Modul die von dieser Option bereitgestellte Schnittstelle verwendet, +um einen Patch zu registrieren, was dazu führt, dass Aufrufe der gepatchten Funktionen auf den neuen Funktionscode +im Patch-Modul umgeleitet werden. diff --git a/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex b/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex new file mode 100644 index 0000000..85c92bb --- /dev/null +++ b/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex @@ -0,0 +1,74 @@ + +\section{Mitigations for speculative execution vulnerabilities \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_SPECULATION\_MITIGATIONS [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, um Optionen zu aktivieren, die Abhilfemaßnahmen für Hardware-Schwachstellen durch spekulative +Ausführung ermöglichen. Wenn Sie N sagen, werden alle Abhilfemaßnahmen deaktiviert. Sie sollten wirklich wissen, +was Sie tun, um dies anzugeben. + +\subsection{Remove the kernel mapping in user mode} +CONFIG\_PAGE\_TABLE\_ISOLATION [=y] \textbf{[Y]}\\ +Diese Funktion reduziert die Anzahl der Hardware-Seitenkanäle, indem sie sicherstellt, dass die meisten +Kernel-Adressen nicht in den Benutzerraum abgebildet werden. Siehe Documentation/arch/x86/pti.rst für +weitere Details. + +\subsection{Avoid speculative indirect branches in kernel} +CONFIG\_RETPOLINE [=y] \textbf{[Y]}\\ +Kompilieren Sie den Kernel mit den retpoline Compiler-Optionen, um Datenlecks zwischen Kernel und Benutzer +zu verhindern, indem spekulative indirekte Verzweigungen vermieden werden. Erfordert einen Compiler mit +\texttt{-mindirect-branch=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. + +\subsubsection{Enable return-thunks} +CONFIG\_RETHUNK [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit der Compileroption return-thunks, um Datenlecks zwischen Kernel und Benutzer zu +verhindern, indem Rückgabespekulationen vermieden werden. Erfordert einen Compiler mit +\texttt{-mfunction-return=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. + +\paragraph{Enable UNRET on kernel entry}$~$\\ +CONFIG\_CPU\_UNRET\_ENTRY [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=unret}-Abschwächung. + +\subsection{Mitigate RSB underflow with call depth tracking} +CONFIG\_CALL\_DEPTH\_TRACKING [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit Call-Depth-Tracking, um das Intel SKL Return-Speculation-Buffer (RSB) Underflow-Problem +zu entschärfen. Die Entschärfung ist standardmäßig ausgeschaltet und muss in der Kernel-Befehlszeile über die +Option \texttt{retbleed=stuff} aktiviert werden. Für nicht betroffene Systeme ist der Overhead dieser Option +marginal, da die Verfolgung der Aufruftiefe zur Laufzeit generierte Call Thunks in einem vom Compiler generierten +Padding-Bereich und Call Patching verwendet. Dies erhöht die Textgröße um $\sim 5$\%. Bei nicht betroffenen Systemen +ist dieser Platz ungenutzt. Auf betroffenen SKL-Systemen führt dies zu einem erheblichen Leistungsgewinn gegenüber +der IBRS-Abschwächung. + +\subsubsection{Enable call thunks and call depth tracking debugging} +CONFIG\_CALL\_THUNKS\_DEBUG [=n] \textbf{[N]}\\ +Aktiviere Call/Ret-Zähler zur Erkennung von Ungleichgewichten und baue ein lautes dmesg über die Erzeugung von +Callthunks und Call-Patching zur Fehlersuche ein. Die Debug-Ausdrucke müssen in der Kernel-Befehlszeile mit +\texttt{debug-callthunks} aktiviert werden. Aktivieren Sie dies nur, wenn Sie Call Thunks debuggen wollen, +da dies einen spürbaren Laufzeit-Overhead erzeugt. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Enable IBPB on kernel entry} +CONFIG\_CPU\_IBPB\_ENTRY [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=ibpb}-Abschwächung. + +\subsection{Enable IBRS on kernel entry} +CONFIG\_CPU\_IBRS\_ENTRY [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit Unterstützung für die \texttt{spectre\_v2=ibrs}-Abschwächung. +Dadurch werden sowohl spectre\_v2 als auch retbleed auf Kosten der Leistung abgeschwächt. + +\subsection{Mitigate speculative RAS overflow on AMD} +CONFIG\_CPU\_SRSO [=y] \textbf{[N]}\\ +Aktiviert die SRSO-Abschwächung, die auf AMD Zen1-4-Maschinen benötigt wird. + +\subsection{Mitigate Straight-Line-Speculation} +CONFIG\_SLS [=y] \textbf{[Y]}\\ +Kompiliere den Kernel mit Straight-Line-Speculation-Optionen, um ihn vor Straight-Line-Speculation zu +schützen. Das Kernel-Image könnte etwas größer sein. + +\subsection{Force GDS Mitigation} +CONFIG\_GDS\_FORCE\_MITIGATION [=n] \textbf{[N]}\\ +Gather Data Sampling (GDS) ist eine Hardware-Schwachstelle, die unberechtigten spekulativen Zugriff auf +Daten ermöglicht, die zuvor in Vektorregistern gespeichert wurden. Diese Option ist gleichbedeutend mit +der Einstellung \texttt{gather\_data\_sampling=force} in der Befehlszeile. Die Mikrocode-Abschwächung +wird verwendet, falls vorhanden, andernfalls wird AVX als Abschwächung deaktiviert. Auf betroffenen +Systemen, denen der Microcode fehlt, wird jeder Userspace-Code, der AVX bedingungslos verwendet, bei +gesetzter Option abbrechen. Das Setzen dieser Option auf Systemen, die nicht für GDS anfällig sind, hat +keine Auswirkungen.\\ +Im Zweifelsfall sagen Sie N. diff --git a/documentation/linux_configuration_05_power_management_and_acpi_options.tex b/documentation/linux_configuration_05_power_management_and_acpi_options.tex new file mode 100644 index 0000000..b581177 --- /dev/null +++ b/documentation/linux_configuration_05_power_management_and_acpi_options.tex @@ -0,0 +1,679 @@ + +\section{Power management and ACPI options \texorpdfstring{$\rightarrow$}{->}} +Energieverwaltung und ACPI-Optionen + +\subsection{Suspend to RAM and standby} +CONFIG\_SUSPEND [=y] \textbf{[Y]}\\ +Ermöglicht dem System, in Ruhezustände einzutreten, in denen der Hauptspeicher mit Strom versorgt wird und +somit sein Inhalt erhalten bleibt, wie z.~B. der Suspend-to-RAM-Zustand (z.~B. der ACPI S3-Zustand). + +\subsection{Hibernation (aka `suspend to disk')} +CONFIG\_HIBERNATION [=y] \textbf{[Y]}\\ +Aktiviert die Funktion \glqq Suspend to Disk\grqq{} (STD), +die in den Benutzeroberflächen gewöhnlich als \glqq Ruhezustand\grqq{} +bezeichnet wird. STD setzt das System an einen Haltepunkt und schaltet es aus; beim Neustart wird dieser Haltepunkt +wiederhergestellt. Sie können Ihren Rechner mit \texttt{echo disk > /sys/power/state} in den Ruhezustand versetzen, +nachdem Sie \texttt{resume=/dev/swappartition} in der Kernel-Befehlszeile in der Konfigurationsdatei Ihres Bootloaders +angegeben haben. Alternativ können Sie auch die zusätzlichen Userland-Tools verwenden, die unter +\url{http://suspend.sf.net} verfügbar sind. Im Prinzip sind weder ACPI noch APM erforderlich, obwohl beispielsweise +ACPI für die letzten Schritte verwendet wird, wenn es verfügbar ist. Einer der Gründe für die Verwendung von +Software-Suspend ist, dass die Firmware-Hooks für Suspend-Zustände wie Suspend-to-RAM (STR) oft nicht sehr gut mit +Linux funktionieren. Es wird ein Abbild erstellt, das in der aktiven Auslagerungsdatei gespeichert wird. +Beim nächsten Start übergeben Sie dem Kernel das Argument \texttt{resume=/dev/swappartition}, damit er das gespeicherte +Abbild erkennt, den Speicherstatus daraus wiederherstellt und wie zuvor weiterarbeitet. +Wenn Sie nicht wollen, dass der vorherige Zustand wiederhergestellt wird, verwenden Sie das Kernel-Befehlszeilenargument +\texttt{noresume}. Beachten Sie jedoch, dass fsck auf Ihren Dateisystemen ausgeführt wird und Sie mkswap auf der +Swap-Partition ausführen müssen, die für den Suspend verwendet wird. In begrenztem Umfang funktioniert es auch mit +Swap-Dateien (für Details siehe $<$file:Documentation/power/swsusp-and-swap-files.rst$>$). +Sie können jetzt booten, ohne den Vorgang fortzusetzen, und ihn später fortsetzen, aber in der Zwischenzeit können Sie +die Swap-Partition(en)/Datei(en), die am Suspendieren beteiligt waren, nicht verwenden. In diesem Fall dürfen Sie auch +nicht die Dateisysteme verwenden, die vor dem Suspendieren gemountet waren. Insbesondere dürfen Sie keine +journalisierten Dateisysteme mounten, die vor dem Suspending gemountet wurden, da diese sonst auf unschöne Weise +beschädigt werden. Weitere Informationen finden Sie in $<$file:Documentation/power/swsusp.rst$>$. + +\subsubsection{Userspace snapshot device} +CONFIG\_HIBERNATION\_SNAPSHOT\_DEV [=y] \textbf{[Y]}\\ +Gerät, das von den uswsusp-Werkzeugen verwendet wird. Sagen Sie N, wenn kein Snapshotting aus dem Userspace benötigt +wird, dies reduziert auch die Angriffsfläche des Kernels. Im Zweifelsfall sagen Sie Y. + +\subsubsection{Default resume partition} +CONFIG\_PM\_STD\_PARTITION [=] \textbf{[~]}\\ +Die Standard-Wiederaufnahmepartition ist die Partition, auf der die Suspend-to-Disk-Implementierung nach einem +Suspend-Disk-Image suchen wird. Die hier angegebene Partition wird für fast jeden Benutzer anders sein. Es sollte eine +gültige Swap-Partition sein (zumindest im Moment), die vor dem Suspendieren eingeschaltet wird. Die angegebene +Partition kann durch die Angabe von:\\ +\texttt{resume=/dev/}\\ +überschrieben werden, wodurch die Partition für die Wiederaufnahme auf das angegebene Gerät gesetzt wird. +Beachten Sie, dass es derzeit keine Möglichkeit gibt, das Gerät anzugeben, auf dem das suspendierte Image +gespeichert werden soll. Es wird einfach das erste verfügbare Swap-Gerät ausgewählt. + +\subsection{Opportunistic sleep} +CONFIG\_PM\_AUTOSLEEP [=n] \textbf{[N]}\\ +Ermöglicht es dem Kernel, automatisch einen Systemübergang in einen globalen Ruhezustand auszulösen, wenn es keine aktiven Weckquellen gibt. + +\subsection{Userspace opportunistic sleep} +CONFIG\_PM\_USERSPACE\_AUTOSLEEP [=n] \textbf{[N]}\\ +Benachrichtigt den Kernel über eine aggressive Benutzerraum-Energieverwaltungspolitik für den automatischen Schlaf. Diese Option +ändert das Verhalten verschiedener schlafempfindlicher Codes, um mit häufigen, vom Benutzer initiierten Übergängen in einen +globalen Schlafzustand umzugehen. Wenn Sie hier Y sagen, werden Codepfade deaktiviert, die die meisten Benutzer wirklich aktiviert +lassen sollten. Aktivieren Sie dies nur, wenn es sehr häufig vorkommt, dass man für sehr kurze Zeiträume ($<= 2$~Sekunden) schläft/wach +ist. Nur Plattformen, wie z.~B. Android, die opportunistischen Ruhezustand von einem Userspace-Energieverwaltungsdienst implementieren, +sollten diese Option aktivieren, nicht aber andere Maschinen. Daher sollten Sie hier N sagen, es sei denn, Sie sind sich sehr sicher, +dass Sie dies wollen. Die Option hat andernfalls schlechte, unerwünschte Auswirkungen und sollte nicht nur zum Spaß aktiviert werden. + +\subsection{User space wakeup sources interface} +CONFIG\_PM\_WAKELOCKS [=n] \textbf{[N]}\\ +Ermöglicht es dem Benutzer, Wakeup-Quellobjekte mit Hilfe einer sysfs-basierten Schnittstelle zu erstellen, zu aktivieren und zu deaktivieren. + +\subsection{Device power management core functionality} +CONFIG\_PM\_WAKELOCKS [=y] \textbf{[Y]}\\ +Aktivierung von Funktionen, die es ermöglichen, E/A-Geräte in einen energiesparenden (stromsparenden) Zustand zu versetzen, z.~B. nach einer +bestimmten Zeit der Inaktivität (autosuspended), und sie als Reaktion auf ein von der Hardware erzeugtes Wake-up-Ereignis oder eine Anforderung +des Treibers aufzuwecken. Damit diese Funktion funktioniert, ist in der Regel eine Hardwareunterstützung erforderlich, und die Bustreiber der +Busse, an denen die Geräte angeschlossen sind, sind für die tatsächliche Handhabung von Suspendierungsanforderungen und Weckereignissen zuständig. + +\subsubsection{Power Management Debug Support} +CONFIG\_PM\_DEBUG [=y] \textbf{[Y]}\\ +Diese Option aktiviert verschiedene Debugging-Funktionen im Power-Management-Code. Dies ist hilfreich bei der Fehlersuche und der Meldung +von PM-Fehlern, wie z.~B. der Suspend-Unterstützung. + +\paragraph{Extra PM attributes in sysfs for low-level debugging/testing}$~$\\ +CONFIG\_PM\_ADVANCED\_DEBUG [=n] \textbf{[N]}\\ +Hinzufügen zusätzlicher sysfs-Attribute, die den Zugriff auf einige Power-Management-Felder von Ge\-rä\-te\-ob\-jek\-ten aus dem Userspace ermöglichen. +Wenn Sie kein Kernel-Entwickler sind, der am Debuggen/Testen von Power Management interessiert ist, sagen Sie N für nein. + +\paragraph{Test suspend/resume and wakealarm during bootup}$~$\\ +CONFIG\_PM\_TEST\_SUSPEND [=n] \textbf{[N]}\\ +Mit dieser Option können Sie Ihren Rechner während des Bootvorgangs in den Ruhezustand versetzen und ihn einige Sekunden später mit einem +RTC-Weckalarm aufwecken. Aktivieren Sie dies mit einem Kernelparameter wie \texttt{test\_suspend=mem}. Wahrscheinlich sollten Sie +den RTC-Treiber Ihres Systems statisch einbinden, um sicherzustellen, dass er verfügbar ist, wenn dieser Test läuft. + +\subsection{Suspend/resume event tracing} +CONFIG\_PM\_TRACE\_RTC [=y] \textbf{[Y]}\\ +Dies ermöglicht es, den letzten PM-Ereignispunkt in der RTC über Neustarts hinweg zu speichern, so dass Sie einen Rechner, der während des +Suspendierens (oder häufiger während des Wiederaufnehmens) einfach hängen bleibt, debuggen können. Um diese Debugging-Funktion zu nutzen, +sollten Sie versuchen, den Rechner in den Suspend-Modus zu versetzen, ihn neu zu starten und dann Folgendes auszuführen\\[.5em] +\texttt{dmesg -s 1000000 | grep 'hash matches'}\\[.5em] +ACHTUNG: Diese Option führt dazu, dass die Echtzeituhr Ihres Rechners nach einem Neustart auf eine ungültige Zeit gesetzt wird. + +\subsection{Enable workqueue power-efficient mode by default} +CONFIG\_WQ\_POWER\_EFFICIENT\_DEFAULT [=y] \textbf{[Y]}\\ +Pro-CPU-Workqueues werden im Allgemeinen bevorzugt, da sie dank der Cache-Lokalität eine bessere Leistung aufweisen; leider neigen +Pro-CPU-Workqueues dazu, mehr Strom zu verbrauchen als ungebundene Workqueues. Durch die Aktivierung des Kernelparameters +\texttt{workqueue.power\_efficient} werden die Pro-CPU-Workqueues, die nachweislich erheblich zum Stromverbrauch beitragen, +ungebunden, was zu einem messbar geringeren Stromverbrauch auf Kosten eines geringen Leistungsoverheads führt. Diese Konfigurationsoption +legt fest, ob \texttt{workqueue.power\_efficient} standardmäßig aktiviert ist.\\ +Im Zweifelsfall sagen Sie N. + +\subsection{Energy Model for devices with DVFS (CPUs, GPUs, etc)} +CONFIG\_ENERGY\_MODEL [=y] \textbf{[Y]}\\ +Mehrere Teilsysteme (z.~B. das thermische System und/oder der Aufgabenplaner) können Informationen über den Energieverbrauch von Geräten +nutzen, um intelligentere Entscheidungen zu treffen. Diese Konfigurationsoption aktiviert den Rahmen, von dem aus die Subsysteme auf die +Energiemodelle zugreifen können. Die genaue Verwendung des Energiemodells ist subsystemabhängig.\\ +Im Zweifelsfall sagen Sie N. + +\subsection{ACPI (Advanced Configuration and Power Interface) Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_ACPI [=y] \textbf{[Y]}\\ +Die Unterstützung von ACPI (Advanced Configuration and Power Interface) für Linux erfordert eine ACPI-kompatible Plattform (Hardware/Firmware) +und setzt das Vorhandensein von OS-directed configuration and power management (OSPM) Software voraus. Mit dieser Option wird Ihr Kernel um +etwa 70K erweitert. Linux ACPI bietet einen robusten funktionalen Ersatz für mehrere ältere Konfigurations- und Energieverwaltungsschnittstellen, +einschließlich der Plug-and-Play-BIOS-Spezifikation (PnP BIOS), der MultiProzessor-Spezifikation (MPS) und der Advanced Power Management (APM)-Spezifikation. +Wenn sowohl ACPI- als auch APM-Unterstützung konfiguriert sind, wird ACPI verwendet. +Die Linux-Unterstützung für ACPI basiert auf der ACPI Component Architecture (ACPI CA) der Intel Corporation. Weitere Informationen über die ACPI~CA +finden Sie unter: \url{https://acpica.org/} ACPI ist eine offene Industriespezifikation, die ursprünglich von Hewlett-Packard, Intel, Microsoft, +Phoenix und Toshiba mitentwickelt wurde. Derzeit wird sie von der ACPI Specification Working Group (ASWG) im Rahmen des UEFI-Forums entwickelt, +und jedes UEFI-Mitglied kann der ASWG beitreten und zur ACPI-Spezifikation beitragen.\\ +Die Spezifikation ist verfügbar unter: \url{https://uefi.org/specifications}. + +\subsubsection{AML debugger interface} +CONFIG\_ACPI\_DEBUGGER [=n] \textbf{[N]}\\ +Aktiviert das In-Kernel-Debugging von AML-Funktionen: Statistiken, interner Objekt-Dump, Aus\-füh\-rung von Einzel\-schritt-Kontroll\-methoden. Dies befindet +sich noch in der Entwicklung, derzeit führt die Aktivierung nur zur Kompilierung der ACPICA-Debugger-Dateien. + +\subsubsection{ACPI Serial Port Console Redirection Support} +CONFIG\_ACPI\_SPCR\_TABLE [=y] \textbf{[Y]}\\ +Aktiviert die Unterstützung für die Serial Port Console Redirection (SPCR) Tabelle. Diese Tabelle enthält Informationen über die Konfiguration +der earlycon-Konsole. + +\subsubsection{ACPI Firmware Performance Data Table (FPDT] support} +CONFIG\_ACPI\_FPDT [=y] \textbf{[Y]}\\ +Aktiviert die Unterstützung für die Firmware Performance Data Table (FPDT). Diese Tabelle enthält Informationen über das Timing des Systemstarts, +der S3-Suspend- und S3-Resume-Firmware-Codepfade. + +\subsubsection{Allow supported ACPI revision to be overridden} +CONFIG\_ACPI\_FPDT [=y] \textbf{[Y]}\\ +(Erlaubt das Überschreiben der unterstützten ACPI-Revision)\\ +Die Plattform-Firmware auf einigen Systemen erwartet, dass Linux \glqq 5\grqq{} als unterstützte ACPI-Revision zurückgibt, was dazu führt, dass sie +Systemkonfigurationsinformationen auf eine besondere Weise offenlegt. Basierend darauf, was ACPI als unterstützte Revision exportiert, +konfiguriert beispielsweise das Dell~XPS~13 (2015) sein Audiogerät so, dass es entweder im HDA-Modus oder im I2S-Modus arbeitet, wobei +ersterer unter Linux verwendet werden soll, bis letzterer vollständig unterstützt wird (sowohl im Kernel als auch im Userspace). Diese +Option ermöglicht eine DMI-basierte Besonderheit für den oben genannten Dell-Rechner (so dass HDA-Audio von der Plattform-Firmware dem +Kernel offengelegt wird) und macht es möglich, den Kernel zu zwingen, \glqq 5\grqq{} als unterstützte ACPI-Revision über den +Befehlszeilenschalter \texttt{acpi\_rev\_override} zurückzugeben. + +\subsubsection{EC read/write access through /sys/kernel/debug/ec} +CONFIG\_ACPI\_EC\_DEBUGFS [=m] \textbf{[M]}\\ +Sagen Sie N, um die Schnittstelle Embedded Controller /sys/kernel/debug zu deaktivieren. Beachten Sie, dass die Verwendung dieser Schnittstelle +Ihren Embedded Controller so verwirren kann, dass ein normaler Neustart nicht ausreicht. Sie müssen dann Ihr System ausschalten und den Akku +des Laptops für einige Sekunden entfernen. Ein Embedded Controller ist in der Regel auf Laptops vorhanden und liest Sensorwerte wie +Batteriestatus und Temperatur aus. Der Kernel greift auf den EC über ACPI-geparsten Code zu, der von BIOS-Tabellen bereitgestellt wird. +Diese Option ermöglicht den direkten Zugriff auf den EC, ohne dass ACPI-Code involviert ist.\\ +Somit ist diese Option eine Debug-Option, die beim Schreiben von ACPI-Treibern hilft und zur Identifizierung von ACPI-Code oder +EC-Firmware-Fehlern verwendet werden kann. + +\subsubsection{AC Adapter} +CONFIG\_ACPI\_AC [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt das AC-Adapter-Objekt, das anzeigt, ob ein System mit Wechselstrom betrieben wird oder nicht. +Wenn Sie ein System haben, das zwischen Wechselstrom und Batterie umschalten kann, sagen Sie Y. Um diesen Treiber als Modul +zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{ac} heißen. + +\subsubsection{Battery} +CONFIG\_ACPI\_BATTERY [=y] \textbf{[Y]}\\ +Dieser Treiber bietet Unterstützung für Batterieinformationen über /proc/acpi/battery. Wenn Sie ein mobiles System mit +einer Batterie haben, sagen Sie Y. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{battery} genannt. + +\subsubsection{Button} +CONFIG\_ACPI\_BUTTON [=y] \textbf{[Y]}\\ +Dieser Treiber verarbeitet Ereignisse für die Tasten Power, Sleep und Deckel. Ein Daemon liest Ereignisse von Eingabegeräten +oder über Netlink und führt benutzerdefinierte Aktionen wie das Herunterfahren des Systems aus. Dies ist für die +softwaregesteuerte Abschaltung erforderlich. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{button} genannt. + +\subsubsection{Video} +CONFIG\_ACPI\_VIDEO [=m] \textbf{[M]}\\ +Dieser Treiber implementiert die ACPI-Erweiterungen für Display-Adapter für integrierte Grafikgeräte auf dem Motherboard, +wie in der ACPI 2.0-Spezifikation, Anhang B, angegeben. +Er unterstützt grundlegende Vorgänge wie das Definieren des Video-POST-Geräts, das Abrufen von EDID-Informationen und +das Einrichten eines Videoausgangs. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{video} genannt. + +\subsubsection{Fan} +CONFIG\_ACPI\_FAN [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt ACPI-Lüftergeräte und ermöglicht es Anwendungen im Benutzermodus, grundlegende +Lüftersteuerungen (Ein, Aus, Status) durchzuführen. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{fan} genannt. + +\subsubsection{ACPI Time and Alarm (TAD) Device Support} +CONFIG\_ACPI\_TAD [=m] \textbf{[N]}\\ +Das ACPI Time and Alarm (TAD) Gerät ist eine Alternative zur Real Time Clock (RTC). Seine Weckzeitgeber ermöglichen es dem System, +nach Ablauf einer bestimmten Zeitspanne vom Zustand S3 (oder optional S4/S5) in den Zustand S0 überzugehen. +Im Vergleich zum RTC-Alarm bietet der TAD eine größere Flexibilität bei den Wake-Timern. +Die Zeitfunktionen des TAD behalten die Tageszeitinformationen bei, auch wenn die Plattform ausgeschaltet ist. + +\subsubsection{Dock} +CONFIG\_ACPI\_DOCK [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt ACPI-gesteuerte Dockingstationen und Wechsellaufwerkseinschübe wie den IBM Ultrabay +und den Dell Module Bay. + +\subsubsection{Processor} +CONFIG\_ACPI\_PROCESSOR [=y] \textbf{[Y]}\\ +Dieser Treiber bietet Unterstützung für das ACPI-Prozessor-Paket. Er wird von mehreren Varianten der cpufreq-Treiber +für den Leistungszustand, die Wärmeentwicklung, die Drosselung und den Leerlauf benötigt. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul heißt dann \texttt{processor}. + +\subsubsection{IPMI} +CONFIG\_ACPI\_IPMI [=m] \textbf{[M]}\\ +Dieser Treiber ermöglicht dem ACPI den Zugriff auf den BMC-Controller. Und er verwendet die IPMI-Anfrage/Antwort-Nachricht +zur Kommunikation mit dem BMC-Controller, der sich auf dem Server befindet. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird als \texttt{acpi\_ipmi} aufgerufen. + +\subsubsection{Processor Aggregator} +CONFIG\_ACPI\_PROCESSOR\_AGGREGATOR [=m] \textbf{[M]}\\ +ACPI 4.0 definiert einen Prozessor-Aggregator, der es dem Betriebssystem ermöglicht, eine spezifische Prozessorkonfiguration +und -steuerung durchzuführen, die für alle Prozessoren der Plattform gilt. Derzeit ist nur der logische Leerlauf des Prozessors +definiert, der den Stromverbrauch senken soll. Dieser Treiber unterstützt das neue Gerät. + +\subsubsection{Thermal Zone} +CONFIG\_ACPI\_THERMAL [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt ACPI-Thermozonen. Die meisten mobilen und einige Desktop-Systeme unterstützen ACPI-Wärmezonen. +Es wird DRINGEND empfohlen, diese Option zu aktivieren, da Ihr(e) Prozessor(en) sonst beschädigt werden können. Um diesen Treiber +als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{thermal} genannt. + +\subsubsection{Allow upgrading ACPI tables via initrd} +CONFIG\_ACPI\_TABLE\_UPGRADE [=y] \textbf{[Y]}\\ +Diese Option bietet die Möglichkeit, beliebige ACPI-Tabellen über initrd zu aktualisieren. +Keine funktionale Änderung, wenn keine ACPI-Tabellen über initrd übergeben werden, daher ist es sicher, Y zu sagen. +Siehe Documentation/admin-guide/acpi/initrd\_table\_override.rst für Details + +\subsubsection{Debug Statements} +CONFIG\_ACPI\_DEBUG [=y] \textbf{[Y]}\\ +Das ACPI-Sub\-system kann Debug-Aus\-gaben er\-zeu\-gen. +Die Angabe von Y aktiviert diese Ausgabe und erhöht die Ker\-nel\-grö\-ße um etwa 50K.\\ +Verwenden Sie die Kernel-Befehlszeilen\-parameter \texttt{acpi.debug\_layer} und \texttt{acpi.debug\_level}, die in +Do\-cu\-men\-tation/firmware-guide/acpi/debug.rst und Docu\-men\-tation/admin-guide/kernel-parameters.rst dokumentiert sind, +um die Art und Menge der Debug-Ausgabe zu steuern. + +\subsubsection{PCI slot detection driver} +CONFIG\_ACPI\_PCI\_SLOT [=y] \textbf{[Y]}\\ +Dieser Treiber erstellt Einträge in \texttt{/sys/bus/pci/slots/} für alle PCI-Steckplätze im System. +Dies kann helfen, PCI-Bus-Adressen, d.~h. Segment/Bus/Gerät/Funktions-Tupel, mit physischen Steckplätzen im System zu korrelieren.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Container and Module Devices} +CONFIG\_ACPI\_CONTAINER [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt ACPI-Container- und Modulgeräte (IDs ACPI0004, PNP0A05 und PNP0A06). +Dies hilft, Hotplug von Knoten, CPUs und Speicher zu unterstützen. + +\subsubsection{Memory Hotplug} +CONFIG\_ACPI\_HOTPLUG\_MEMORY [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt ACPI-Speicher-Hotplug. Die Treiberfelder enthalten Benachrichtigungen über +ACPI-Speichergeräte (PNP0C80), die Speicherbereiche darstellen, die zur Laufzeit ein- oder ausgeschaltet +werden können. Wenn Ihre Hardware und Firmware das Hinzufügen oder Entfernen von Speichergeräten zur Laufzeit +nicht unterstützen, müssen Sie diesen Treiber nicht aktivieren. + +\subsubsection{Smart Battery System} +CONFIG\_ACPI\_SBS [=m] \textbf{[N]}\\ +Dieser Treiber unterstützt das Smart Battery System, eine andere Art des Zugriffs auf Batterieinformationen, +die bei einigen Laptops zu finden ist. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Die Module +heißen dann sbs und sbshc. + +\subsubsection{Hardware Error Device} +CONFIG\_ACPI\_HED [=y] \textbf{[Y]}\\ +Dieser Treiber unterstützt das Hardware Error Device (PNP0C33), das dazu dient, einige über SCI gemeldete +Hardwarefehler zu melden, hauptsächlich die korrigierten Fehler. + +\subsubsection{Allow ACPI methods to be inserted/replaced at run time} +CONFIG\_ACPI\_CUSTOM\_METHOD [=m] \textbf{[M]}\\ +Mit dieser Debug-Funktion können ACPI-AML-Methoden eingefügt und/oder ersetzt werden, ohne dass das System +neu gestartet werden muss.\\ +Für Details siehe: Documentation/firmware-guide/acpi/method-customizing.rst.\\ +HINWEIS: Diese Option ist sicherheitsrelevant, da sie es erlaubt, dass root (uid=0) Benutzer in beliebigen +Kernelspeicher schreiben können und so bestimmte Sicherheitsmaßnahmen umgehen können (z.~B. wenn es root +nicht erlaubt ist, zusätzliche Kernelmodule nach dem Booten zu laden, kann diese Funktion verwendet werden, +um diese Einschränkung zu umgehen). + +\subsubsection{Boottime Graphics Resource Table support} +CONFIG\_ACPI\_BGRT [=y] \textbf{[Y]}\\ +Dieser Treiber bietet Unterstützung für die ACPI Boottime Graphics Resource Table, die es dem Betriebssystem +ermöglicht, Daten aus dem Firmware-Boot-Splash zu beziehen.\\ +Er erscheint unter \texttt{/sys/firmware/acpi/bgrt/} . + +\subsubsection{ACPI NVDIMM Firmware Interface Table (NFIT)} +CONFIG\_ACPI\_NFIT [=m] \textbf{[M]}\\ +Infrastruktur, um ACPI 6-konforme Plattformen auf NVDIMMs zu untersuchen (NFIT) und einen libnvdimm-Gerätebaum +zu registrieren. Zusätzlich zu den Speichergeräten ermöglicht dies libnvdimm auch die Weitergabe von +ACPI.\_DSM-Nachrichten für die Plattform/Dimm-Konfiguration. Um diesen Treiber als Modul zu kompilieren, +wählen Sie hier M: Das Modul wird \texttt{nfit} genannt. + +\paragraph{Enable debug for NVDIMM security commands}$~$\\ +CONFIG\_NFIT\_SECURITY\_DEBUG [=n] \textbf{[N]}\\ +Einige NVDIMM-Geräte und -Controller unterstützen Verschlüsselung und andere Sicherheitsfunktionen. +Die Nutzdaten für die Befehle, die diese Funktionen aktivieren, können sensibles Sicherheitsmaterial +im Klartext enthalten. Deaktivieren Sie das Debuggen dieser Befehls-Payloads standardmäßig. Wenn Sie ein +Kernel-Entwickler sind, der aktiv an der Aktivierung der NVDIMM-Sicherheit arbeitet, sagen Sie Y, +andernfalls sagen Sie N. + +\subsubsection{NUMA support} +CONFIG\_ACPI\_NUMA [=y] \textbf{[Y]}\\ +\textit{Für diese Option ist keine Hilfe verfügbar.} + +\paragraph{ACPI Heterogeneous Memory Attribute Table Support}$~$\\ +CONFIG\_ACPI\_HMAT [=y] \textbf{[Y]}\\ +Wenn diese Option gesetzt ist, lässt der Kernel die ACPI HMAT (Heterogeneous Memory Attributes Table) +der Plattform auslesen und melden, Speicherinitiatoren mit ihren Zielen registrieren und Leistungsattribute +über das sysfs-Gerät des Knotens exportieren, falls vorhanden. + +\subsubsection{ACPI Platform Error Interface (APEI)} +CONFIG\_ACPI\_APEI [=y] \textbf{[Y]}\\ +APEI ermöglicht es, Fehler (z.~B. vom Chipsatz) an das Betriebssystem zu melden. Dies verbessert +insbesondere die NMI-Behandlung. Darüber hinaus unterstützt es Fehlerserialisierung und Fehlerinjektion. + +\paragraph{ACPI Generic Hardware Error Source}$~$\\ +CONFIG\_ACPI\_APEI\_GHES [=y] \textbf{[Y]}\\ +Generic Hardware Error Source bietet eine Möglichkeit, Plattform-Hardware-Fehler (z.~B. vom Chipsatz) zu melden. +Sie arbeitet im so genannten \glqq Firmware First\grqq{}-Modus, d.~h. Hardwarefehler werden zunächst an die +Firmware gemeldet und dann von der Firmware an Linux weitergeleitet. +Auf diese Weise können einige Nicht-Standard-Hardware-Fehlerregister oder Nicht-Standard-Hardware-Verbindungen +von der Firmware überprüft werden, um wertvollere Hardware-Fehlerinformationen für Linux zu erhalten. + +\paragraph{ACPI PCIe AER logging/recovering support}$~$\\ +CONFIG\_ACPI\_APEI\_PCIEAER [=y] \textbf{[Y]}\\ +PCIe-AER-Fehler können über den APEI-Firmware-First-Modus gemeldet werden. Aktivieren Sie diese Option, +um die entsprechende Unterstützung zu aktivieren. + +\subsubsection{ACPI memory error recovering support} +CONFIG\_ACPI\_APEI\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\ +Speicherfehler können über den APEI-Firmware-First-Modus gemeldet werden. Aktivieren Sie diese Option, +um die Unterstützung für die Speicherwiederherstellung zu aktivieren. + +\subsubsection{APEI Error INJection (EINJ)} +CONFIG\_ACPI\_APEI\_EINJ [=m] \textbf{[M]}\\ +EINJ bietet einen Hardware-Fehlerinjektionsmechanismus, der hauptsächlich zur Fehlersuche und zum Testen +der anderen Teile von APEI und einiger anderer RAS-Funktionen verwendet wird. + +\subsubsection{APEI Error Record Serialization Table (ERST) Debug Support} +CONFIG\_ACPI\_APEI\_ERST\_DEBUG [=m] \textbf{[M]}\\ +ERST ist eine von APEI bereitgestellte Möglichkeit, Hardware-Fehler\-infor\-mationen in einem dauerhaften Speicher +zu speichern und von dort abzurufen. Aktivieren Sie dies, wenn Sie die ERST-Kernel\-un\-ter\-stüt\-zung und +Firmware-Implementierung debuggen und testen wollen. + +\subsubsection{Intel DPTF (Dymnamic Platform and Thermal Framework) Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_ACPI\_DPTF [=y] \textbf{[Y]}\\ +Intel Dynamic Platform and Thermal Framework (DPTF) ist eine Hardware-/Softwarelösung auf Plattformebene für +das Energie- und Wärmemanagement. Als Container für mehrere Energie-/Thermo\-tech\-no\-lo\-gi\-en bietet DPTF einen +koordinierten Ansatz für verschiedene Richtlinien, die den Hardwarezustand eines Systems beeinflussen. + +\paragraph{Platform Power DPTF Participant}$~$\\ +CONFIG\_DPTF\_POWER [=m] \textbf{[M]}\\ +Dieser Treiber bietet Unterstützung für das Dynamic Platform and Thermal Framework (DPTF) Platform Power +Participant Device (INT3407). Dieser Teilnehmer ist für die Offenlegung der Plattformtelemetrie verantwortlich: +\begin{itemize} + \item max\_platform\_power (max. Plattformleistung) + \item platform\_power\_source (Plattformstromquelle) + \item adapter\_rating (Leistung des Netzteils) + \item battery\_steady\_power (Dauerleistung der Batterie) + \item ladegerät\_typ (Ladegerättyp) +\end{itemize} +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul heißt dann \texttt{dptf\_power}. + +\paragraph{PCH FIVR DPTF Participant}$~$\\ +CONFIG\_DPTF\_PCH\_FIVR [=m] \textbf{[M]}\\ +Dieser Treiber fügt Unterstützung für Dynamic Platform and Thermal Framework (DPTF) PCH FIVR Participant +Device Support hinzu. Dieser Treiber ermöglicht es, die Frequenz des PCH FIVR (Fully Integrated Voltage Regulator) +zu schalten. Dieser Teilnehmer ist für die Bereitstellung verantwortlich: +\begin{itemize} + \item freq\_mhz\_low\_clock + \item freq\_mhz\_high\_clock +\end{itemize} +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{dptf\_pch\_fivr} heißen. + +\subsubsection{Extended Error Log support} +CONFIG\_ACPI\_EXTLOG [=m] \textbf{[M]}\\ +Bestimmte Anwendungen wie die vorausschauende Fehleranalyse (Predictive Failure Analysis, PFA) erfordern mehr Informationen +über den Fehler, als in den Prüfbänken der Prozessormaschine beschrieben werden können. Die meisten Server-Prozessoren +protokollieren zusätzliche Informationen über den Fehler in Prozessor-Uncore-Registern. Da die Adressen und das Layout +dieser Register von einem Prozessor zum anderen sehr unterschiedlich sind, kann die Systemsoftware sie nicht ohne weiteres +nutzen. Erschwerend kommt hinzu, dass einige der zusätzlichen Fehlerinformationen nicht ohne detaillierte Kenntnisse der +Plattformtopologie erstellt werden können. Die erweiterte MCA-Protokollierung ermöglicht es der Firmware, der Systemsoftware +synchron mit MCE oder CMCI zusätzliche Fehlerinformationen zu liefern. Dieser Treiber unterstützt diese Funktionalität mit +einem entsprechenden Tracepoint, der diese Informationen an den Userspace weiterleitet. + +\subsubsection{ACPI configfs support} +CONFIG\_ACPI\_CONFIGFS [=m] \textbf{[M]}\\ +Wählen Sie diese Option, um die Unterstützung für die ACPI-Konfiguration aus dem Userspace zu aktivieren. Die konfigurierbaren +ACPI-Gruppen sind dann unter /config/acpi sichtbar, vorausgesetzt, configfs ist unter /config eingebunden. + +\subsubsection{ACPI Platform Firmware Runtime Update and Telemetry} +CONFIG\_ACPI\_PFRUT [=m] \textbf{[M]}\\ +Dieser Mechanismus ermöglicht es, bestimmte Teile der Plattform-Firmware während des laufenden Betriebs (Laufzeit) zu +aktualisieren, ohne dass ein Neustart erforderlich ist. Dies ist von entscheidender Bedeutung, wenn das System zu +100~\% verfügbar sein muss und sich die mit einem Neustart verbundene Ausfallzeit nicht leisten kann, oder wenn die vom +System ausgeführte Arbeit besonders wichtig ist, so dass sie nicht unterbrochen werden kann und es nicht sinnvoll ist, +zu warten, bis sie abgeschlossen ist. Der bestehende Firmware-Code kann geändert (Treiber-Update) oder durch Hinzufügen +neuen Codes zur Firmware erweitert werden (Code-Injektion). Außerdem ermöglicht der Telemetrietreiber dem Benutzer, mit +Hilfe der Plattform-Firmware-Laufzeit-Telemetrieschnittstelle Telemetriedaten aus der Firmware abzurufen. Um die Treiber +als Module zu kompilieren, wählen Sie hier M: die Module heißen dann \texttt{pfr\_update} und \texttt{pfr\_telemetry}. + +\subsubsection{ACPI PCC Address Space} +CONFIG\_ACPI\_PCC [=y] \textbf{[Y]}\\ +Der PCC-Adressraum, der auch als PCC-Operationsbereich bezeichnet wird, bezieht sich auf den Bereich des PCC-Unterraums, +der auf die PCC-Signatur folgt. Die PCC Operation Region arbeitet mit der PCC Table (Platform Communications Channel Table) +zusammen. PCC-Unterräume, die für die Verwendung als PCC Operation Region markiert sind, dürfen nicht als PCC-Unterräume +für die Standard-ACPI-Funktionen wie CPPC, RASF, PDTT und MPST verwendet werden. Diese Standardfunktionen müssen stattdessen +immer die PCC-Tabelle verwenden. Aktivieren Sie diese Funktion, wenn Sie den PCC Address Space Handler einrichten und +installieren möchten, um PCC OpRegion in der Firmware zu behandeln. + +\subsubsection{ACPI FFH Address Space} +CONFIG\_ACPI\_FFH [=y] \textbf{[Y]}\\ +Der FFH (Fixed Function Hardware) Adressraum, auch FFH Operation Region genannt, erlaubt es, plattformspezifische OpRegions +zu definieren. Aktivieren Sie diese Funktion, wenn Sie den FFH-Adressraum-Handler einrichten und installieren möchten, +um die FFH-OpRegion in der Firmware zu behandeln. + +\subsubsection{PMIC (Power Management Integrated Circuit) operation region support} +CONFIG\_PMIC\_OPREGION [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um die Unterstützung für den ACPI-Betriebsbereich des PMIC-Chips zu aktivieren. Der Betriebsbereich +kann zur Steuerung von Stromschienen und zum Lesen/Schreiben von Sensoren auf dem PMIC-Chip verwendet werden. + +\subsubsection{ACPI operation region support for TPS68470 PMIC} +CONFIG\_TPS68470\_PMIC\_OPREGION [=y] \textbf{[Y]}\\ +Diese Konfiguration fügt ACPI-Betriebsbereich-Unterstützung für TI TPS68470 PMIC hinzu. Der Baustein TPS68470 ist eine +fortschrittliche Energieverwaltungseinheit, die ein Kompaktkameramodul (CCM) mit Strom versorgt, Takte für Bildsensoren +erzeugt, eine Dual-LED für den Blitz ansteuert und zwei LED-Treiber für allgemeine Anzeigen enthält. +Dieser Treiber ermöglicht die Unterstützung der ACPI-Betriebsregion für die Steuerung von Spannungsreglern und Taktgebern. +Bei dieser Option handelt es sich um ein bool, da sie eine ACPI-Betriebsregion bereitstellt, die verfügbar sein muss, +bevor eines der Geräte, die diese Option verwenden, getestet wird. + +\subsubsection{Platform Runtime Mechanism Support} +CONFIG\_ACPI\_PRMT [=y] \textbf{[Y]}\\ +Der Plattform-Laufzeit-Mechanismus (Platform Runtime Mechanism, PRM) ist eine Firmware-Schnitt\-stelle, die eine Reihe von +ausführbaren Binärdateien bereitstellt, die vom AML-Interpreter oder direkt von Gerätetreibern aufgerufen werden können. +Sagen Sie Y, um den AML-Interpreter für die Ausführung des PRM-Codes zu aktivieren. Während diese Funktion im Prinzip +optional ist, kann das Weglassen dieser Funktion den Rechenaufwand für die Initialisierung einiger Serversysteme erheblich +erhöhen. + +\subsection{CPU Frequency scaling \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CPU\_FREQ [=y] \textbf{[Y]}\\ +Mit der CPU-Frequenzskalierung können Sie die Taktfrequenz von CPUs im laufenden Betrieb ändern. Dies ist eine gute Methode, +um Strom zu sparen, denn je niedriger die CPU-Taktfrequenz, desto weniger Strom verbraucht die CPU. Beachten Sie, dass +dieser Treiber die CPU-Taktfrequenz nicht automatisch ändert. Sie müssen entweder einen dynamischen cpufreq-Governor +(siehe unten) nach dem Booten aktivieren oder ein Userspace-Tool verwenden.\\ +Details finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. Im Zweifelsfall sagen Sie N. + +\subsubsection{CPU frequency transition statistics} +CONFIG\_CPU\_FREQ\_STAT [=y] \textbf{[Y]}\\ +Exportieren Sie CPU-Häufigkeitsstatistiken über sysfs. Im Zweifelsfall sagen Sie N. + +\subsubsection{Default CPUFreq governor () \texorpdfstring{$\rightarrow$}{->}} +Diese Option legt fest, welcher CPUFreq-Governor beim Start geladen werden soll. +Im Zweifelsfall ist die Standardeinstellung zu verwenden. + +\paragraph{performance}$~$\\ +CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_PERFORMANCE [=n] \textbf{[N]}\\ +Verwenden Sie den CPUFreq-Governor \glq performance\grq{} als Standard. Damit wird die Frequenz statisch auf die höchste von +der CPU unterstützte Frequenz eingestellt. + +\paragraph{powersave}$~$\\ +CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_POWERSAVE [=n] \textbf{[N]}\\ +Verwenden Sie den CPUFreq-Governor \glq powersave\grq{} als Standard. Damit wird die Frequenz statisch auf die niedrigste +von der CPU unterstützte Frequenz eingestellt. + +\paragraph{userspace}$~$\\ +CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_USERSPACE [=n] \textbf{[N]}\\ +Verwenden Sie den CPUFreq-Governor \glq userspace\grq{} als Standard. Damit können Sie die CPU-Frequenz manuell einstellen +oder ein Userspace-Programm soll die CPU dynamisch einstellen können, ohne den Userspace-Governor manuell +aktivieren zu müssen. + +\paragraph{schedutil}$~$\\ +CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ +Verwenden Sie standardmäßig den CPUFreq-Governor \glq schedutil\grq{}. Wenn Sie sich nicht sicher sind, sehen Sie in +der Hilfe zu diesem Gouverneur nach. Der Fallback-Regler ist \glqq performance\grqq{}. + +\subsubsection{`performance' governor} +CONFIG\_CPU\_FREQ\_GOV\_PERFORMANCE [=y] \textbf{[Y]}\\ +Dieser cpufreq-Regler setzt die Frequenz statisch auf die höchste verfügbare CPU-Frequenz. Um diesen Treiber +als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_performance} heißen. +Im Zweifelsfall sagen Sie Y. + +\subsubsection{`powersave' governor} +CONFIG\_CPU\_FREQ\_GOV\_POWERSAVE [=y] \textbf{[Y]}\\ +Dieser cpufreq-Regler setzt die Frequenz statisch auf die niedrigste verfügbare CPU-Frequenz. Um diesen Treiber +als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_powersave} heißen. +Im Zweifelsfall wählen Sie Y. + +\subsubsection{`userspace' governor for userspace frequency scaling} +CONFIG\_CPU\_FREQ\_GOV\_USERSPACE [=y] \textbf{[Y]}\\ +Aktivieren Sie diesen cpufreq-Governor, wenn Sie die CPU-Frequenz entweder manuell einstellen wollen oder wenn +ein Userspace-Programm in der Lage sein soll, die CPU dynamisch einzustellen, wie bei +LART \url{http://www.lartmaker.nl/}. Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cpufreq\_userspace} heißen. Im Zweifelsfall sagen Sie Y. + +\subsubsection{`ondemand' cpufreq policy governor} +CONFIG\_CPU\_FREQ\_GOV\_ONDEMAND [=y] \textbf{[Y]}\\ +`ondemand' -- Dieser Treiber fügt einen dynamischen cpufreq policy governor hinzu. +Der Gouverneur führt eine periodische Abfrage durch und ändert die Frequenz auf der Grundlage der CPU-Auslastung. +Die Unterstützung für diesen Gouverneur hängt von der Fähigkeit der CPU ab, schnelle Frequenzwechsel durchzuführen +(d.~h. Frequenzübergänge mit sehr geringer Latenzzeit). Um diesen Treiber als Modul zu kompilieren, +wählen Sie hier M: Das Modul wird \texttt{cpufreq\_ondemand} heißen. +Details finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. Im Zweifelsfall sagen Sie N. + +\subsubsection{`conservative' cpufreq governor} +CONFIG\_CPU\_FREQ\_GOV\_CONSERVATIVE [=y] \textbf{[Y]}\\ +`konservativ' -- dieser Treiber ähnelt dem \glqq On-Demand\grqq{}-Regler sowohl in seinem Quellcode als auch in +seinem Zweck, der Unterschied besteht in seiner Optimierung für eine bessere Eignung in einer batteriebetriebenen +Umgebung. Die Frequenz wird sanft erhöht und gesenkt, anstatt auf 100~\% zu springen, wenn die Geschwindigkeit +erforderlich ist. Wenn Sie einen Desktop-Rechner haben, sollten Sie stattdessen den \glqq On-Demand\grqq{}-Regler +in Betracht ziehen. Wenn Sie jedoch einen Laptop, einen PDA oder sogar einen AMD64-basierten Computer verwenden +(wegen der inakzeptablen schrittweisen Latenzprobleme zwischen den minimalen und maximalen Frequenzübergängen in +der CPU), werden Sie wahrscheinlich diesen Regler verwenden wollen. Um diesen Treiber als Modul zu kompilieren, +wählen Sie hier M: Das Modul wird \texttt{cpufreq\_conservative} heißen.\\ +Einzelheiten finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$.\\Im Zweifelsfall sagen Sie N. + +\subsubsection{`schedutil' cpufreq policy governor} +CONFIG\_CPU\_FREQ\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ +Dieser Gouverneur trifft seine Entscheidungen auf der Grundlage der vom Scheduler bereitgestellten Nutzungsdaten. +Er stellt die CPU-Frequenz so ein, dass sie proportional zu dem vom Scheduler gelieferten Verhältnis zwischen +Auslastung und Kapazität ist. Wenn die Auslastung frequenzinvariant ist, ist die neue Frequenz auch proportional +zur maximal verfügbaren Frequenz. Wenn dies nicht der Fall ist, ist sie proportional zur aktuellen Frequenz der CPU. +Der Kipppunkt der Frequenz liegt in beiden Fällen bei einer Auslastung/Kapazität von 80~\%.\\ +Im Zweifelsfall sagen Sie N. + +\subsubsection*{*** CPU frequency scaling drivers ***} +(Treiber zur Skalierung der CPU-Frequenz) + +\subsubsection{Intel P state control} +CONFIG\_X86\_INTEL\_PSTATE [=y] \textbf{[Y]}\\ +Dieser Treiber bietet einen P-Status für Intel-Core-Prozessoren. Der Treiber implementiert einen internen +Gouverneur und wird der Skalierungstreiber und Gouverneur für Sandy-Bridge-Prozessoren werden. +Wenn dieser Treiber aktiviert ist, wird er der bevorzugte Skalierungstreiber für Sandy-Bridge-Prozessoren.\\ +Im Zweifelsfall sagen Sie N. + +\subsubsection{Processor Clocking Control interface driver} +CONFIG\_X86\_PCC\_CPUFREQ [=y] \textbf{[Y]}\\ +Dieser Treiber bietet Unterstützung für die PCC-Schnittstelle. Einzelheiten finden Sie unter:\\ +$<$file:Documentation/admin-guide/pm/cpufreq\_drivers.rst$>$. Um diesen Treiber als Modul zu kompilieren, +wählen Sie hier M: +Das Modul wird \texttt{pcc-cpufreq} heißen. Im Zweifelsfall sagen Sie N. + +\subsubsection{AMD Processor P-State driver} +CONFIG\_X86\_AMD\_PSTATE [=y] \textbf{[Y]}\\ +Dieser Treiber fügt einen CPUFreq-Treiber hinzu, der einen feinkörnigen Frequenzsteuerungsbereich für die +Prozessorleistung anstelle der alten Leistungsstufen verwendet. In den ACPI-Tabellen des Systems muss +\_CPC vorhanden sein.\\ +Details finden Sie unter: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$. +Im Zweifelsfall sagen Sie N. + +\paragraph{AMD Processor P-State default mode}$~$\\ +CONFIG\_X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3] \textbf{[3]}\\ +Wählen Sie den Standardmodus, den der amd-pstate-Treiber auf unterstützter Hardware verwenden soll. +Der eingestellte Wert hat die folgenden Bedeutungen: +\begin{itemize} +\item[] 1 \texorpdfstring{$\rightarrow$}{->} Deaktiviert +\item[] 2 \texorpdfstring{$\rightarrow$}{->} Passiv +\item[] 3 \texorpdfstring{$\rightarrow$}{->} Aktiv (EPP) +\item[] 4 \texorpdfstring{$\rightarrow$}{->} Geführt +\end{itemize} +Für Details, siehe: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$.\\ +Symbol: X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3]\\ +Type : Ganzzahl (integer)\\ +Bereich (range): [1 4] + +\subsubsection{selftest for AMD Processor P-State driver} +CONFIG\_X86\_AMD\_PSTATE\_UT [=m] \textbf{[M]}\\ +Dieses Kernelmodul wird für Tests verwendet. Hier kann man mit Sicherheit M sagen. +Es kann auch ohne aktiviertes X86\_AMD\_PSTATE eingebaut werden. Derzeit werden nur Tests für amd-pstate +unterstützt. Wenn X86\_AMD\_PSTATE deaktiviert ist, kann es den Benutzern sagen, dass der Test nur auf dem +amd-pstate Treiber laufen kann, bitte setzen Sie X86\_AMD\_PSTATE aktiviert. +In der Zukunft werden Vergleichstests hinzugefügt werden. Es kann amd-pstate deaktiviert und acpi-cpufreq +aktiviert werden, um Testfälle auszuführen und dann die Testergebnisse zu vergleichen. + +\subsubsection{ACPI Processor P-State driver} +CONFIG\_X86\_ACPI\_CPUFREQ [=m] \textbf{[M]}\\ +Dieser Treiber fügt einen CPUFreq-Treiber hinzu, der die ACPI Processor Performance States nutzt. +Dieser Treiber unterstützt auch Intel Enhanced Speedstep und neuere AMD-CPUs. Um diesen Treiber als Modul +zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{acpi-cpufreq} heißen.\\ +Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall sagen Sie N. + +\paragraph{Legacy cpb sysfs knob support for AMD CPUs}$~$\\ +CONFIG\_X86\_ACPI\_CPUFREQ\_CPB [=y] \textbf{[Y]}\\ +Der powernow-k8-Treiber stellte früher einen sysfs-Regler namens \texttt{cpb} zur Verfügung, +um die Core Performance Boosting-Funktion von AMD-CPUs zu deaktivieren. Diese Datei wurde nun durch den +allgemeineren \glqq boost\grqq{}-Eintrag abgelöst. +Wenn Sie diese Option aktivieren, stellt der acpi\_cpufreq-Treiber aus Kompatibilitätsgründen den alten +Eintrag zusätzlich zum neuen \glqq boost\grqq{}-Eintrag bereit. + +\subsubsection{AMD Opteron/Athlon64 PowerNow!} +CONFIG\_X86\_POWERNOW\_K8 [=m] \textbf{[M]}\\ +Dies fügt den CPUFreq-Treiber für K8/frühe Opteron/Athlon64-Prozessoren hinzu. Unterstützung für K10 und +neuere Prozessoren ist jetzt in acpi-cpufreq enthalten. Um diesen Treiber als Modul zu kompilieren, +wählen Sie hier M: Das Modul wird \texttt{powernow-k8} heißen.\\ +Details finden Sie in $<$file:Documentation/cpu-freq/$>$. + +\subsubsection{AMD frequency sensitivity feedback powersave bias} +CONFIG\_X86\_AMD\_FREQ\_SENSITIVITY [=m] \textbf{[M]}\\ +Dies fügt dem On-Demand-Governor eine AMD-spezifische Powersave-Bias-Funktion hinzu, die es ihm ermöglicht, +auf der Grundlage von Rückmeldungen der Hardware energiebewusstere Entscheidungen über Frequenzänderungen +zu treffen (verfügbar ab AMD-Familie 16h). Durch das Hardware-Feedback erfährt die Software, wie +\glqq empfindlich\grqq{} die Arbeitslasten der CPUs gegenüber Frequenzänderungen sind. +CPU-gebundene Arbeitslasten sind empfindlicher, d.~h. sie werden bei einer Frequenzerhöhung besser funktionieren. +Speicher-/IO-gebundene Arbeitslasten reagieren weniger empfindlich, d.~h. sie werden nicht unbedingt besser, +wenn die Frequenz erhöht wird.\\ +Im Zweifelsfall sagen Sie N. + +\subsubsection{Intel Enhanced SpeedStep (deprecated)} +CONFIG\_X86\_SPEEDSTEP\_CENTRINO [=n] \textbf{[N]}\\ +Dies ist veraltet und diese Funktionalität ist nun in acpi\_cpufreq (X86\_ACPI\_CPUFREQ) integriert. +Verwenden Sie diesen Treiber anstelle von speedstep\_centrino. +Dies fügt den CPUFreq-Treiber für Enhanced SpeedStep-fähige mobile CPUs hinzu. +Dies bedeutet Intel Pentium M (Centrino) CPUs oder 64bit-fähige Intel Xeons. Um diesen Treiber als Modul +zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{speedstep-centrino} heißen.\\ +Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall wählen Sie N. + +\subsubsection{Intel Pentium 4 clock modulation} +CONFIG\_X86\_P4\_CLOCKMOD [=m] \textbf{[N]}\\ +Dies fügt den CPUFreq-Treiber für Intel Pentium 4 / XEON Prozessoren hinzu. Wenn er aktiviert ist, +senkt er die CPU-Temperatur durch Überspringen von Takten. Dieser Treiber sollte nur in Ausnahmefällen +verwendet werden, wenn eine sehr niedrige Leistung benötigt wird, da er starke Verlangsamungen und spürbare +Latenzen verursacht. Normalerweise sollte stattdessen Speedstep verwendet werden. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{p4-clockmod} genannt.\\ +Für Details werfen Sie einen Blick auf $<$file:Documentation/cpu-freq/$>$. Wenn Sie sich nicht absolut +sicher sind, wählen Sie N. + +\subsubsection*{*** shared options ***} +(gemeinsame Optionen) + +\subsection{CPU Idle \texorpdfstring{$\rightarrow$}{->}} +(CPU im Leerlauf) + +\subsubsection{CPU idle PM support} +CONFIG\_CPU\_IDLE [=y] \textbf{[Y]}\\ +CPU idle ist ein allgemeiner Mechanismus zur Unterstützung der softwaregesteuerten Verwaltung der +Prozessorleistung im Leerlauf. Es umfasst modulare plattformübergreifende Regler, die während der +Laufzeit ausgetauscht werden können. Wenn Sie eine ACPI-aktivierte Plattform verwenden, sollten Sie hier Y angeben. +PM steht für \glqq power management\grqq{} -- Verwaltung der Prozessorleistung. + +\paragraph{Ladder governor (for periodic timer tick)}$~$\\ +CONFIG\_CPU\_IDLE\_GOV\_LADDER [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\paragraph{Menu governor (for tickless system)}$~$\\ +CONFIG\_CPU\_IDLE\_GOV\_MENU [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\paragraph{Timer events oriented (TEO) governor (for tickless systems)}$~$\\ +CONFIG\_CPU\_IDLE\_GOV\_TEO [=y] \textbf{[Y]}\\ +Dieser Gouverneur implementiert eine vereinfachte Methode zur Auswahl des Ruhezustands, die sich auf +Timer-Ereignisse konzentriert und keine Steigerung der Interaktivität bewirkt. +Einige Arbeitslasten profitieren davon, und es sollte im Allgemeinen sicher zu verwenden sein.\\ +Sagen Sie hier Y, wenn Sie mit den Alternativen nicht zufrieden sind. + +\paragraph{Haltpoll governor (for virtualized systems)}$~$\\ +CONFIG\_CPU\_IDLE\_GOV\_HALTPOLL [=y] \textbf{[Y]}\\ +Dieser Gouverneur implementiert die Auswahl des Leerlaufzustands von haltpoll, der in Verbindung mit +dem haltpoll cpuidle-Treiber verwendet wird und es ermöglicht, eine bestimmte Zeit lang zu pollen, +bevor der Leerlaufzustand erreicht wird. Einige virtualisierte Arbeitslasten profitieren von dieser Funktion. + +\paragraph{Halt poll cpuidle driver}$~$\\ +CONFIG\_HALTPOLL\_CPUIDLE [=m] \textbf{[N]}\\ +Diese Option aktiviert den \glqq halt poll cpuidle\grqq{}-Treiber, der eine Abfrage vor dem Anhalten +im Gast ermöglicht (effizienter als die Abfrage im Host über halt\_poll\_ns für einige Szenarien). + +\subsection{CPUidle Driver for Intel Processors} +CONFIG\_INTEL\_IDLE [=y] \textbf{[Y]}\\ +Aktivieren Sie intel\_idle, einen cpuidle-Treiber, der das Wissen über native Intel-Hardware-Idle-Funk\-tio\-nen enthält. +Der acpi\_idle-Treiber kann zur gleichen Zeit konfiguriert werden, um Prozessoren zu behandeln, +die intel\_idle nicht unterstützt. diff --git a/documentation/linux_configuration_06_bus_options.tex b/documentation/linux_configuration_06_bus_options.tex new file mode 100644 index 0000000..987f354 --- /dev/null +++ b/documentation/linux_configuration_06_bus_options.tex @@ -0,0 +1,7 @@ +\section{Bus options (PCI etc.) \texorpdfstring{$\rightarrow$}{->}} +\textit{Bus-Optionen (PCI usw.)} + +\subsection{Support mmconfig PCI config space access} +CONFIG\_PCI\_MMCONFIG [=y] \textbf{[Y]}\\ +(Unterstützung des mmconfig PCI"=Konfigurationsraumzugriffs)\\ +\textit{Für diese Option gibt es keine Hilfe.} diff --git a/documentation/linux_configuration_07_binary_emulations.tex b/documentation/linux_configuration_07_binary_emulations.tex new file mode 100644 index 0000000..9071d7f --- /dev/null +++ b/documentation/linux_configuration_07_binary_emulations.tex @@ -0,0 +1,14 @@ +\section{Binary Emulations \texorpdfstring{$\rightarrow$}{->}} +\textit{Binäre Emulationen} + +\subsection{IA32 Emulation} +CONFIG\_IA32\_EMULATION [=y] \textbf{[N]}\\ +Code einbinden, um ältere 32-Bit-Programme unter einem 64-Bit-Kernel auszuführen. +Sie sollten dies wahrscheinlich aktivieren, es sei denn, Sie sind sich zu 100~\% sicher, +dass Sie keine 32-Bit-Programme mehr haben. + +\subsection{x32 ABI for 64-bit mode} +CONFIG\_X86\_X32\_ABI [=n] \textbf{[N]}\\ +Fügen Sie Code ein, um Binärdateien für die native 32-Bit-ABI x32 für 64-Bit-Prozessoren auszuführen. +Ein x32-Prozess erhält Zugriff auf die vollständige 64-Bit-Registerdatei und den breiten Datenpfad, +während Zeiger auf 32~Bit belassen werden, um den Speicherbedarf zu verringern. diff --git a/documentation/linux_configuration_08_virtualization.tex b/documentation/linux_configuration_08_virtualization.tex new file mode 100644 index 0000000..b79421d --- /dev/null +++ b/documentation/linux_configuration_08_virtualization.tex @@ -0,0 +1,53 @@ + +\section{Virtualization \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_VIRTUALIZATION [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, um Optionen für die Verwendung Ihres Linux-Hosts zur Ausführung anderer +Betriebssysteme in virtuellen Maschinen (Gäste) zu erhalten. Diese Option allein fügt keinen +Kernel-Code hinzu. Wenn Sie N sagen, werden alle Optionen in diesem Untermenü übersprungen +und deaktiviert. + +\subsection{Kernel-based Virtual Machine (KVM) support} +CONFIG\_KVM [=m] \textbf{[M]}\\ +Unterstützung für das Hosten vollständig virtualisierter Gastmaschinen mit +Hardware"=Virtualisierungserweiterungen. Sie benötigen einen relativ aktuellen Prozessor mit +Virtualisierungserweiterungen. Außerdem müssen Sie eines oder mehrere der unten aufgeführten +Prozessormodule auswählen. Dieses Modul ermöglicht den Zugriff auf die Hardware-Funktionen +über einen Geräteknoten namens /dev/kvm. Um dies als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{kvm} heißen.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{KVM for Intel (and compatible) processors support} +CONFIG\_KVM\_INTEL [=m] \textbf{[M]}\\ +Bietet Unterstützung für KVM auf Prozessoren, die mit Intels VT-Erweiterungen, auch bekannt +als Virtual Machine Extensions (VMX), ausgestattet sind. +Um dies als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{kvm-intel} genannt. + +\paragraph{Software Guard eXtension (SGX) Virtualization}$~$\\ +CONFIG\_X86\_SGX\_KVM [=y] \textbf{[Y]}\\ +Ermöglicht KVM-Gästen, SGX-Enklaven zu erstellen. Dies schließt die Unterstützung ein, +\glqq rohen\grqq{}, nicht wiederverwendbaren Enklavenspeicher für Gäste über einen Geräteknoten, +z.~B. /dev/sgx\_vepc, freizugeben. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{KVM for AMD processors support} +CONFIG\_KVM\_AMD [=m] \textbf{[M]}\\ +Bietet Unterstützung für KVM auf Prozessoren, die mit Intels VT-Erweiterungen, auch bekannt +Bietet Unterstützung für KVM auf AMD-Prozessoren, die mit den AMD-V (SVM)-Erweiterungen +ausgestattet sind. Um dies als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{kvm-amd} genannt. + +\paragraph{AMD Secure Encrypted Virtualization (SEV) support}$~$\\ +CONFIG\_KVM\_AMD\_SEV [=y] \textbf{[N]}\\ +Bietet Unterstützung für den Start von verschlüsselten VMs (SEV) und verschlüsselten VMs +mit verschlüsseltem Status (SEV-ES) auf AMD-Prozessoren. + +\subsubsection{System Management Mode emulation} +CONFIG\_KVM\_SMM [=y] \textbf{[Y]}\\ +Bietet Unterstützung für KVM zur Emulation des Systemverwaltungsmodus (SMM) in virtuellen +Maschinen. Dies kann von der Firmware der virtuellen Maschine verwendet werden, um UEFI Secure +Boot zu implementieren. + +\subsubsection{Support for Xen hypercall interface} +CONFIG\_KVM\_XEN [=y] \textbf{[Y]}\\ +Bietet KVM-Unterstützung für das Hosten von Xen HVM-Gästen und die Weitergabe von +Xen-Hyper\-auf\-rufen an den Userspace. Im Zweifelsfall sagen Sie N. diff --git a/documentation/linux_configuration_09_general_architecture-dependent_options.tex b/documentation/linux_configuration_09_general_architecture-dependent_options.tex new file mode 100644 index 0000000..62bda08 --- /dev/null +++ b/documentation/linux_configuration_09_general_architecture-dependent_options.tex @@ -0,0 +1,164 @@ +\section{General architecture-dependent options \texorpdfstring{$\rightarrow$}{->}} +(Allgemeine architekturabhängige Optionen) + +\subsection{Kprobes} +CONFIG\_KPROBES [=y] \textbf{[Y]}\\ +Mit Kprobes können Sie an fast jeder Kerneladresse trappen und eine Callback-Funktion ausführen. +register\_kprobe() legt einen Probepoint fest und spezifiziert den Callback. +Kprobes ist nützlich für Kernel-Debugging, nicht-intrusive Instrumentierung und Tests.\\ +Im Zweifelsfall sagen Sie "N". + +\subsection{Optimize very unlikely/likely branches} +CONFIG\_JUMP\_LABEL [=y] \textbf{[Y]}\\ +Diese Option ermöglicht eine transparente Verzweigungsoptimierung, die die Ausführung bestimmter +fast-immer-wahrer oder fast-immer-falscher Verzweigungsbedingungen im Kernel noch billiger macht. +Bestimmte leistungsempfindliche Kernel-Codes wie Trace-Points, Scheduler-Funktionen, Netzwerk-Code +und KVM haben solche Verzweigungen und bieten Unterstützung für diese Optimierungstechnik. +Wenn festgestellt wird, dass der Compiler \glqq asm goto\grqq{} unterstützt, kompiliert der Kernel +solche Verzweigungen mit einer einfachen nop-Anweisung. Wenn das Bedingungsflag auf true gesetzt wird, +wird der nop-Befehl in einen Sprungbefehl umgewandelt, um den bedingten Befehlsblock auszuführen. +Diese Technik senkt den Overhead und die Belastung der Verzweigungsvorhersage des Prozessors und macht +den Kernel im Allgemeinen schneller. Die Aktualisierung der Bedingung ist zwar langsamer, aber das +kommt immer sehr selten vor. (Bei 32-Bit-x86 können die erforderlichen Optionen, die zu den +Compiler-Flags hinzugefügt werden, die Größe des Kernels leicht erhöhen). + +\subsubsection{Static key selftest} +CONFIG\_STATIC\_KEYS\_SELFTEST [=n] \textbf{[N]}\\ +Bootzeit-Selbsttest des Branch-Patching-Codes. + +\subsection{Static call selftest} +CONFIG\_STATIC\_CALL\_SELFTEST [=n] \textbf{[N]}\\ +Bootzeit-Selbsttest des Call-Patching-Codes. + +\subsection{Enable seccomp to safely execute untrusted bytecode} +CONFIG\_SECCOMP [=n] \textbf{[N]}\\ +Diese Kernel-Funktion ist nützlich für numerische Anwendungen, die während ihrer Ausführung +mit nicht vertrauenswürdigem Bytecode umgehen müssen. Durch die Verwendung von Pipes oder anderen +Transporten, die dem Prozess als Dateideskriptoren zur Verfügung gestellt werden und die +Lese-/Schreib-Syscalls unterstützen, ist es möglich, diese Anwendungen mit seccomp in ihrem eigenen +Adressraum zu isolieren. Sobald seccomp über prctl(PR\_SET\_SECCOMP) oder den seccomp()-Syscall +aktiviert ist, kann es nicht mehr deaktiviert werden, und die Task darf nur einige wenige sichere +Syscalls ausführen, die für jeden seccomp-Modus definiert sind. Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Show seccomp filter cache status in /proc/pid/seccomp\_cache} +CONFIG\_SECCOMP\_CACHE\_DEBUG [=n] \textbf{[N]}\\ +Dies ermöglicht der Schnittstelle /proc/pid/seccomp\_cache die Überwachung der +seccomp-Cache-Daten. Das Dateiformat kann sich ändern. Zum Lesen der Datei ist +CAP\_SYS\_ADMIN erforderlich. Diese Option ist nur zur Fehlersuche gedacht. +Die Aktivierung birgt das Risiko, dass ein Angreifer die seccomp-Filterlogik ableiten kann.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Stack Protector buffer overflow detection} +CONFIG\_STACKPROTECTOR [=y] \textbf{[Y]}\\ +Diese Option schaltet die GCC-Funktion \glqq stack-protector\grqq{} ein. +Diese Funktion legt am Anfang von Funktionen einen Canary-Wert (Kanarienvogelwert) auf den +Stack kurz vor der +Rücksprungadresse und überprüft den Wert kurz vor der eigentlichen Rückkehr. Stack-basierte +Pufferüberläufe (die diese Rücksprungadresse überschreiben müssen) überschreiben nun auch den +Canary-Wert, was erkannt wird und der Angriff wird dann durch eine Kernel-Panik neutralisiert. +Bei Funktionen, die ein 8-Byte- oder größeres Zeichenarray auf dem Stack haben, wird die Logik +des Stack-Protector-Canarys hinzugefügt. Diese Funktion erfordert gcc Version 4.2 oder höher, +oder eine gcc-Distribution, die die Funktion zurückportiert hat (\texttt{-fstack-protector}). +Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa +3\% aller Kernel-Funktionen hinzu, was die Kernel-Codegröße um etwa 0,3\% erhöht. + +\subsubsection{Strong Stack Protector} +CONFIG\_STACKPROTECTOR\_STRONG [=y] \textbf{[Y]}\\ +Bei Funktionen wird die Stack-Protector-Canary-Logik unter einer der folgenden Bedingungen hinzugefügt: +\begin{itemize} +\item[-] die Adresse einer lokalen Variablen wird als Teil der rechten Seite einer Zuweisung oder eines +Funktionsarguments verwendet +\item[-] die lokale Variable ist ein Array (oder eine Union, die ein Array enthält), unabhängig von Typ oder Länge des Arrays +\item[-] Lokale Variablen werden als Register verwendet +\end{itemize} +Diese Funktion erfordert gcc Version 4.9 oder höher, oder eine gcc-Distribution, die die Funktion +zurück\-por\-tiert hat (\texttt{-fstack-protector-strong}). +Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa 20\% aller +Kernel-Funktionen hinzu, was die Größe des Kernel-Codes um etwa 2\% erhöht. + +\subsection{Link Time Optimization (LTO) () \texorpdfstring{$\rightarrow$}{->}} + +\subsubsection{None} +CONFIG\_LTO\_NONE [=y] \textbf{[Y]}\\ +Erstellen Sie den Kernel normal, ohne Link Time Optimization (LTO). + +\subsection{Provide system calls for 32-bit time\_t} +CONFIG\_COMPAT\_32BIT\_TIME [=y] \textbf{[Y]}\\ +Dies ermöglicht die Unterstützung von 32 Bit time\_t zusätzlich zur Unterstützung von +64~Bit time\_t. Dies ist auf allen 32-Bit-Architekturen und 64-Bit-Architekturen als Teil +der Kompatibilitäts-Syscall-Behandlung relevant. + +\subsection{Use a virtually-mapped stack} +CONFIG\_VMAP\_STACK [=y] \textbf{[Y]}\\ +Aktivieren Sie dies, wenn Sie virtuell gemappte Kernel-Stacks mit Guard Pages verwenden wollen. +Dies führt dazu, dass Kernel-Stack-Überläufe sofort abgefangen werden und keine schwer zu +diagnostizierende Korruption verursachen. Um dies mit Software-KASAN-Modi zu verwenden, muss die +Architektur die Unterstützung von virtuellen Mappings mit echtem Schattenspeicher unterstützen +und KASAN\_VMALLOC muss aktiviert sein. + +\subsection{Support for randomizing kernel stack offset on syscall entry} +CONFIG\_RANDOMIZE\_KSTACK\_OFFSET [=y] \textbf{[Y]}\\ +Der Kernel-Stack-Offset kann (nach pt\_regs) mit etwa 5~Bits Entropie randomisiert werden, +wodurch Angriffe auf Speicherbeschädigung vereitelt werden, die auf Stack-Adress-Determinismus +oder auf die Offenlegung der Adressen von Cross-Syscalls angewiesen sind. +Die Funktion wird über den Kernel-Boot-Parameter \texttt{randomize\_kstack\_offset=on/off} gesteuert +und hat, wenn sie ausgeschaltet ist, aufgrund der Verwendung von statischen Verzweigungen +(siehe JUMP\_LABEL) keinen Overhead.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Default state of kernel stack offset randomization} +CONFIG\_RANDOMIZE\_KSTACK\_OFFSET\_DEFAULT [=y] \textbf{[Y]}\\ +Die Randomisierung des Kernel-Stack-Offsets wird durch den Kernel-Boot-Parameter\\ +\texttt{randomize\_kstack\_offset=on/off} gesteuert, und diese Konfiguration wählt den +Standard-Boot-Status. + +\subsection{Locking event counts collection} +CONFIG\_LOCK\_EVENT\_COUNTS [=y] \textbf{[Y]}\\ +Ermöglicht eine leichtgewichtige Zählung verschiedener sperrungsbezogener Ereignisse im System +mit minimalen Auswirkungen auf die Leistung. Dies verringert die Wahrscheinlichkeit, dass sich +das Anwendungsverhalten aufgrund von Zeitunterschieden ändert. Die Zählungen werden über +debugfs gemeldet. + +\subsection{GCOV-based kernel profiling \texorpdfstring{$\rightarrow$}{->}} +(GCOV-basierte Kernel-Profilierung) + +\subsubsection{Enable gcov-based kernel profiling} +CONFIG\_GCOV\_KERNEL [=n] \textbf{[N]}\\ +Diese Option aktiviert die gcov-basierte Code-Profilierung (z.~B. für Code-Abdeckungsmessungen). +Wenn Sie unsicher sind, sagen Sie N.\\[.5em] +Geben Sie zusätzlich CONFIG\_GCOV\_PROFILE\_ALL=y an, um Profilerstellungsdaten für den gesamten +Kernel zu erhalten. Um die Profilerstellung für bestimmte Dateien oder Verzeichnisse zu aktivieren, +fügen Sie eine Zeile ähnlich der folgenden in das jeweilige Makefile ein:\\[.5em] +Für eine einzelne Datei (z.~B. main.o):\\ +\indent \texttt{GCOV\_PROFILE\_main.o := y}\\[.5em] +Für alle Dateien in einem Verzeichnis:\\ +\indent \texttt{GCOV\_PROFILE := y}\\[.5em] +Um Dateien von der Profilerstellung auszuschließen, auch wenn CONFIG\_GCOV\_PROFILE\_ALL +angegeben ist, verwenden Sie:\\ +\indent \texttt{GCOV\_PROFILE\_main.o := n}\\[.5em] +und:\\ +\indent \texttt{GCOV\_PROFILE := n}\\[.5em] +Beachten Sie, dass das debugfs-Dateisystem gemountet sein muss, um auf die Profilerstellungsdaten +zugreifen zu können. + +\subsection{GCC plugins \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_GCC\_PLUGINS [=y] \textbf{[Y]}\\ +GCC-Plugins sind ladbare Module, die zusätzliche Funktionen für den Compiler bereitstellen. +Sie sind nützlich für die Laufzeitinstrumentierung und die statische Analyse.\\ +Siehe Documentation/kbuild/gcc-plugins.rst für Details. + +\subsubsection{Generate some entropy during boot and runtime} +CONFIG\_GCC\_PLUGIN\_LATENT\_ENTROPY [=n] \textbf{[N]}\\ +Mit der Eingabe von Y wird der Kernel einen Teil des Kernel-Codes instrumentieren, +um sowohl aus dem ursprünglichen als auch aus dem künstlich erzeugten Programmzustand +etwas Entropie zu gewinnen. +Dies ist insbesondere bei eingebetteten Systemen hilfreich, bei denen es normalerweise wenig +\glqq natürliche\grqq{} Entropiequellen gibt. +Der Preis ist eine gewisse Verlangsamung des Boot-Prozesses (etwa 0,5~\%) und der fork- und +irq-Verarbeitung. Beachten Sie, dass die auf diese Weise extrahierte Entropie nicht +kryptografisch sicher ist!\\ +Dieses Plugin wurde von grsecurity/PaX portiert. Mehr Informationen unter: + \begin{itemize} + \item[] \url{https://grsecurity.net/} + \item[] \url{https://pax.grsecurity.net/} + \end{itemize} diff --git a/documentation/linux_configuration_10_enable_loadable_module_support.tex b/documentation/linux_configuration_10_enable_loadable_module_support.tex new file mode 100644 index 0000000..332dd88 --- /dev/null +++ b/documentation/linux_configuration_10_enable_loadable_module_support.tex @@ -0,0 +1,158 @@ +\section{Enable loadable module support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_MODULES [=y] \textbf{[Y]}\\ +Kernel-Module sind kleine Stücke kompilierten Codes, die in den laufenden Kernel eingefügt werden können, +anstatt dauerhaft in den Kernel eingebaut zu werden. Sie verwenden das Werkzeug +\texttt{modprobe}, um sie hinzuzufügen (und manchmal zu entfernen).\\ +Wenn Sie hier Y angeben, können viele Teile des Kernels als Module gebaut werden (indem Sie M anstelle +von Y antworten, wo dies angegeben ist):\\ +Dies ist besonders nützlich für selten verwendete Optionen, die zum Booten nicht benötigt werden. +Weitere Informationen finden Sie in den Man Pages für \texttt{modprobe}, +\texttt{lsmod}, \texttt{modinfo}, \texttt{insmod} und \texttt{rmmod}.\\ +Wenn Sie hier Y angeben, müssen Sie \texttt{make modules\_install} ausführen, um die Module unter\\ +/lib/modules/ abzulegen, wo sie von modprobe gefunden werden können (möglicherweise müssen Sie dazu +root sein). +Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Module debugging} +CONFIG\_MODULE\_DEBUG [=n] \textbf{[N]}\\ +Ermöglicht das Aktivieren/Deaktivieren von Funktionen, die Ihnen beim Debuggen von Modulen helfen können. +Auf Produktionssystemen benötigen Sie diese Optionen nicht. + +\subsection{Forced module loading} +CONFIG\_MODULE\_FORCE\_LOAD [=y] \textbf{[Y]}\\ +Erlaubt das Laden von Modulen ohne Versionsinformationen (z.~B. \texttt{modprobe --force}). +Erzwungenes Laden von Modulen setzt das `F' (forced) taint Flag und ist normalerweise eine wirklich +schlechte Idee. + +\subsection{Module unloading} +CONFIG\_MODULE\_UNLOAD [=y] \textbf{[Y]}\\ +Ohne diese Option können Sie keine Module entladen (beachten Sie, dass einige Module möglicherweise +ohnehin nicht entladbar sind), was Ihren Kernel kleiner, schneller und einfacher macht. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Forced module unloading} +CONFIG\_MODULE\_FORCE\_UNLOAD [=y] \textbf{[Y]}\\ +Mit dieser Option können Sie das Entladen eines Moduls erzwingen, auch wenn der Kernel es für unsicher +hält: Der Kernel wird das Modul entfernen, ohne darauf zu warten, dass jemand die Verwendung des Moduls +beendet (mit der Option \texttt{-f} von \texttt{rmmod}). +Dies ist hauptsächlich für Kernel-Entwickler und verzweifelte Benutzer gedacht. Wenn Sie unsicher sind, +sagen Sie N. + +\subsubsection{Tainted module unload tracking} +CONFIG\_MODULE\_UNLOAD\_TAINT\_TRACKING [=y] \textbf{[Y]}\\ +Mit dieser Option können Sie eine Aufzeichnung über jedes entladene Modul führen, das den Kernel +beschädigt hat. Zusätzlich zur Anzeige einer Liste der verknüpften (oder geladenen) Module, z.~B. +bei der Erkennung einer schlechten Seite (siehe bad\_page()), werden auch die oben genannten +Details angezeigt. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Module versioning support} +CONFIG\_MODVERSIONS [=n] \textbf{[N]}\\ +Normalerweise müssen Sie Module verwenden, die mit Ihrem Kernel kompiliert wurden. Wenn Sie +hier Y angeben, ist es manchmal möglich, Module zu verwenden, die für andere Kernel kompiliert wurden, +indem Sie genügend Informationen zu den Modulen hinzufügen, um (hoffentlich) alle Änderungen zu erkennen, +die sie mit dem von Ihnen verwendeten Kernel inkompatibel machen würden.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Source checksum for all modules} +CONFIG\_MODULE\_SRCVERSION\_ALL [=y] \textbf{[Y]}\\ +Module, die eine MODULE\_VERSION enthalten, bekommen ein zusätzliches \glqq srcversion\grqq{}-Feld in +ihre modinfo-Sektion eingefügt, das eine Summe der Quelldateien enthält, aus denen sie entstanden sind. +Dies hilft den Betreuern, genau zu sehen, welche Quelle verwendet wurde, um ein Modul zu bauen +(da andere manchmal die Modulquelle ändern, ohne die Version zu aktualisieren). Mit dieser Option wird +ein solches \glqq srcversion\grqq{}-Feld für alle Module erstellt. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Module signature verification} +CONFIG\_MODULE\_SIG [=y] \textbf{[Y]}\\ +Überprüfung von Modulen auf gültige Signaturen beim Laden: Die Signatur wird einfach an das Modul +angehängt. Für weitere Informationen siehe $<$file:Documentation/admin-guide/module-signing.rst$>$. +Beachten Sie, dass diese Option die OpenSSL-Entwicklungspakete als Kernel-Build-Abhängigkeit hinzufügt, +so dass das Signierwerkzeug seine Krypto-Bibliothek verwenden kann. Sie sollten diese Option aktivieren, +wenn Sie entweder CONFIG\_SECURITY\_LOCKDOWN\_LSM oder eine durch eine andere LSM auferlegte +Lockdown-Funktionalität verwenden wollen -- andernfalls werden unsignierte Module unabhängig von der +Lockdown-Policy ladbar sein. +!!!WARNUNG!!! Wenn Sie diese Option aktivieren, MÜSSEN Sie sicherstellen, dass das Modul nach dem +Signieren NICHT gestrippt wird. Dies schließt den Debuginfo-Strip ein, der von einigen Paketierern +(wie z.~B. rpmbuild) durchgeführt wird, sowie die Einbindung in ein initramfs, das die Modulgröße +reduzieren möchte. + +\subsubsection{Require modules to be validly signed} +CONFIG\_MODULE\_SIG\_FORCE [=n] \textbf{[N]}\\ +Ablehnung von unsignierten Modulen oder signierten Modulen, für die wir keinen Schlüssel haben. +Ohne diesen Schlüssel werden solche Module den Kernel einfach verunreinigen. + +\subsubsection{Automatically sign all modules} +CONFIG\_MODULE\_SIG\_ALL [=y] \textbf{[Y]}\\ +Signiere alle Module während make modules\_install. Ohne diese Option müssen die Module manuell +signiert werden, und zwar mit dem Werkzeug scripts/sign-file. + +\subsection{Which hash algorithm should modules be signed with? () \texorpdfstring{$\rightarrow$}{->}} +Damit wird festgelegt, welche Art von Hashing-Algorithmus bei der Signaturerstellung verwendet wird. +Dieser Algorithmus \textbf{muss} direkt in den Kernel eingebaut werden, damit eine Signaturprüfung +stattfinden kann. Es ist nicht möglich, ein signiertes Modul zu laden, das den Algorithmus enthält, +um die Signatur dieses Moduls zu überprüfen. + +\subsubsection{Sign modules with SHA-1} +CONFIG\_MODULE\_SIG\_SHA1 [=n] \textbf{[N]}\\ +\textit{Für diese Option gibt es keine Hilfe.} +\subsubsection{Sign modules with SHA-224} +CONFIG\_MODULE\_SIG\_SHA224 [=n] \textbf{[N]}\\ +\textit{Für diese Option gibt es keine Hilfe.} +\subsubsection{Sign modules with SHA-256} +CONFIG\_MODULE\_SIG\_SHA256 [=n] \textbf{[N]}\\ +\textit{Für diese Option gibt es keine Hilfe.} +\subsubsection{Sign modules with SHA-384} +CONFIG\_MODULE\_SIG\_SHA384 [=n] \textbf{[N]}\\ +\textit{Für diese Option gibt es keine Hilfe.} +\subsubsection{Sign modules with SHA-512} +CONFIG\_MODULE\_SIG\_SHA512 [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + + +\subsection{Module compression mode} +Mit dieser Option können Sie den Algorithmus auswählen, der zur Komprimierung von Modulen verwendet +wird, wenn \texttt{make modules\_install} ausgeführt wird. (oder Sie können wählen, dass Module +überhaupt nicht komprimiert werden.) Externe Module werden während der Installation ebenfalls auf +die gleiche Weise komprimiert. Für Module innerhalb einer initrd oder initramfs ist es effizienter, +stattdessen die gesamte initrd oder initramfs zu komprimieren. Dies ist vollständig kompatibel mit +signierten Modulen. Bitte beachten Sie, dass das zum Laden von Modulen verwendete Werkzeug den +entsprechenden Algorithmus unterstützen muss. module-init-tools KANN gzip unterstützen, und kmod KANN +gzip, xz und zstd unterstützen. +Ihr Build-System muss das entsprechende Komprimierungswerkzeug bereitstellen, um die Module zu +komprimieren. Im Zweifelsfall wählen Sie `None'. + +\subsubsection{None} +CONFIG\_MODULE\_COMPRESSION\_NONE [=n] \textbf{[N]}\\ +Komprimieren Sie die Module nicht. Die installierten Module sind mit der Endung .ko versehen. +\subsubsection{GZIP} +CONFIG\_MODULE\_COMPRESSION\_GZIP [=n] \textbf{[N]}\\ +Komprimieren Sie Module mit GZIP. Die installierten Module sind mit der Endung .ko.gz versehen. +\subsubsection{XZ} +CONFIG\_MODULE\_COMPRESSION\_XZ [=n] \textbf{[N]}\\ +Komprimieren Sie Module mit XZ. Die installierten Module sind mit der Endung .ko.xz versehen. +\subsubsection{ZSTD} +CONFIG\_MODULE\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\ +Komprimieren Sie Module mit ZSTD. Die installierten Module sind mit der Endung .ko.zst versehen. + +\subsection{Support in-kernel module decompression} +CONFIG\_MODULE\_DECOMPRESS [=y] \textbf{[Y]}\\ +Unterstützung für die Dekomprimierung von Kernelmodulen durch den Kernel selbst, anstatt sich auf +den Userspace zu verlassen, um diese Aufgabe zu erledigen. Nützlich, wenn die Sicherheitsrichtlinie +für das Load Pinning aktiviert ist. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Allow loading of modules with missing namespace imports} +CONFIG\_MODULE\_ALLOW\_MISSING\_NAMESPACE\_IMPORTS [=y] \textbf{[Y]}\\ +Symbole, die mit EXPORT\_SYMBOL\_NS*() exportiert werden, gelten als in einem Namespace exportiert. +Ein Modul, das ein Symbol verwendet, das mit einem solchen Namespace exportiert wurde, muss den +Namespace über MODULE\_IMPORT\_NS() importieren. Es gibt keinen technischen Grund, korrekte +Namespace-Importe zu erzwingen, aber es schafft Konsistenz zwischen Symbolen, die Namespaces +definieren und Benutzern, die Namespaces importieren, die sie verwenden. Diese Option lockert diese +Anforderung und hebt die Durchsetzung beim Laden eines Moduls auf. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Path to modprobe binary} +CONFIG\_MODPROBE\_PATH [=/sbin/modprobe] \textbf{[/sbin/modprobe]}\\ +Wenn der Kernel-Code ein Modul anfordert, geschieht dies durch den Aufruf des +User\-space-Dienst\-pro\-gramms +\texttt{modprobe}. Mit dieser Option können Sie den Pfad festlegen, in dem diese Binärdatei +zu finden ist. Dies kann zur Laufzeit über die sysctl-Datei /proc/sys/kernel/modprobe geändert werden. +Wenn Sie diese Option auf eine leere Zeichenkette setzen, wird die Fähigkeit des Kernels, +Module anzufordern, ausgeschaltet (der Userspace kann jedoch weiterhin explizit Module laden). diff --git a/documentation/linux_configuration_11_enable_the_block_layer.tex b/documentation/linux_configuration_11_enable_the_block_layer.tex new file mode 100644 index 0000000..7dd487d --- /dev/null +++ b/documentation/linux_configuration_11_enable_the_block_layer.tex @@ -0,0 +1,293 @@ +\section{Enable the block layer \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_BLOCK [=y] \textbf{[Y]}\\ +Bietet dem Kernel Unterstützung für die Blockschicht.\\ +Deaktivieren Sie diese Option, um die Unterstützung für die Blockschicht aus dem Kernel zu entfernen. +Dies kann für eingebettete Geräte nützlich sein.\\ +Wenn diese Option deaktiviert ist: +\begin{itemize} + \item[-] werden Blockgerätedateien unbrauchbar, + \item[-] werden einige Dateisysteme (wie ext3) nicht mehr verfügbar. +\end{itemize} +Außerdem werden SCSI-Zeichengeräte und USB-Speicher deaktiviert, da sie verschiedene Definitionen und +Möglichkeiten der Blockschicht nutzen.\\ +Sagen Sie hier "Y", es sei denn, Sie wissen, dass Sie wirklich keine Festplatten und dergleichen einbinden wollen. + +\subsection{Legacy autoloading support} +CONFIG\_BLOCK\_LEGACY\_AUTOLOAD [=y] \textbf{[Y]}\\ +Ermöglicht das Laden von Modulen und das Erstellen von Block-Geräteinstanzen auf der Grundlage +von Zugriffen durch ihre spezielle Gerätedatei. Dies ist ein historisches Linux-Feature und ergibt +in einer udev-Welt, in der Gerätedateien bei Bedarf erstellt werden, keinen Sinn, aber Skripte, +die manuell Geräteknoten erstellen und dann losetup aufrufen, könnten sich auf dieses Verhalten +verlassen. + +\subsection{Block layer SG support v4 helper lib} +CONFIG\_BLK\_DEV\_BSGLIB [=y] \textbf{[Y]}\\ +Die Teilsysteme werden dies normalerweise bei Bedarf aktivieren. Die Benutzer müssen dies normalerweise +nicht manuell aktivieren. Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Block layer data integrity support} +CONFIG\_BLK\_DEV\_INTEGRITY [=y] \textbf{[Y]}\\ +Einige Speichermedien erlauben die Speicherung/Abrufung zusätzlicher Informationen, um die Daten zu +schützen. Die Option für die Datenintegrität auf Blockebene bietet Hooks, die von Dateisystemen verwendet +werden können, um eine bessere Datenintegrität zu gewährleisten. Sagen Sie hier Ja, wenn Sie ein +Speichergerät haben, das das T10/SCSI Data Integrity Field oder den T13/ATA External Path Protection +bietet. Im Zweifelsfall sagen Sie N. + +\subsection{Zoned block device support} +CONFIG\_BLK\_DEV\_ZONED [=y] \textbf{[Y]}\\ +Unterstützung von Blockebenen mit Zonen für Blockgeräte. Diese Option aktiviert die Unterstützung für +ZAC/ZBC/ZNS Host-verwaltete und Host-bewusste Zoned-Block-Geräte. Sagen Sie hier Ja, wenn Sie ein +ZAC-, ZBC- oder ZNS-Speichergerät haben. + +\subsection{Block layer bio throttling support} +CONFIG\_BLK\_DEV\_THROTTLING [=y] \textbf{[Y]}\\ +Unterstützung der Bio-Drosselung auf der Blockschicht. Sie kann verwendet werden, um die IO-Rate für +ein Gerät zu begrenzen. IO-Rate-Policies sind pro cgroup und man muss blkio cgroup controller mounten +und verwenden, um cgroups zu erstellen und IO-Rate-Policies pro Gerät festzulegen.\\ +Siehe Documentation/admin-guide/cgroup-v1/blkio-controller.rst für weitere Informationen. + +\subsubsection{Block throttling .low limit interface support (EXPERIMENTAL)} +CONFIG\_BLK\_DEV\_THROTTLING\_LOW [=y] \textbf{[Y]}\\ +Hinzufügen der Schnittstelle .low limit für die Blockdrosselung. Das niedrige Limit ist ein +Best-Effort-Limit zur Priorisierung von C-Gruppen. Je nach Einstellung kann das Limit verwendet werden, +um C-Gruppen in Bezug auf Bandbreite/iops zu schützen und die Festplattenressourcen besser zu nutzen.\\ +Beachten Sie, dass es sich hierbei um eine experimentelle Schnittstelle handelt, die eines Tages +geändert werden könnte. + +\subsection{Enable support for block device writeback throttling} +CONFIG\_BLK\_WBT [=y] \textbf{[Y]}\\ +Die Aktivierung dieser Option ermöglicht es der Blockschicht, gepufferte Hintergrund-Schreibvorgänge +der VM zu drosseln, so dass diese reibungsloser ablaufen und weniger Auswirkungen auf die +Vordergrundvorgänge haben. Die Drosselung erfolgt dynamisch nach einem Algorithmus, der lose auf +CoDel basiert und die Echtzeitleistung der Festplatte berücksichtigt. + +\subsubsection{Enable writeback throttling by default} +CONFIG\_BLK\_WBT\_MQ [=y] \textbf{[Y]}\\ +Aktivieren Sie die Rückschreibdrosselung standardmäßig für anforderungsbasierte Blockgeräte. + +\subsection{Enable support for latency based cgroup IO protection} +CONFIG\_BLK\_CGROUP\_IOLATENCY [=y] \textbf{[Y]}\\ +Durch die Aktivierung dieser Option wird die .latency-Schnittstelle für die IO-Drosselung aktiviert. +Der IO-Controller versucht, die durchschnittlichen IO-Latenzen unter dem konfigurierten Latenzziel +zu halten und drosselt jeden mit einem höheren Latenzziel als die betroffene Gruppe.\\ +Beachten Sie, dass es sich hierbei um eine experimentelle Schnittstelle handelt, +die eines Tages geändert werden könnte. + +\subsection{Enable support to track FC I/O Traffic across cgroup applications} +CONFIG\_BLK\_CGROUP\_FC\_APPID [=y] \textbf{[Y]}\\ +Die Aktivierung dieser Option ermöglicht die Verfolgung des FC-I/O-Verkehrs über cgroup-Anwendungen +hinweg. Sie ermöglicht es der Fabric und den Speicherzielen, den FC-Verkehr auf der Grundlage von +VM-Tags zu identifizieren, zu überwachen und zu verarbeiten, indem eine anwendungsspezifische +Identifikation in den FC-Frame eingefügt wird. + +\subsection{Enable support for cost model based cgroup IO controller} +CONFIG\_BLK\_CGROUP\_IOCOST [=y] \textbf{[Y]}\\ +Durch Aktivieren dieser Option wird die .weight-Schnittstelle für die kostenmodellbasierte +proportionale IO-Steuerung aktiviert. Der IO-Controller verteilt die IO-Kapazität zwischen +verschiedenen Gruppen auf der Grundlage ihres Anteils an der Gesamtgewichtsverteilung. + +\subsection{Cgroup I/O controller for assigning an I/O priority class} +CONFIG\_BLK\_CGROUP\_IOPRIO [=y] \textbf{[Y]}\\ +Aktivieren Sie die Schnittstelle .prio, um Anfragen eine E/A-Prioritätsklasse zuzuweisen. +Die E/A-Prioritätsklasse beeinflusst die Reihenfolge, in der ein E/A-Scheduler und Blockgeräte +Anforderungen verarbeiten. Nur einige E/A-Scheduler und einige Blockgeräte unterstützen E/A-Prioritäten. + +\subsection{Block layer debugging information in debugfs} +CONFIG\_BLK\_DEBUG\_FS [=y] \textbf{[Y]}\\ +Aufnahme von Debugging-Informationen der Blockschicht in debugfs. Diese Informationen sind vor allem +für Kernel-Entwickler nützlich, aber sie verursachen keine Kosten zur Laufzeit. Wenn Sie nicht gerade +einen Kernel für ein winziges System bauen, sollten Sie hier Y für Ja sagen. + +\subsection{Logic for interfacing with Opal enabled SEDs} +CONFIG\_BLK\_SED\_OPAL [=y] \textbf{[Y]}\\ +Erstellt die Logik für die Verbindung mit Opal-fähigen Steuergeräten. +Die Aktivierung dieser Option ermöglicht es Benutzern, Sperrbereiche für SED-Geräte mit dem +Opal-Protokoll einzurichten/zu entsperren/zu sperren. + +\subsection{Enable inline encryption support in block layer} +CONFIG\_BLK\_INLINE\_ENCRYPTION [=y] \textbf{[Y]}\\ +Bauen Sie das blk-crypto-Subsystem auf. Wenn Sie dies aktivieren, kann die Blockschicht die +Verschlüsselung handhaben, so dass Benutzer die Vorteile der Inline-Verschlüsselungshardware +nutzen kön\-nen, falls vorhanden. + +\subsubsection{Enable crypto API fallback for blk-crypto} +CONFIG\_BLK\_INLINE\_ENCRYPTION\_FALLBACK [=y] \textbf{[Y]}\\ +Wenn dies aktiviert ist, kann die Blockschicht die Inline-Verschlüsselung handhaben, indem sie +auf die Kernel-Krypto-API zurückgreift, wenn keine Inline-Verschlüsselungshardware vorhanden ist. + +\subsection{Partition Types \texorpdfstring{$\rightarrow$}{->}} +(Partitionstypen) + +\subsubsection{Advanced partition selection} +CONFIG\_PARTITION\_ADVANCED [=y] \textbf{[Y]}\\ +Geben Sie hier Y ein, wenn Sie unter Linux Festplatten verwenden möchten, die unter einem Betriebssystem +partitioniert wurden, das auf einer anderen Architektur als Ihr Linux-System läuft.\\ +Beachten Sie, dass sich die Antwort auf diese Frage nicht direkt auf den Kernel auswirkt: +Wenn Sie N angeben, überspringt der Konfigurator lediglich alle Fragen zu fremden +Partitionierungsschemata. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Acorn partition support}$~$\\ +CONFIG\_ACORN\_PARTITION [=n] \textbf{[N]}\\ +Unterstützung von Festplatten, die unter Acorn-Betriebssystemen partitioniert sind. + +\paragraph{AIX basic partition table support}$~$\\ +CONFIG\_AIX\_PARTITION [=y] \textbf{[Y]}\\ +Geben Sie hier Y ein, wenn Sie das Format der Festplattenpartitionstabelle lesen möchten, das +von IBM- oder Motorola-PowerPC-Maschinen unter AIX verwendet wird. AIX verwendet eigentlich +einen Logical Volume Manager, bei dem \glqq logische Volumes\grqq{} über eine oder mehrere +Festplatten verteilt sein können, aber dieser Treiber funktioniert nur für den einfachen Fall +von zusammenhängenden Partitionen. Andernfalls, sagen wir N. + +\paragraph{Alpha OSF partition support}$~$\\ +CONFIG\_OSF\_PARTITION [=n] \textbf{[N]}\\ +Geben Sie hier Y an, wenn Sie unter Linux Festplatten verwenden möchten, die auf einer +Alpha-Maschine partitioniert wurden. + +\paragraph{Amiga partition table support}$~$\\ +CONFIG\_AMIGA\_PARTITION [=n] \textbf{[N]}\\ +Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die unter AmigaOS +partitioniert wurden. + +\paragraph{Atari partition table support}$~$\\ +CONFIG\_ATARI\_PARTITION [=n] \textbf{[N]}\\ +Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die unter dem +Atari-Betriebs\-sys\-tem partitioniert wurden. + +\paragraph{Macintosh partition map support}$~$\\ +CONFIG\_MAC\_PARTITION [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die auf einem +Macintosh partitioniert wurden. + +\paragraph{PC BIOS (MSDOS partition tables) support}$~$\\ +CONFIG\_MSDOS\_PARTITION [=y] \textbf{[Y]}\\ +Sagen Sie hier Y. + +\subparagraph{BSD disklabel (FreeBSD partition tables) support}$~$\\ +CONFIG\_BSD\_DISKLABEL [=y] \textbf{[Y]}\\ +FreeBSD verwendet ein eigenes Partitionsschema für die Festplatten Ihres PCs. Es benötigt nur +einen Eintrag in der primären Partitionstabelle Ihrer Festplatte und verwaltet diese ähnlich +wie erweiterte DOS-Partitionen, indem es im ersten Sektor eine neue Partitionstabelle im +BSD-Disklabel-Format anlegt. Wenn Sie hier Y angeben, können Sie diese Disklabels lesen und +FreeBSD-Partitionen von Linux aus einbinden, wenn Sie oben bei \glqq UFS file system support\grqq{} +ebenfalls Y angegeben haben. Wenn Sie nicht wissen, was das alles soll, sagen Sie N. + +\subparagraph{Minix subpartition support}$~$\\ +CONFIG\_MINIX\_SUBPARTITION [=y] \textbf{[Y]}\\ +Unterstützung von Minix 2.0.0/2.0.2 Subpartitionstabellen für Linux. Sagen Sie hier Y, +wenn Sie Minix 2.0.0/2.0.2 Subpartitionen mounten und verwenden wollen. + +\subparagraph{Solaris (x86) partition table support}$~$\\ +CONFIG\_SOLARIS\_X86\_PARTITION [=y] \textbf{[Y]}\\ +Wie die meisten Systeme verwendet Solaris x86 ein eigenes Festplattenpartitionstabellenformat, +das mit allen anderen nicht kompatibel ist. Wenn Sie hier Y angeben, können Sie diese +Partitionstabellen lesen und Solaris x86-Partitionen von Linux aus einbinden, wenn Sie oben bei +\glqq UFS-Dateisystemunterstützung\grqq{} ebenfalls Y angegeben haben. + +\subparagraph{Unixware slices support}$~$\\ +CONFIG\_UNIXWARE\_DISKLABEL [=n] \textbf{[N]}\\ +Wie einige Systeme verwendet auch UnixWare eine eigene Slice-Tabelle innerhalb einer Partition +(VTOC -- Virtual Table of Contents). Ihr Format ist mit allen anderen Betriebssystemen nicht +kompatibel. Wenn Sie hier Y angeben, können Sie VTOC lesen und UnixWare-Partitionen von Linux +aus schreibgeschützt einbinden, wenn Sie oben auch Y zu \glqq UFS-Dateisystemunterstützung\grqq{} +oder \glqq System V und Coherent-Dateisystemunterstützung\grqq{} angegeben haben. +Dies wird hauptsächlich verwendet, um Daten von einem UnixWare-Rechner auf Ihren Linux-Rechner +zu übertragen, und zwar über ein Wechselmedium wie magneto-optische, ZIP- oder IDE-Wechselplatten. +Beachten Sie jedoch, dass das Programm \texttt{tar} (\texttt{man tar} oder vorzugsweise +\texttt{info tar}) eine gute Möglichkeit bietet, Dateien und Verzeichnisse zwischen Unixen +(und sogar anderen Betriebssystemen) zu transportieren. +Wenn Sie nicht wissen, was das alles soll, sagen Sie N. + +\paragraph{Windows Logical Disk Manager (Dynamic Disk) support}$~$\\ +CONFIG\_LDM\_PARTITION [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, wenn Sie unter Linux Festplatten verwenden möchten, die mit dem Logical Disk Manager +von Windows 2000/XP oder Vista partitioniert wurden. Sie werden auch als +\glqq dynamische Festplatten\grqq{} bezeichnet.\\ +Beachten Sie, dass dieser Treiber nur dynamische Festplatten mit einem schützenden MBR-Label, +d.~h. einer DOS-Partitionstabelle, unterstützt. Dynamische Festplatten mit GPT-Label, wie sie mit Vista +erstellt werden können, werden noch nicht unterstützt. Windows 2000 führte das Konzept der +dynamischen Festplatten ein, um die Einschränkungen des PC-Partitionierungsschemata zu umgehen. +Der Logical Disk Manager ermöglicht es dem Benutzer, eine Festplatte neu zu partitionieren und +übergreifende, gespiegelte, striped oder RAID-Volumes zu erstellen, ohne dass ein Neustart +erforderlich ist. Normale Partitionen werden nun unter Windows 2000, XP und Vista als Basisfestplatten +bezeichnet.\\ +Für eine ausführlichere Beschreibung lesen Sie $<$file:Documentation/admin-guide/ldm.rst$>$.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Windows LDM extra logging}$~$\\ +CONFIG\_LDM\_DEBUG [=n] \textbf{[N]}\\ +Geben Sie hier Y an, wenn Sie möchten, dass LDM ausführlich protokolliert. +Dies könnte hilfreich sein, wenn der Treiber nicht wie erwartet funktioniert und Sie einen Fehler +melden möchten. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{SGI partition support}$~$\\ +CONFIG\_SGI\_PARTITION [=n] \textbf{[N]}\\ +Wählen Sie hier Y, wenn Sie das von SGI-Maschinen verwendete Format der +Festplattenpartitionstabelle lesen möchten. + +\paragraph{Ultrix partition table support}$~$\\ +CONFIG\_ULTRIX\_PARTITION [=n] \textbf{[N]}\\ +Sagen Sie hier Y, wenn Sie das von DEC (jetzt Compaq) Ultrix-Maschinen verwendete Format der +Festplattenpartitionstabelle lesen möchten. Andernfalls sagen Sie N. + +\paragraph{Sun partition tables support}$~$\\ +CONFIG\_SUN\_PARTITION [=n] \textbf{[N]}\\ +Wie die meisten Systeme verwendet SunOS ein eigenes Format für Festplattenpartitionstabellen, +das mit allen anderen nicht kompatibel ist. +Wenn Sie hier Y angeben, können Sie diese Partitionstabellen lesen und SunOS-Partitionen von Linux aus +einbinden, wenn Sie oben bei \glqq UFS-Dateisystemunterstützung\grqq{} ebenfalls Y angegeben haben. +Dies wird hauptsächlich benutzt, um Daten von einem SPARC unter SunOS zu Ihrem Linux-Rechner über ein +Wechselmedium wie magneto-optische oder ZIP-Laufwerke zu transportieren; beachten Sie jedoch, dass ein +guter portabler Weg, Dateien und Verzeichnisse zwischen Unixen (und sogar anderen Betriebssystemen) zu +transportieren, durch das \texttt{tar}-Programm (\texttt{man tar} oder vorzugsweise +\texttt{info tar}) gegeben ist. Wenn Sie nicht wissen, was das alles soll, sagen Sie N. + +\paragraph{Karma Partition support}$~$\\ +CONFIG\_KARMA\_PARTITION [=y] \textbf{[Y]}\\ +Sagen Sie hier Y, wenn Sie den Rio Karma MP3-Player mounten möchten, da dieser eine +proprietäre Partitionstabelle verwendet. + +\paragraph{EFI GUID Partition support}$~$\\ +CONFIG\_EFI\_PARTITION [=y] \textbf{[Y]}\\ +Geben Sie hier Y an, wenn Sie unter Linux Festplatten verwenden möchten, +die mit EFI GPT partitioniert wurden. + +\paragraph{SYSV68 partition table support}$~$\\ +CONFIG\_SYSV68\_PARTITION [=n] \textbf{[N]}\\ +Geben Sie hier Y ein, wenn Sie das von Motorola-Delta-Maschinen verwendete Format der +Festplattenpartitionstabelle lesen möchten (unter Verwendung von sysv68). Andernfalls sagen Sie N. + +\paragraph{Command line partition support}$~$\\ +CONFIG\_CMDLINE\_PARTITION [=n] \textbf{[N]}\\ +Sagen Sie hier Y, wenn Sie die Partitionstabelle aus bootargs lesen wollen. Das Format für die +Kommandozeile ist genau wie bei mtdparts. + +\subsection{IO Schedulers \texorpdfstring{$\rightarrow$}{->}} +(E/A-Zeitplaner) + +\subsubsection{MQ deadline I/O scheduler} +CONFIG\_MQ\_IOSCHED\_DEADLINE [=y] \textbf{[Y]}\\ +MQ-Version des Deadline-IO-Schedulers. + +\subsubsection{Kyber I/O scheduler} +CONFIG\_MQ\_IOSCHED\_KYBER [=m] \textbf{[M]}\\ +Der Kyber E/A-Scheduler ist ein Scheduler mit geringem Aufwand, der sich für Multiqueue- und andere +schnelle Geräte eignet. Bei vorgegebenen Ziellatenzen für Lese- und synchrone Schreibvorgänge passt +er die Tiefe der Warteschlangen selbst an, um dieses Ziel zu erreichen. + +\subsubsection{BFQ I/O scheduler} +CONFIG\_IOSCHED\_BFQ [=y] \textbf{[Y]}\\ +BFQ E/A-Scheduler für BLK-MQ. BFQ verteilt die Bandbreite des Geräts auf alle Prozesse entsprechend +ihrer Gewichtung, unabhängig von den Geräteparametern und bei jeder Arbeitslast. Es garantiert auch +eine niedrige Latenzzeit für interaktive und weiche Echtzeitanwendungen.\\ +Weitere Details in Dokumentation/block/bfq-iosched.rst + +\paragraph{BFQ hierarchical scheduling support}$~$\\ +CONFIG\_BFQ\_GROUP\_IOSCHED [=y] \textbf{[Y]}\\ +Aktivierung der hierarchischen Zeitplanung in BFQ unter Verwendung des blkio (cgroupss-v1) +oder io (cgroupss-v2) Controllers. + +\subparagraph{BFQ IO controller debugging}$~$\\ +CONFIG\_BFQ\_CGROUP\_DEBUG [=n] \textbf{[N]}\\ +Aktivierung einer Hilfe zur Fehlersuche. +Derzeit werden zusätzliche Statistikdateien in einer cgroup exportiert, die für die Fehlersuche +nützlich sein können. diff --git a/documentation/linux_configuration_12_executable_file_formats.tex b/documentation/linux_configuration_12_executable_file_formats.tex new file mode 100644 index 0000000..9586331 --- /dev/null +++ b/documentation/linux_configuration_12_executable_file_formats.tex @@ -0,0 +1,64 @@ +\section{Executable file formats \texorpdfstring{$\rightarrow$}{->}} +(Ausführbare Dateiformate) + +\subsection{Kernel support for ELF binaries} +CONFIG\_BINFMT\_ELF [=y] \textbf{[Y]}\\ +ELF (Executable and Linkable Format) ist ein Format für Bibliotheken und ausführbare Dateien, +das auf verschiedenen Architekturen und Betriebssystemen verwendet wird. +Wenn Sie hier Y angeben, kann Ihr Kernel ELF-Binärdateien ausführen und wird um etwa 13 KB vergrößert. +Die ELF-Unterstützung unter Linux hat inzwischen die traditionellen Linux a.out-Formate (QMAGIC und ZMAGIC) +fast vollständig ersetzt, da es portabel ist (was jedoch *nicht* bedeutet, dass Sie ausführbare Dateien +von verschiedenen Architekturen oder Betriebssystemen ausführen können) und die Erstellung von +Laufzeitbibliotheken sehr einfach macht. Viele neue ausführbare Dateien werden ausschließlich im +ELF-Format vertrieben. Hier sollten Sie unbedingt Y sagen. Informationen über ELF sind im ELF HOWTO +enthalten, das unter \url{http://www.tldp.org/docs.html#howto} verfügbar ist. +Wenn Sie feststellen, dass Sie nach dem Upgrade von Linux-Kernel 1.2 und der Angabe von Y hier immer +noch keine ELF-Binärdateien ausführen können (sie stürzen einfach ab), dann müssen Sie die neuesten +ELF-Laufzeitbibliotheken installieren, einschließlich \texttt{ld.so} (überprüfen Sie die Datei +$<$file:Documentation/Changes$>$ für den Ort und die neueste Version). + +\subsection{Write ELF core dumps with partial segments} +CONFIG\_CORE\_DUMP\_DEFAULT\_ELF\_HEADERS [=y] \textbf{[Y]}\\ +ELF-Core-Dump-Dateien beschreiben jede Speicherabbildung des abgestürzten Prozesses und können den +Speicherinhalt jedes einzelnen Prozesses enthalten oder auslassen. Der Inhalt eines unveränderten +Text-Mappings wird standardmäßig weggelassen. Bei einem unveränderten Text-Mapping eines ELF-Objekts +ermöglicht die Aufnahme nur der ersten Seite der Datei in einen Core-Dump die Identifizierung der +Build-ID-Bits in der Datei, ohne dass die E/A-Kosten und der Plattenplatz für das Dump des gesamten +Textes anfallen. Versionen von GDB vor 6.7 werden jedoch von ELF-Core-Dump-Dateien in diesem Format +verwirrt. Das Verhalten des Kerndumps kann pro Prozess mit der Pseudodatei /proc/PID/coredump\_filter +gesteuert werden; diese Einstellung wird vererbt. +Siehe Dokumentation/filesystems/proc.rst für Details. +Diese Konfigurationsoption ändert die Standardeinstellung von coredump\_filter, die beim Booten zu +sehen ist. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Kernel support for scripts starting with \#!} +CONFIG\_BINFMT\_SCRIPT [=y] \textbf{[Y]}\\ +(Kernel-Unterstützung für Skripte, die mit \#!, dem Shebang, anfangen) +Geben Sie hier Y an, wenn Sie interpretierte Skripte ausführen wollen, die mit \#! beginnen, +gefolgt von dem Pfad zu einem Interpreter. Sie können diese Unterstützung als Modul bauen; bis dieses +Modul jedoch geladen ist, können Sie keine Skripte ausführen. +Wenn Sie also dieses Modul aus einem initramfs laden wollen, darf der Teil des initramfs vor dem Laden +dieses Moduls nur aus kompilierten Binärdateien bestehen. Die meisten Systeme werden nicht booten, +wenn Sie hier M oder N angeben. Wenn Sie unsicher sind, sagen Sie Y. + +\subsection{Kernel support for MISC binaries} +CONFIG\_BINFMT\_MISC [=y] \textbf{[Y]}\\ +Wenn Sie hier Y sagen, wird es möglich sein, Wrapper-gesteuerte Binärformate in den Kernel einzubinden. +Dies ist vor allem dann sinnvoll, wenn Sie Programme verwenden, die einen Interpreter benötigen, wie +Java, Python, .NET oder Emacs-Lisp. Es ist auch nützlich, wenn Sie häufig DOS-Programme unter dem +Linux-DOS-Emulator DOSEMU ausführen (lesen Sie das DOSEMU-HOWTO, verfügbar unter +\url{http://www.tldp.org/docs.html#howto}). Sobald Sie eine solche Binärklasse beim Kernel registriert +haben, können Sie eines dieser Programme einfach starten, indem Sie seinen Namen an einer +Shell-Eingabeaufforderung eingeben; Linux wird es automatisch an den richtigen Interpreter weiterleiten. +Sie können auch andere nette Dinge tun.\\ +Lesen Sie die Datei $<$file:Documentation/admin-guide/binfmt-misc.rst$>$, +um zu erfahren, wie Sie diese Funktion nutzen können, +$<$file:Documentation/admin-guide/java.rst$>$, um zu erfahren, wie Sie Java-Unterstützung einbinden +können, und $<$file:Documentation/admin-guide/mono.rst$>$, um zu erfahren, wie Sie Mono-basierte +.NET-Unterstützung einbinden können. +Um binfmt\_misc zu verwenden, müssen Sie es mounten: +\texttt{mount binfmt\_misc -t binfmt\_misc /proc/sys/fs/binfmt\_misc} +Sie können hier M für Modulunterstützung sagen und später das Modul laden, wenn Sie es brauchen; +das Modul heißt \texttt{binfmt\_misc}. Wenn Sie nicht wissen, was Sie an dieser Stelle antworten sollen, +sagen Sie Y. diff --git a/documentation/linux_configuration_13_memory_management_options.tex b/documentation/linux_configuration_13_memory_management_options.tex new file mode 100644 index 0000000..f2f6529 --- /dev/null +++ b/documentation/linux_configuration_13_memory_management_options.tex @@ -0,0 +1,492 @@ +\section{Memory Management options \texorpdfstring{$\rightarrow$}{->}} +(Speicherverwaltungsoptionen) + +\subsection{Support for paging of anonymous memory (swap) \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_SWAP [=y] \textbf{[Y]}\\ +Mit dieser Option können Sie wählen, ob Sie Unterstützung für so genannte Swap-Geräte oder +Swap-Dateien in Ihrem Kernel haben möchten, die dazu dienen, mehr virtuellen Speicher als +den tatsächlichen Arbeitsspeicher in Ihrem Computer bereitzustellen. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Compressed cache for swap pages} +CONFIG\_ZSWAP [=y] \textbf{[Y]}\\ +Ein leichtgewichtiger komprimierter Cache für Auslagerungsseiten. Er nimmt Seiten, die gerade ausgelagert +werden, und versucht, sie in einem dynamisch zugewiesenen RAM-basierten Speicherpool zu komprimieren. Dies +kann zu einer erheblichen E/A-Reduzierung auf dem Swap-Gerät führen und in dem Fall, in dem die +Dekomprimierung aus dem RAM schneller ist als das Lesen aus dem Swap-Gerät, auch die Arbeitslastleistung +verbessern. + +\paragraph{Enable the compressed cache for swap pages by default}$~$\\ +CONFIG\_ZSWAP\_DEFAULT\_ON [=y] \textbf{[Y]}\\ +Wenn diese Option ausgewählt ist, wird der komprimierte Cache für Auslagerungsseiten beim Booten aktiviert, +andernfalls wird er deaktiviert. Die hier getroffene Auswahl kann mit der Kernel-Kommando\-zei\-len\-option +\texttt{zswap.enabled=} überschrieben werden. + +\paragraph{Invalidate zswap entries when pages are loaded}$~$\\ +CONFIG\_ZSWAP\_EXCLUSIVE\_LOADS\_DEFAULT\_ON [=n] \textbf{[N]}\\ +Wenn diese Option ausgewählt ist, werden exklusive Lasten für zswap beim Booten aktiviert, andernfalls wird +sie deaktiviert. Wenn exklusive Ladungen aktiviert sind, wird beim Laden einer Seite aus zswap der +zswap-Eintrag sofort ungültig gemacht, anstatt ihn in zswap zu belassen, bis der Swap-Eintrag freigegeben +wird. Dadurch wird vermieden, dass sich zwei Kopien derselben Seite im Speicher befinden (komprimiert und +unkomprimiert), nachdem eine Seite aus zswap geladen wurde. Der Preis dafür ist, dass die Seite neu +komprimiert wird, wenn sie nie verschmutzt wurde und erneut ausgelagert werden muss. + +\paragraph{Default compressor () \texorpdfstring{$\rightarrow$}{->}} +Wählt den Standardkomprimierungsalgorithmus für den komprimierten Cache für Auslagerungsseiten aus. +Einen Überblick darüber, welche Leistung von einem bestimmten Kompressionsalgorithmus erwartet werden kann, +finden Sie in den Benchmarks auf der folgenden LWN-Seite: \url{https://lwn.net/Articles/751795/}\\ +Im Zweifelsfall wählen Sie \texttt{LZO}. +Die hier getroffene Auswahl kann durch Verwendung der Kernel-Befehls\-zeilen\-option +\texttt{zswap.compressor=} überschrieben werden. + +\subparagraph{Deflate}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_DEFLATE [=n] \textbf{[N]}\\ +Verwenden Sie den Deflate-Algorithmus als Standard-Komprimierungsalgorithmus. +\subparagraph{LZO}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZO [=n] \textbf{[N]}\\ +Verwenden Sie den LZO-Algorithmus als Standard-Komprimierungsalgorithmus. +\subparagraph{842}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_842 [=n] \textbf{[N]}\\ +Verwenden Sie den 842-Algorithmus als Standard-Komprimierungsalgorithmus. +\subparagraph{LZ4}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZ4 [=n] \textbf{[N]}\\ +Verwenden Sie den LZ4-Algorithmus als Standard-Komprimierungsalgorithmus. +\subparagraph{LZ4HC}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_LZ4HC [=n] \textbf{[N]}\\ +Verwenden Sie den LZ4HC-Algorithmus als Standard-Komprimierungsalgorithmus. +\subparagraph{zstd}$~$\\ +CONFIG\_ZSWAP\_COMPRESSOR\_DEFAULT\_ZSTD [=y] \textbf{[Y]}\\ +Verwenden Sie den zstd-Algorithmus als Standard-Komprimierungsalgorithmus. + +\paragraph{Default allocator () \texorpdfstring{$\rightarrow$}{->}}$~$\\ +Wählt den Standardzuweiser für den komprimierten Cache für Auslagerungsseiten aus. Die Voreinstellung ist +aus Kompatibilitätsgründen \glqq zbud\grqq{}, aber lesen Sie bitte die Beschreibung der einzelnen Zuweiser +unten, bevor Sie die richtige Wahl treffen. Die hier getroffene Auswahl kann mit der +Kernel-Kommandozeilenoption \texttt{zswap.zpool=} überschrieben werden. + +\subparagraph{zbud}$~$\\ +CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_ZBUD [=n] \textbf{[N]}\\ +Verwendung des zbud-Allokators als Standard-Allokator. + +\subparagraph{z3fold}$~$\\ +CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_Z3FOLD [=n] \textbf{[N]}\\ +Verwendung des z3fold-Allokators als Standard-Allokator. + +\subparagraph{zsmalloc}$~$\\ +CONFIG\_ZSWAP\_ZPOOL\_DEFAULT\_ZSMALLOC [=n] \textbf{[N]}\\ +Verwendung des zsmalloc-Allokators als Standard-Allokator. + +\paragraph{2:1 compression allocator (zbud) \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_ZBUD [=y] \textbf{[Y]}\\ +Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu zwei +komprimierten Seiten pro physischer Seite ausgelegt. +Dieses Design schränkt zwar die Speicherdichte ein, hat aber einfache und deterministische +Rückgewinnungseigenschaften, die es einem Ansatz mit höherer Dichte vorziehen, wenn die Rückgewinnung +verwendet wird. + +\paragraph{3:1 compression allocator (z3fold) \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_Z3FOLD [=y] \textbf{[Y]}\\ +Ein spezieller Allokator für die Speicherung komprimierter Seiten. Er ist für die Speicherung von bis zu drei +komprimierten Seiten pro physischer Seite ausgelegt. +Es handelt sich um ein ZBUD-Derivat, so dass die Einfachheit und der Determinismus weiterhin gegeben sind. + +\paragraph{N:1 compression allocator (zsmalloc) \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_ZSMALLOC [=y] \textbf{[Y]}\\ +zsmalloc ist ein Slab-basierter Speicherallokator, der für die effiziente Speicherung von Seiten +verschiedener Komprimierungsstufen entwickelt wurde. Er erreicht die höchste Speicherdichte mit der +geringsten Fragmentierung. + +\subparagraph{Export zsmalloc statistics}$~$\\ +CONFIG\_ZSMALLOC\_STAT [=n] \textbf{[N]}\\ +Diese Option ermöglicht es dem Code in zsmalloc, verschiedene Statistiken über die Vorgänge in zsmalloc zu +sammeln und diese Informationen über debugfs in den Userspace zu exportieren. Wenn Sie unsicher sind, +sagen Sie N. + +\subparagraph{Maximum number of physical pages per-zspage}$~$\\ +CONFIG\_ZSMALLOC\_CHAIN\_SIZE [=8] \textbf{[8]}\\ +Diese Option legt die Obergrenze für die Anzahl der physischen Seiten fest, aus denen eine zmalloc-Seite +(zspage) bestehen kann. Die optimale zspage-Kettengröße wird für jede Größenklasse während der +Initialisierung des Pools berechnet.\\ +Eine Änderung dieser Option kann die Eigenschaften der Größenklassen +verändern, z.~B. die Anzahl der Seiten pro zspage und die Anzahl der Objekte pro zspage. +Dies kann auch zu unterschiedlichen Konfigurationen des Pools führen, da zsmalloc Größenklassen mit +ähnlichen Eigenschaften zusammenführt.\\ +Weitere Informationen finden Sie in der Dokumentation zu zsmalloc. + +\subsection{SLAB allocator options \texorpdfstring{$\rightarrow$}{->}} + +\subsubsection{Choose SLAB allocator (SLUB (Unqueued Allocator)) \texorpdfstring{$\rightarrow$}{->}} +Diese Option ermöglicht die Auswahl eines Slab-Allokators. + +\paragraph{SLAB (DEPRECATEDUnqueued Allocator)}$~$\\ +CONFIG\_SLAB\_DEPRECATED [=n] \textbf{[N]}\\ +Veraltet und soll in ein paar Zyklen entfernt werden. Ersetzt durch SLUB. Wenn Sie nicht auf SLUB umsteigen +können, wenden Sie sich bitte an linux-mm@kvack.org und an die Personen, die im Abschnitt SLAB ALLOCATOR der +MAINTAINERS-Datei aufgeführt sind, und erläutern Sie die Gründe. Der reguläre Slab-Allokator, der sich +bewährt hat und bekanntermaßen in allen Umgebungen gut funktioniert. Er organisiert Cache-Hot-Objekte in +Warteschlangen pro CPU und pro Knoten. + +\paragraph{SLUB (Unqueued Allocator)}$~$\\ +CONFIG\_SLUB [=y] \textbf{[Y]}\\ +SLUB ist ein Slab-Allokator, der die Nutzung von Cache-Zeilen minimiert, anstatt Warteschlangen von gecachten +Objekten zu verwalten (SLAB-Ansatz). Die Zwischenspeicherung pro CPU wird durch Slabs von Objekten anstelle +von Objekt-Warteschlangen realisiert. SLUB kann den Speicher effizient nutzen und verfügt über verbesserte +Diagnosefunktionen. SLUB ist die Standardwahl für einen Slab-Allokator. + +\subsubsection{Allow slab caches to be merged} +CONFIG\_SLAB\_MERGE\_DEFAULT [=y] \textbf{[Y]}\\ +Um die Fragmentierung des Kernspeichers zu verringern, können Slab-Caches zusammengelegt werden, wenn sie +die gleiche Größe und andere Merkmale aufweisen. Dies birgt das Risiko, dass Kernel-Heap-Überläufe Objekte +aus zusammengeführten Caches überschreiben können (und das Cache-Layout leichter zu kontrollieren ist), +wodurch solche Heap-Angriffe von Angreifern leichter ausgenutzt werden können. Wenn die Caches nicht gemischt +werden, können diese Arten von Angriffen normalerweise nur Objekte im selben Cache beschädigen. Um die +Zusammenführung zur Laufzeit zu deaktivieren, kann \texttt{slab\_nomerge} in der Kernel-Befehlszeile +übergeben werden. + +\subsubsection{Randomize slab freelist} +CONFIG\_SLAB\_FREELIST\_RANDOM [=y] \textbf{[Y]}\\ +Die Reihenfolge der Freelist bei der Erstellung neuer Seiten wird zufällig festgelegt. +Dieses Sicherheitsmerkmal verringert die Vorhersagbarkeit der Kernel-Slab-Zuweisung gegen Heap-Überläufe. + +\subsubsection{Harden slab freelist metadata} +CONFIG\_SLAB\_FREELIST\_HARDENED [=y] \textbf{[Y]}\\ +Viele Kernel-Heap-Angriffe zielen auf Slab-Cache-Metadaten und andere Infrastrukturen ab. +Diese Optionen bringen geringfügige Leistungseinbußen mit sich, um den Kernel-Slab-Allokator gegen gängige +Freelist-Angriffsmethoden zu härten. Einige Slab-Implementierungen haben mehr Sanity-Checking als andere. +Diese Option ist am effektivsten mit CONFIG\_SLUB. + +\subsubsection{Enable SLUB performance statistics} +CONFIG\_SLUB\_STATS [=n] \textbf{[N]}\\ +SLUB-Statistiken sind nützlich, um das Zuweisungsverhalten von SLUBs zu debuggen und Wege zur Optimierung +der Zuweisungsfunktion zu finden. Diese Funktion sollte niemals für den produktiven Einsatz aktiviert werden, +da die Führung von Statistiken die Zuweisungsfunktion um einige Prozentpunkte verlangsamt. +Der Befehl \texttt{slabinfo} unterstützt die Ermittlung der aktivsten Slabs, um herauszufinden, +welche Slabs für eine bestimmte Last relevant sind. Versuchen Sie Folgendes: \texttt{slabinfo -DA} + +\subsubsection{SLUB per cpu partial cache} +CONFIG\_SLUB\_CPU\_PARTIAL [=y] \textbf{[Y]}\\ +Partielle Zwischenspeicher pro CPU beschleunigen die Zuweisung und Freigabe von Objekten, die lokal auf einem +Prozessor liegen, zum Preis einer größeren Unbestimmtheit bei der Latenzzeit der Freigabe. Bei Überlauf +werden diese Caches geleert, was das Einnehmen von Sperren erfordert, die Latenzspitzen verursachen können. +Normalerweise würde man sich bei einem Echtzeitsystem für nein entscheiden. + +\subsubsection{Randomize slab caches for normal kmalloc} +CONFIG\_RANDOM\_KMALLOC\_CACHES [=n] \textbf{[N]}\\ +Eine Härtungsfunktion, die mehrere Kopien von Slab-Caches für die normale kmalloc-Allokation erstellt und +kmalloc veranlasst, eine zufällig auf der Grundlage der Code-Adresse auszuwählen, was es Angreifern +erschwert, verwundbare Speicherobjekte auf den Heap zu sprühen, um Speicherschwachstellen auszunutzen. +Gegenwärtig ist die Anzahl der Kopien auf 16 festgelegt, ein angemessen großer Wert, der die für verschiedene +Subsysteme oder Module zugewiesenen Speicherobjekte effektiv in verschiedene Caches aufteilt, und zwar auf +Kosten eines begrenzten Grades an Speicher- und CPU-Overhead, der mit der Hardware und der Systemauslastung +zusammenhängt. + +\subsection{Page allocator randomization} +CONFIG\_SHUFFLE\_PAGE\_ALLOCATOR [=y] \textbf{[Y]}\\ +Die Randomisierung der Seitenzuweisung verbessert die durchschnittliche Auslastung eines direkt abgebildeten +Memory-Side-Cache. In Abschnitt 5.2.27 Heterogeneous Memory Attribute Table (HMAT) der ACPI 6.2a-Spezifikation +finden Sie ein Beispiel dafür, wie eine Plattform das Vorhandensein eines speicherseitigen Cache anzeigt. +Es gibt auch zufällige Sicherheitsvorteile, da es die Vorhersagbarkeit von Seitenzuweisungen reduziert, um +SLAB\_FREELIST\_RANDOM zu ergänzen, aber die Standardgranularität des Shufflings auf MAX\_ORDER, +d.~h. die 10. Reihenfolge der Seiten wird auf der Grundlage der Cache-Nutzung auf x86 ausgewählt. +Die Randomisierung verbessert zwar die Cache-Nutzung, kann sich aber auf Plattformen ohne Cache negativ auf +die Arbeitslast auswirken. Aus diesem Grund wird die Randomisierung standardmäßig nur aktiviert, wenn zur +Laufzeit ein direkt zugeordneter Memory-Side-Cache erkannt wird. Andernfalls kann die Randomisierung mit dem +Kernel-Befehlszeilenparameter \texttt{page\_alloc.shuffle} zwangsweise aktiviert werden. +Sagen Sie Y, wenn Sie unsicher sind. + +\subsection{Disable heap randomization} +CONFIG\_COMPAT\_BRK [=n] \textbf{[N]}\\ +Die Randomisierung der Heap-Platzierung macht Heap-Exploits schwieriger, aber sie macht auch alte +Binärdateien (einschließlich aller libc5-basierten) kaputt. Diese Option ändert die Standardeinstellung beim +Booten auf Heap-Randomisierung deaktiviert und kann zur Laufzeit überschrieben werden, indem +/proc/sys/kernel/randomize\_va\_space auf 2 gesetzt wird. Auf nicht-alten Distributionen (nach 2000) +ist N normalerweise eine sichere Wahl. + +\subsection{Sparse Memory virtual memmap} +CONFIG\_SPARSEMEM\_VMEMMAP [=y] \textbf{[Y]}\\ +SPARSEMEM\_VMEMMAP verwendet eine virtuell gemappte Memmap, um texttt{pfn\_to\_page} und\\ +\texttt{page\_to\_pfn} Operationen zu optimieren. +Dies ist die effizienteste Option, wenn genügend Kernel-Res\-sour\-cen verfügbar sind. + +\subsection{Memory hotplug \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_HOTPLUG [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subsubsection{Online the newly added memory blocks by default} +CONFIG\_MEMORY\_HOTPLUG\_DEFAULT\_ONLINE [=y] \textbf{[Y]}\\ +Diese Option legt die Standardeinstellung für die Hotplug-Onlining-Richtlinie für Speicher fest\\ +(/sys/devices/system/memory/auto\_online\_blocks), die bestimmt, was mit neu hinzugefügten +Speicherbereichen geschieht. +Die Richtlinieneinstellung kann jederzeit zur Laufzeit geändert werden.\\ +Siehe Documentation/admin-guide/mm/memory-hotplug.rst für weitere Informationen. +Geben Sie hier Y an, wenn Sie möchten, dass alle Hotplug-Speicherblöcke standardmäßig im +\glqq Online\grqq{}-Zustand erscheinen. Geben Sie hier N an, wenn Sie möchten, dass die +Standardrichtlinie alle Hot-Plugged-Speicherblöcke im \glqq Offline\grqq{}-Zustand hält. + +\subsubsection{Allow for memory hot remove} +CONFIG\_MEMORY\_HOTREMOVE [=y] \textbf{[Y]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subsection{Allow for balloon memory compaction/migration} +CONFIG\_BALLOON\_COMPACTION [=y] \textbf{[Y]}\\ +Die durch das Ballooning verursachte Speicherfragmentierung kann die Anzahl der zusammenhängenden +2-MB-Speicher\-blöcke, die in einem Gastsystem verwendet werden können, erheblich verringern, was zu +Leistungseinbußen aufgrund der geringeren Anzahl transparenter großer Seiten führt, die vom Gastsystem +verwendet werden können. Das Zulassen der Verdichtung und Migration für Speicherseiten, die als Teil von +Speicher-Ballon-Geräten eingetragen sind, vermeidet das oben beschriebene Szenario und trägt zur Verbesserung +der Speicherdefragmentierung bei. + +\subsection{Allow for memory compaction} +CONFIG\_COMPACTION [=y] \textbf{[Y]}\\ +Die Verdichtung ist die einzige Speicherverwaltungskomponente, die zuverlässig Speicherblöcke hoher Ordnung +(größere, physisch zusammenhängende Blöcke) bildet. Die Seitenzuweisung ist in hohem Maße auf die Verdichtung +angewiesen, und das Fehlen dieser Funktion kann bei Speicheranforderungen hoher Ordnung zu unerwarteten +OOM-Killer-Aufrufen führen. Sie sollten diese Option nicht deaktivieren, es sei denn, es gibt wirklich einen +triftigen Grund dafür, und dann wären wir sehr daran interessiert, diesen unter +\href{mailto:linux-mm@kvack.org}{linux-mm@kvack.org} zu erfahren. + +\subsection{Free page reporting} +CONFIG\_PAGE\_REPORTING [=y] \textbf{[Y]}\\ +Die Meldung freier Seiten ermöglicht die inkrementelle Erfassung freier Seiten vom Buddy-Allokator mit +dem Ziel, diese Seiten einer anderen Einheit, z.~B. einem Hypervisor, zu melden, damit der Speicher +innerhalb des Hosts für andere Zwecke freigegeben werden kann. + +\subsection{Page migration} +CONFIG\_MIGRATION [=y] \textbf{[Y]}\\ +Ermöglicht die Migration des physischen Standorts von Seiten von Prozessen, während die virtuellen +Adressen nicht geändert werden. Dies ist in zwei Situationen nützlich. Erstens auf NUMA-Systemen, um +Seiten näher an die zugreifenden Prozessoren zu bringen. Zweitens bei der Zuweisung großer Seiten, +da durch die Migration Seiten verlagert werden können, um eine große Seitenzuweisung zu erfüllen, +anstatt sie zurückzufordern. + +\subsection{Enable KSM for page merging} +CONFIG\_KSM [=y] \textbf{[Y]}\\ +Aktivieren Sie Kernel Samepage Merging: KSM scannt in regelmäßigen Abständen die Bereiche des Adressraums +einer Anwendung, die laut einer Anwendung zusammengeführt werden können. Wenn er Seiten mit identischem +Inhalt findet, ersetzt er die vielen Instanzen durch eine einzige Seite mit diesem Inhalt und spart so +Speicher, bis eine oder eine andere Anwendung den Inhalt ändern muss. Empfohlen für die Verwendung mit KVM +oder mit anderen doppelten Anwendungen.\\ +Siehe Documentation/mm/ksm.rst für weitere Informationen: KSM ist inaktiv, bis ein Programm festgestellt hat, +dass ein Bereich MADV\_MERGEABLE ist, und root /sys/kernel/mm/ksm/run auf 1 gesetzt hat +(wenn CONFIG\_SYSFS gesetzt ist). + +\subsection{Low address space to protect from user allocation} +CONFIG\_DEFAULT\_MMAP\_MIN\_ADDR [=65536] \textbf{[65536]}\\ +Dies ist der Teil des niedrigen virtuellen Speichers, der vor der Zuweisung an den Benutzerraum geschützt werden +sollte. Wenn ein Benutzer davon abgehalten wird, auf niedrige Seiten zu schreiben, kann dies dazu beitragen, die +Auswirkungen von NULL-Zeiger-Fehlern im Kernel zu verringern. Für die meisten ia64-, ppc64- und x86-Benutzer mit +viel Adressraum ist ein Wert von 65536 angemessen und sollte keine Probleme verursachen. +Auf Arm und anderen Architekturen sollte er nicht höher als 32768 sein. Programme, die die vm86-Funktionalität nutzen oder +diesen niedrigen Adressraum abbilden müssen, benötigen CAP\_SYS\_RAWIO oder deaktivieren diesen Schutz, +indem sie den Wert auf 0 setzen. Dieser Wert kann nach dem Booten mit dem Parameter /proc/sys/vm/mmap\_min\_addr +geändert werden. + +\subsection{Enable recovery from hardware memory errors} +CONFIG\_MEMORY\_FAILURE [=y] \textbf{[Y]}\\ +Ermöglicht die Wiederherstellung von Code nach einigen Speicherfehlern auf Systemen mit MCA-Wieder\-her\-stel\-lung. +Dadurch kann ein System auch dann weiterlaufen, wenn ein Teil des Speichers unkorrigierte Fehler aufweist. Dies +erfordert spezielle Hardwareunterstützung und in der Regel ECC-Speicher. + +\subsubsection{HWPoison pages injector} +CONFIG\_HWPOISON\_INJECT [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subsection{Transparent Hugepage Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_TRANSPARENT\_HUGEPAGE [=y] \textbf{[Y]}\\ +Transparent Hugepages erlaubt es dem Kernel, große Seiten und große tlb transparent für die Anwendungen zu +verwenden, wann immer dies möglich ist. Diese Funktion kann die Rechenleistung bestimmter Anwendungen verbessern, +indem sie Seitenfehler bei der Speicherzuweisung beschleunigt, die Anzahl der tlb-Misses verringert und das +Durchlaufen der Seitentabelle beschleunigt. +Wenn der Speicher bei eingebetteten Systemen begrenzt ist, können Sie N angeben. + +\subsubsection{Transparent Hugepage Support sysfs defaults () \texorpdfstring{$\rightarrow$}{->}} +Wählt die sysfs-Vorgaben für die transparente Hugepage-Unterstützung aus. + +\paragraph{always}$~$\\ +CONFIG\_TRANSPARENT\_HUGEPAGE\_ALWAYS [=y] \textbf{[Y]}\\ +Die ständige Aktivierung von Transparent Hugepage kann den Speicherbedarf von Anwendungen erhöhen, ohne dass +dies einen garantierten Nutzen hat, aber es funktioniert automatisch für alle Anwendungen. + +\paragraph{madvise}$~$\\ +CONFIG\_TRANSPARENT\_HUGEPAGE\_MADVISE [=n] \textbf{[N]}\\ +Die Aktivierung von Transparent Hugepage madvise bringt nur eine Leistungsverbesserung für die Anwendungen, die +madvise(MADV\_HUGEPAGE) verwenden, aber es besteht nicht die Gefahr, dass der Speicherbedarf von Anwendungen +ohne garantierten Nutzen erhöht wird. + +\subsubsection{Read-only THP for filesystems (EXPERIMENTAL)} +CONFIG\_READ\_ONLY\_THP\_FOR\_FS [=y] \textbf{[Y]}\\ +Erlaubt khugepaged, schreibgeschützte Seiten in THP zu speichern. Dies ist als experimentell gekennzeichnet, da +es sich um eine neue Funktion handelt. Schreibunterstützung für Datei-THPs wird in den nächsten Release-Zyklen +entwickelt werden. + +\subsection{Contiguous Memory Allocator} +CONFIG\_CMA [=y] \textbf{[Y]}\\ +Dadurch wird der Contiguous Memory Allocator aktiviert, der es anderen Subsystemen ermöglicht, große, physisch +zusammenhängende Speicherblöcke zuzuweisen. CMA reserviert einen Speicherbereich und erlaubt nur die Zuweisung +beweglicher Seiten aus diesem Bereich. Auf diese Weise kann der Kernel den Speicher als Pagecache verwenden, +und wenn ein Subsystem einen zusammenhängenden Bereich anfordert, werden die zugewiesenen Seiten verschoben, +um die zusammenhängende Anforderung zu bedienen. Wenn Sie unsicher sind, sagen Sie N für nein. + +\subsubsection{CMA debug messages (DEVELOPMENT)} +CONFIG\_CMA\_DEBUG [=n] \textbf{[N]}\\ +Schaltet Debug-Meldungen in CMA ein. Dies erzeugt KERN\_DEBUG-Meldungen für jeden CMA-Aufruf sowie verschiedene +Meldungen während der Verarbeitung von Aufrufen wie dma\_alloc\_from\_contiguous(). Diese Option hat keinen +Einfluss auf Warn- und Fehlermeldungen. + +\subsubsection{CMA debugfs interface} +CONFIG\_CMA\_DEBUGFS [=y] \textbf{[Y]}\\ +Schaltet die DebugFS-Schnittstelle für CMA ein. + +\subsubsection{CMA information through sysfs interface} +CONFIG\_CMA\_SYSFS [=y] \textbf{[Y]}\\ +Diese Option legt einige sysfs-Attribute offen, um Informationen von CMA zu erhalten. + +\subsubsection{Maximum count of the CMA areas} +CONFIG\_CMA\_AREAS [=7] \textbf{[7]}\\ +CMA ermöglicht es, CMA-Bereiche für bestimmte Zwecke zu erstellen, die hauptsächlich als privater Bereich des +Geräts verwendet werden. Mit diesem Parameter wird die maximale Anzahl von CMA-Bereichen im System festgelegt. +Wenn Sie unsicher sind, belassen Sie den Standardwert \glqq 7\grqq{} bei UMA und +\glqq 19\grqq{} bei NUMA. + +\subsection{Track memory changes} +CONFIG\_MEM\_SOFT\_DIRTY [=y] \textbf{[Y]}\\ +Diese Option ermöglicht die Verfolgung von Speicheränderungen durch Einführung eines Soft-Dirty-Bits auf +pte-s. Dieses Bit wird gesetzt, wenn jemand in eine Seite schreibt, genau wie das reguläre Dirty Bit, aber +im Gegensatz zu letzterem kann es von Hand gelöscht werden. Siehe Documentation/admin-guide/mm/soft-dirty.rst +für weitere Details. + +\subsection{Defer initialisation of struct pages to kthreads} +CONFIG\_DEFERRED\_STRUCT\_PAGE\_INIT [=n] \textbf{[N]}\\ +Normalerweise werden alle Strukturseiten beim Frühstart in einem einzigen Thread initialisiert. Auf sehr +großen Rechnern kann dies sehr viel Zeit in Anspruch nehmen. Wenn diese Option gesetzt ist, wird bei großen +Maschinen eine Teilmenge der memmap beim Booten aufgerufen und der Rest parallel initialisiert. Dies kann +sich auf die Leistung von Aufgaben auswirken, die zu Beginn der Lebensdauer des Systems ausgeführt werden, +bis diese kthreads die Initialisierung abgeschlossen haben. + +\subsection{Enable idle page tracking} +CONFIG\_IDLE\_PAGE\_TRACKING [=y] \textbf{[Y]}\\ +Diese Funktion ermöglicht es, die Anzahl der Benutzerseiten zu schätzen, die in einem bestimmten Zeitraum +nicht berührt wurden. Diese Information kann nützlich sein, um die Grenzen der Speichergruppen und/oder die +Platzierung von Aufträgen innerhalb eines Rechenclusters zu optimieren.\\ +Siehe Documentation/admin-guide/mm/idle\_page\_tracking.rst für weitere Einzelheiten. + +\subsection{Device memory (pmem, HMM, etc...) hotplug support} +CONFIG\_ZONE\_DEVICE [=y] \textbf{[Y]}\\ +Die Hotplug-Unterstützung für Gerätespeicher ermöglicht es, pmem oder andere vom Gerätetreiber entdeckte +Speicherregionen in der Memmap zu etablieren. Dies ermöglicht pfn\_to\_page()-Lookups von ansonsten +\glqq gerätephysikalischen\grqq{} Adressen, was unter anderem für die Verwendung einer DAX-Zuordnung +in einer O\_DIRECT-Operation erforderlich ist. Wenn FS\_DAX aktiviert ist, dann sagen Sie Y. + +\subsection{Unaddressable device memory (GPU memory, ...)} +CONFIG\_DEVICE\_PRIVATE [=y] \textbf{[Y]}\\ +Ermöglicht die Erstellung von Strukturseiten zur Darstellung von nicht adressierbarem Gerätespeicher, +d.~h. Speicher, auf den nur vom Gerät (oder einer Gruppe von Geräten) aus zugegriffen werden kann. +Wahrscheinlich sollten Sie auch HMM\_MIRROR auswählen. + +\subsection{Collect percpu memory statistics} +CONFIG\_PERCPU\_STATS [=n] \textbf{[N]}\\ +Diese Funktion sammelt Statistiken und stellt sie über debugfs zur Verfügung. Die Informationen umfassen +globale und pro Chunk-Statistiken, die dazu beitragen können, die Speichernutzung der CPU zu verstehen. + +\subsection{Enable infrastructure for get\_user\_pages()-related unit tests} +CONFIG\_GUP\_TEST [=n] \textbf{[N]}\\ +Stellt /sys/kernel/debug/gup\_test zur Verfügung, das wiederum eine Möglichkeit bietet, ioctl-Aufrufe zu +machen, die kernelbasierte Unit-Tests für die get\_user\_pages*()- und pin\_user\_pages*()-Familie von +API-Aufrufen starten können. Diese Tests umfassen Benchmark-Tests für die schnellen Varianten von +get\_user\_pages*() und pin\_user\_pages*() sowie Smoke-Tests für die nicht schnellen Varianten. +Es gibt auch einen Untertest, der die Ausführung von dump\_page() auf bis zu acht Seiten +(ausgewählt durch Befehlszeilen-Args) innerhalb des Bereichs der User-Space-Adressen ermöglicht. +Diese Seiten werden entweder über pin\_user\_pages*() oder über get\_user\_pages*() angeheftet, wie durch +andere Befehlszeilenargumente angegeben.\\ +Siehe tools/testing/selftests/mm/gup\_test.c + +% 13.23 +\subsection{Enable a module to run time tests on dma\_pool} +CONFIG\_DMAPOOL\_TEST [=n] \textbf{[N]}\\ +Stellt ein Testmodul zur Verfügung, das viele Blöcke unterschiedlicher Größe alloziert und freigibt und +berichtet, wie lange es dauert. Damit soll ein konsistenter Weg gefunden werden, um zu messen, wie sich +Änderungen an den dma\_pool\_alloc/free-Routinen auf die Leistung auswirken. + +\subsection{Anonymous VMS name support} +CONFIG\_ANON\_VMA\_NAME [=y] \textbf{[Y]}\\ +Erlaubt die Benennung anonymer virtueller Speicherbereiche. Mit dieser Funktion können virtuellen +Speicherbereichen Namen zugewiesen werden.\\ +Die zugewiesenen Namen können später aus /proc/pid/maps und +/proc/pid/smaps abgerufen werden und helfen bei der Identifizierung einzelner anonymer Speicherbereiche. +Die Zuweisung eines Namens für einen anonymen virtuellen Speicherbereich kann verhindern, dass dieser +Bereich aufgrund des unterschiedlichen Namens mit benachbarten virtuellen Speicherbereichen zusammengelegt +wird. + +\subsection{Enable userfaultfd() system call} +CONFIG\_USERFAULTFD [=y] \textbf{[Y]}\\ +Aktivieren Sie den Systemaufruf userfaultfd(), der das Abfangen und Behandeln von Seitenfehlern im +Userland ermöglicht. + +\subsection{Userfaultfd write protection support for shmem/hugetlbfs} +CONFIG\_PTE\_MARKER\_UFFD\_WP [=y] \textbf{[Y]}\\ +Ermöglicht die Erstellung von Marker-PTEs für den Userfaultfd-Schreibschutz. +Sie ist erforderlich, um den userfaultfd-Schreibschutz für dateigebundene Speichertypen wie shmem +und hugetlbfs zu aktivieren. + +\subsection{Multi-Gen LRU} +CONFIG\_LRU\_GEN [=y] \textbf{[Y]}\\ +Eine hochleistungsfähige LRU-Implementierung zur Überbelegung von Speicher.\\ +Siehe Documentation/admin-guide/mm/multigen\_lru.rst für Details. + +\subsubsection{Enable by default} +CONFIG\_LRU\_GEN\_ENABLED [=y] \textbf{[Y]}\\ +Mit dieser Option wird das Multi-Gen-LRU standardmäßig aktiviert. + +\subsubsection{Full stats for debugging} +CONFIG\_LRU\_GEN\_STATS [=n] \textbf{[N]}\\ +Aktivieren Sie diese Option nicht, es sei denn, Sie möchten sich die historischen Statistiken der +ausgeschiedenen Generationen zu Fehlersuchzwecken ansehen. +Diese Option hat einen Speicher-Overhead pro memcg und pro Knoten. + +\subsection{Data Access Monitoring \texorpdfstring{$\rightarrow$}{->}} +(Überwachung des Datenzugriffs) + +\subsubsection{DAMON: Data Access Monitoring Framework} +CONFIG\_DAMON [=y] \textbf{[Y]}\\ +Damit wird ein Rahmen geschaffen, der es den Kernel-Subsystemen ermöglicht, die Zugriffshäufigkeit der +einzelnen Speicherbereiche zu überwachen. Diese Informationen können für eine leistungsorientierte +Speicherverwaltung auf DRAM-Ebene nützlich sein. +Weitere Informationen finden Sie unter\\ +\url{https://damonitor.github.io/doc/html/latest-damon/index.html}. + +\paragraph{Data access monitoring operations for virtual address spaces}$~$\\ +CONFIG\_DAMON\_VADDR [=y] \textbf{[Y]}\\ +Damit werden die Standardoperationen zur Überwachung des Datenzugriffs für DAMON erstellt, die +für virtuelle Adressräume funktionieren. + +\paragraph{Data access monitoring operations for the physical address space}$~$\\ +CONFIG\_DAMON\_PADDR [=y] \textbf{[Y]}\\ +Damit werden die Standardvorgänge zur Datenzugriffsüberwachung für DAMON erstellt, +die für den physischen Adressraum funktionieren. + +\subsubsection{DAMON sysfs interface} +CONFIG\_DAMON\_SYSFS [=y] \textbf{[Y]}\\ +Dies bildet die sysfs-Schnittstelle für DAMON. Der Benutzerbereich kann die Schnittstelle für +die Über"-wachung beliebiger Datenzugriffe verwenden. + +\subsubsection{DAMON debugfs interface (DEPRECATED!)} +CONFIG\_DAMON\_DBGFS [=y] \textbf{[N]}\\ +Damit wird die debugfs-Schnittstelle für DAMON erstellt. Die Benutzerraum-Administratoren können +die Schnittstelle für die Überwachung beliebiger Datenzugriffe verwenden. Wenn Sie unsicher sind, +sagen Sie N.\\ +Dies ist veraltet, daher sollten Benutzer auf die sysfs-Schnittstelle (DAMON\_SYSFS) umsteigen. +Wenn Sie auf diese Schnittstelle angewiesen sind und nicht umsteigen können, melden Sie bitte +Ihren Anwendungsfall an damon@lists.linux.dev und linux-mm@kvack.org. + +\subsubsection{Build DAMON-based reclaim (DAMON\_RECLAIM)} +CONFIG\_DAMON\_RECLAIM [=y] \textbf{[Y]}\\ +Damit wird das DAMON-basierte Reklamationssubsystem aufgebaut. Es findet Seiten, auf die lange +Zeit nicht mehr mit DAMON zugegriffen wurde (Cold) und fordert diese zurück. Dies wird als +proaktive und leichtgewichtige Rückgewinnung bei geringem Speicherdruck vorgeschlagen, während +die traditionelle, auf Seitenscans basierende Rückgewinnung bei hohem Druck verwendet wird. + +\subsubsection{Build DAMON-based LRU-lists sorting (DAMON\_LRU\_SORT)} +CONFIG\_DAMON\_LRU\_SORT [=y] \textbf{[Y]}\\ +Damit wird das DAMON-basierte LRU-Listensortier-Subsystem aufgebaut. Es versucht, häufig +zugegriffene (heiße) Seiten zu schützen, während selten zugegriffene (kalte) Seiten unter +Speicherdruck zuerst zurückgefordert werden. diff --git a/documentation/linux_configuration_14_networking_support.tex b/documentation/linux_configuration_14_networking_support.tex new file mode 100644 index 0000000..5d5bf05 --- /dev/null +++ b/documentation/linux_configuration_14_networking_support.tex @@ -0,0 +1,5157 @@ +\section{Networking support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NET [=y] \textbf{[Y]}\\ +Wenn Sie nicht wirklich wissen, was Sie tun, sollten Sie hier Y sagen. Der Grund dafür ist, +dass einige Programme die Netzwerkunterstützung des Kernels benötigen, auch wenn sie auf einem +eigenständigen Rechner laufen, der nicht mit einem anderen Computer verbunden ist. Wenn Sie von +einem älteren Kernel aufrüsten, sollten Sie auch Ihre Netzwerkwerkzeuge aktualisieren, da +Änderungen am Kernel und an den Werkzeugen oft Hand in Hand gehen. Die Werkzeuge sind in dem +Paket \texttt{net-tools} enthalten, dessen Standort und Versionsnummer in +$<$file:Documentation/Changes$>$ angegeben sind.\\ +Für eine allgemeine Einführung in Linux-Netzwerke ist es sehr empfehlenswert, +das NET-HOWTO zu lesen, das unter +\url{http://www.tldp.org/docs.html#howto} verfügbar ist. + +\subsection{Networking options \texorpdfstring{$\rightarrow$}{->}} +(Vernetzungsoptionen) + +\subsubsection{Packet socket} +CONFIG\_PACKET [=y] \textbf{[Y]}\\ +Das Packet-Protokoll wird von Anwendungen verwendet, die direkt mit Netzwerkgeräten kommunizieren, +ohne dass ein dazwischenliegendes Netzwerkprotokoll im Kernel implementiert ist, z.~B. tcpdump. +Wenn Sie wollen, dass diese Anwendungen funktionieren, wählen Sie Y. Um diesen Treiber als Modul +zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{af\_packet} heißen.\\ +Wenn Sie unsicher sind, wählen Sie Y. + +\paragraph{Packet: sockets monitoring interface}$~$\\ +CONFIG\_PACKET\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die PF\_PACKET-Sockel-Überwachungsschnittstelle, die vom Werkzeug +\texttt{ss} verwendet wird. Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Unix domain sockets} +CONFIG\_UNIX [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, wird die Unterstützung für Unix-Domain-Sockets einbezogen; +Sockets sind der Standard-Unix-Mechanismus für den Aufbau von und den Zugriff auf +Netzwerkverbindungen. Viele häufig verwendete Programme wie das X-Window-System und syslog +verwenden diese Sockets, auch wenn Ihr Rechner nicht an ein Netzwerk angeschlossen ist. +Wenn Sie nicht gerade an einem eingebetteten System oder etwas Ähnlichem arbeiten, sollten Sie +hier also unbedingt Y sagen. Sagen Sie Y, wenn Sie nicht genau wissen, was Sie tun. + +\paragraph{UNIX: socket monitoring interface}$~$\\ +CONFIG\_UNIX\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die vom Tool \texttt{ss} verwendete UNIX-Socket-Überwachungsschnittstelle. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Transport Layer Security support} +CONFIG\_TLS [=m] \textbf{[M]}\\ +Aktivierung der Kernel-Unterstützung für das TLS-Protokoll. Dadurch kann die symmetrische +Verschlüsselung des TLS-Protokolls im Kernel durchgeführt werden. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Transport Layer Security HW offload}$~$\\ +CONFIG\_TLS\_DEVICE [=y] \textbf{[Y]}\\ +Aktivierung der Kernel-Unterstützung für die HW-Auslagerung des TLS-Protokolls. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Transport Layer Security TCP stack bypass}$~$\\ +CONFIG\_TLS\_TOE [=n] \textbf{[N]}\\ +Aktivierung der Kernel-Unterstützung für das Legacy-HW-Offload des TLS-Protokolls, das mit der +Semantik des Linux-Netzwerkstacks inkompatibel ist. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Transformation user configuration interface} +CONFIG\_XFRM\_USER [=y] \textbf{[Y]}\\ +Unterstützung für Transformation(XFRM)-Benutzerkonfigurationsschnittstelle wie IPsec, die von +nativen Linux-Tools verwendet wird. Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Compatible ABI support}$~$\\ +CONFIG\_XFRM\_USER\_COMPAT [=n] \textbf{[N]}\\ +Transformation(XFRM)-Benutzerkonfigurationsschnittstelle wie IPsec, die von kompatiblen +Linux"=Anwendungen verwendet wird. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Transformation virtual interface} +CONFIG\_XFRM\_Interface [=m] \textbf{[M]}\\ +Damit wird eine virtuelle Schnittstelle zum Routen des IPsec-Verkehrs bereitgestellt. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Transformation sub policy support} +CONFIG\_XFRM\_SUB\_POLICY [=y] \textbf{[Y]}\\ +Unterstützung von Unterrichtsrichtlinien für Entwickler. Durch die Verwendung der +Unterrichtlinie mit der Hauptrichtlinie können zwei Richtlinien gleichzeitig auf dasselbe +Paket angewendet werden. Eine Richtlinie, die kürzer im Kernel lebt, sollte eine Unterrichtlinie +sein. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Transformation migrate database} +CONFIG\_XFRM\_MIGRATE [=y] \textbf{[Y]}\\ +Eine Funktion zur dynamischen Aktualisierung von Locator(s) einer bestimmten +IPsec"=Sicherheitsassoziation. Diese Funktion ist z.~B. in einer mobilen IPv6-Umgebung mit +IPsec-Konfiguration erforderlich, in der mobile Knoten ihren Verbindungspunkt zum Internet +ändern. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Transformation statistics} +CONFIG\_XFRM\_STATISTICS [=y] \textbf{[Y]}\\ +Diese Statistik ist keine SNMP/MIB-Spezifikation, sondern zeigt Statistiken über +Transformationsfehler (oder Fast-Fehler) bei der Paketverarbeitung für Entwickler. Wenn Sie +unsicher sind, sagen Sie N. + +\subsubsection{PF\_KEY sockets} +CONFIG\_NET\_KEY [=m] \textbf{[M]}\\ +PF\_KEYv2-Buchsenfamilie, kompatibel zu KAME-Buchsen. Sie sind erforderlich, wenn Sie die von +KAME portierten IPsec-Tools verwenden wollen. Sagen Sie Y, wenn Sie nicht wissen, was Sie tun. + +\paragraph{PF\_KEY MIGRATE}$~$\\ +CONFIG\_NET\_KEY\_MIGRATE [=y] \textbf{[Y]}\\ +Hinzufügen einer PF\_KEY MIGRATE Nachricht zur PF\_KEYv2 Socket Familie. Die PF\_KEY +MIGRATE"=Nachricht wird zur dynamischen Aktualisierung von Locator(s) einer bestimmten +IPsec"=Sicherheitsassoziation verwendet. Diese Funktion ist z.~B. in einer mobilen +IPv6"=Umgebung mit IPsec-Konfiguration erforderlich, in der mobile Knoten ihren Verbindungspunkt +zum Internet ändern. Detaillierte Informationen sind im Internet-Entwurf +$<$draft-sugimoto-mip6-pfkey-migrate$>$ zu finden. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{SMC socket protocol family} +CONFIG\_SMC [=m]] \textbf{[M]}\\ +SMC-R bietet eine \glqq Sockets over RDMA\grqq{}-Lösung, die die RDMA over Converged Ethernet +(RoCE)-Technologie nutzt, um AF\_INET-TCP-Verbindungen transparent zu aktualisieren. Die +Linux"=Implementierung der SMC-R-Lösung ist als separate Socket-Familie SMC konzipiert. +Wählen Sie diese Option, wenn Sie SMC-Socket-Anwendungen ausführen möchten. + +\paragraph{SMC socket protocol family}$~$\\ +CONFIG\_SMC\_DIAG [=m]] \textbf{[M]}\\ +Unterstützung für die SMC-Socket-Überwachungsschnittstelle, die von Tools wie \texttt{smcss} verwendet +wird. Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{XDP sockets} +CONFIG\_XDP\_SOCKETS [=y]] \textbf{[Y]}\\ +XDP-Sockets ermöglichen einen Kanal zwischen XDP-Programmen und Userspace-Anwendungen. + +\paragraph{XDP sockets: monitoring interface}$~$\\ +CONFIG\_XDP\_SOCKETS\_DIAG [=m]] \textbf{[M]}\\ +Unterstützung für die vom \texttt{ss}-Tool verwendete PF\_XDP-Socket-Überwachungsschnittstelle. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{TCP/IP networking} +CONFIG\_INET [=y]] \textbf{[Y]}\\ +Dies sind die Protokolle, die im Internet und in den meisten lokalen Ethernets verwendet werden. +Es wird dringend empfohlen hier Y anzugeben (dadurch wird Ihr Kernel um etwa 400~KB vergrößert), +da einige Programme (z.~B. das X-Window-System) TCP/IP verwenden, auch wenn Ihr Rechner nicht +mit einem anderen Computer verbunden ist. Sie erhalten das sogenannte Loopback-Gerät, mit dem +Sie sich selbst anpingen können (was ein großer Spaß ist!). Eine ausgezeichnete Einführung in +die Linux-Netzwerktechnik finden Sie im Linux Networking HOWTO, erhältlich bei +\url{http://www.tldp.org/docs.html#howto}. Wenn Sie hier Y sagen +und auch zu \glqq /proc file system support\grqq{} und \glqq Sysctl support\grqq{} unten, +können Sie verschiedene Aspekte des Verhaltens des TCP/IP-Codes ändern, indem Sie in die +(virtuellen) Dateien in /proc/sys/net/ipv4/* schreiben; die Optionen werden in der Datei +$<$file:Documentation/networking/ip-sysctl.rst$>$ erläutert. +Kurze Antwort: Sagen Sie Y. + +\paragraph{IP: multicasting}$~$\\ +CONFIG\_IP\_MULTICAST [=y] \textbf{[Y]}\\ +Dabei handelt es sich um einen Code zur gleichzeitigen Adressierung mehrerer vernetzter Computer, +der Ihren Kernel um etwa 2~KB vergrößert. Sie brauchen Multicasting, wenn Sie am MBONE teilnehmen +wollen, einem Netz mit hoher Bandbreite über dem Internet, das Audio- und Videoübertragungen +überträgt. Weitere Informationen über MBONE finden Sie im WWW unter +\url{https://www.savetz.com/mbone/}. +Für die meisten Leute ist es sicher, N zu sagen. + +\paragraph{IP: advanced router}$~$\\ +CONFIG\_IP\_ADVANCED\_ROUTER [=y] \textbf{[Y]}\\ +Wenn Sie beabsichtigen, Ihren Linux-Rechner hauptsächlich als Router zu betreiben, +d.~h. als Com\-pu\-ter, der Netz\-werk\-pakete weiterleitet und umverteilt, sagen Sie Y; +Ihnen werden dann mehrere Optionen angezeigt, die eine genauere Kontrolle über den +Routing"=Prozess ermöglichen.\\ +Die Antwort auf diese Frage wirkt sich nicht direkt auf den Kernel aus: Wenn Sie mit N antworten, +überspringt der Konfigurator einfach alle Fragen zum erweiterten Routing. +Beachten Sie, dass Ihr Rechner nur dann als Router fungieren kann, wenn Sie die IP"=Weiterleitung +in Ihrem Kernel aktivieren; dies können Sie tun, indem Sie \glqq /proc file system support\grqq{} +und \glqq Sysctl support\grqq{} mit Y beantworten und die folgende Zeile\\[.5em] +\texttt{echo "1" > /proc/sys/net/ipv4/ip\_forward}\\[.5em] +beim Booten ausführen, nachdem das Dateisystem /proc eingehängt wurde.\\ +Wenn Sie die IP-Weiterleitung einschalten, sollten Sie den rp\_filter in Betracht ziehen, der +eingehende Pakete automatisch zurückweist, wenn der Routing-Tabelleneintrag für ihre Quelladresse +nicht mit der Netzwerkschnittstelle übereinstimmt, an der sie ankommen. Dies hat +Sicherheitsvorteile, weil es das so genannte IP-Spoofing verhindert, kann aber Probleme bereiten, +wenn Sie asymmetrisches Routing verwenden (Pakete von Ihnen zu einem Host nehmen einen anderen +Weg als Pakete von diesem Host zu Ihnen) oder wenn Sie einen nicht routingfähigen Host betreiben, +der mehrere IP-Adressen auf verschiedenen Schnittstellen hat. Um rp\_filter einzuschalten, +verwenden Sie: + +\texttt{echo 1 $>$ /proc/sys/net/ipv4/conf//rp\_filter}\\ +oder + +\texttt{echo 1 $>$ /proc/sys/net/ipv4/conf/all/rp\_filter}\\ +Beachten Sie, dass einige Distributionen dies in Startskripten aktivieren. +Für Details über rp\_filter strict und loose mode lesen Sie +$<$file:Documentation/networking/ip-sysctl.rst$>$. Wenn Sie unsicher sind, geben Sie hier N an. + +\subparagraph{FIB TRIE statistics}$~$\\ +CONFIG\_IP\_FIB\_TRIE\_STATS [=y] \textbf{[Y]}\\ +Behalten Sie die Statistiken über die Struktur der FIB TRIE-Tabelle im Auge. Nützlich zum Testen +und Messen der TRIE-Leistung. + +\subparagraph{IP: policy routing}$~$\\ +CONFIG\_IP\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\ +Normalerweise entscheidet ein Router, was mit einem empfangenen Paket zu tun ist, und zwar +ausschließlich auf der Grundlage der endgültigen Zieladresse des Pakets. Wenn Sie hier Y angeben, +kann der Linux-Router auch die Quelladresse des Pakets berücksichtigen. Darüber hinaus kann auch +das TOS-Feld (Type-Of-Service) des Pakets für Routing-Entscheidungen verwendet werden.\\ +Weitere Informationen finden Sie in der Linux-Dokumentation Advanced Routing and Traffic Control +unter \url{https://lartc.org/howto/lartc.rpdb.html}. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IP: equal cost multipath}$~$\\ +CONFIG\_IP\_ROUTE\_MULTIPATH [=y] \textbf{[Y]}\\ +Normalerweise geben die Routing-Tabellen eine einzige Aktion an, die für ein bestimmtes Paket auf +deterministische Weise durchgeführt wird. Wenn Sie hier jedoch Y sagen, ist es möglich, mehrere +Aktionen an ein Paketmuster zu knüpfen und damit mehrere alternative Wege für diese Pakete +festzulegen. Der Router betrachtet alle diese Pfade als gleich teuer und wählt einen von ihnen +auf nicht-deterministische Weise aus, wenn ein passendes Paket eintrifft. + +\subparagraph{IP: verbose route monitoring}$~$\\ +CONFIG\_IP\_ROUTE\_VERBOSE [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, was empfohlen wird, gibt der Kernel ausführliche Meldungen über das +Routing aus, zum Beispiel Warnungen über empfangene Pakete, die seltsam aussehen und auf einen +Angriff oder ein falsch konfiguriertes System hindeuten könnten. Die Informationen werden vom +klogd-Daemon verarbeitet, der für die Kernelmeldungen zuständig ist (\glqq man klogd\grqq{}). + +\paragraph{IP: kernel level autoconfiguration}$~$\\ +CONFIG\_IP\_ADVANCED\_ROUTER [=n] \textbf{[N]}\\ +Dies ermöglicht die automatische Konfiguration der IP-Adressen von Geräten und der Routing-Tabelle +beim Booten des Kernels auf der Grundlage von Informationen, die entweder über die +Kernel-Befehlszeile oder über BOOTP- oder RARP-Protokolle bereitgestellt werden. +Sie müssen Y nur für plattenlose Maschinen angeben, die zum Booten Netzwerkzugriff benötigen +(in diesem Fall sollten Sie auch Y für \glqq Root file system on NFS\grqq{} angeben), +da alle anderen Maschinen das Netzwerk in ihren Startskripten konfigurieren. + +\paragraph{IP: tunneling}$~$\\ +CONFIG\_NET\_IPIP [=m] \textbf{[M]}\\ +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über +einen Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dieser spezielle Tunneling-Treiber +implementiert die Verkapselung von IP innerhalb von IP, was sich zwar ziemlich sinnlos anhört, aber +nützlich sein kann, wenn Sie Ihren (oder einen anderen) Rechner in einem anderen Netz erscheinen lassen +wollen, als er tatsächlich ist, oder wenn Sie die Möglichkeiten von Mobile-IP nutzen wollen +(wodurch Laptops nahtlos zwischen Netzen wechseln können, ohne ihre IP-Adressen zu ändern). Wenn Sie +diese Option mit Y bestätigen, werden zwei Module ( = Code, der in den laufenden Kernel eingefügt und +aus ihm entfernt werden kann, wann immer Sie wollen) erzeugt. Die meisten Leute werden das nicht +brauchen und können N sagen. + +\paragraph{IP: GRE demultiplexer}$~$\\ +CONFIG\_NET\_IPGRE\_DEMUX [=m] \textbf{[M]}\\ +Dies ist ein Hilfsmodul zum Demultiplexen von GRE-Paketen anhand von GRE-Versionsfeldkriterien. +Erforderlich für die Module \texttt{ip\_gre} und \texttt{pptp}. + +\paragraph{IP: GRE tunnels over IP}$~$\\ +CONFIG\_NET\_IPGRE [=m] \textbf{[M]}\\ +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und +über einen Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dieser spezielle +Tunneling-Treiber implementiert GRE (Generic Routing Encapsulation) und ermöglicht derzeit die +Verkapselung von IPv4 oder IPv6 über eine bestehende IPv4-Infrastruktur. Dieser Treiber ist +nützlich, wenn der andere Endpunkt ein Cisco-Router ist: Cisco mag GRE viel lieber als den +anderen Linux-Tunneltreiber (\glqq IP-Tunneling\grqq{} oben). Außerdem erlaubt GRE die +Weiterverteilung von Multicast durch den Tunnel. + +\subparagraph{IP: broadcast GRE over IP}$~$\\ +CONFIG\_NET\_IPGRE\_BROADCAST [=y] \textbf{[Y]}\\ +Eine Anwendung von GRE/IP ist der Aufbau eines Broadcast-WAN (Wide Area Network), das wie +ein normales Ethernet-LAN (Local Area Network) aussieht, aber über das gesamte Internet +verteilt werden kann. Wenn Sie das tun wollen, sagen Sie hier und bei +\glqq IP-Multicast-Routing\grqq{} unten Y. + +\paragraph{IP: multicast routing}$~$\\ +CONFIG\_IP\_MROUTE [=y] \textbf{[Y]}\\ +Dies wird verwendet, wenn Ihr Rechner als Router für IP-Pakete mit mehreren Zieladressen +fungieren soll. Er wird für das MBONE benötigt, ein Netzwerk mit hoher Bandbreite über dem +Internet, das Audio- und Videoübertragungen überträgt. Um dies zu tun, würden Sie +wahrscheinlich das Programm \texttt{mrouted} ausführen. Wenn Sie davon noch nichts gehört +haben, brauchen Sie es nicht. + +\subparagraph{IP: multicast policy routing}$~$\\ +CONFIG\_IP\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\ +Normalerweise führt ein Multicast-Router einen Userspace-Daemon aus und entscheidet auf der +Grundlage der Quell- und Zieladressen, was mit einem Multicast-Paket geschehen soll. +Wenn Sie hier Y angeben, kann der Multicast-Router auch Schnittstellen und Paketmarkierungen +berücksichtigen und mehrere Instanzen von Userspace-Dämonen gleichzeitig laufen lassen, von +denen jeder eine einzelne Tabelle bearbeitet. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IP: PIM-SM version 1 support}$~$\\ +CONFIG\_IP\_PIMSM\_V1 [=y] \textbf{[Y]}\\ +Kernelseitige Unterstützung für Sparse Mode PIM (Protocol Independent Multicast) Version 1. +Dieses Multicast-Routing-Protokoll ist weit verbreitet, da Cisco es unterstützt. +Sie benötigen eine spezielle Software, um es zu verwenden (pimd-v1).\\ +Weitere Informationen +über PIM finden Sie unter \url{http://netweb.usc.edu/pim/}. Sagen Sie Y, wenn Sie +PIM-SM~v1 verwenden wollen. Beachten Sie, dass Sie hier N sagen können, wenn Sie nur +Dense Mode PIM verwenden wollen. + +\subparagraph{IP: PIM-SM version 2 support}$~$\\ +CONFIG\_IP\_PIMSM\_V2 [=y] \textbf{[Y]}\\ +Kernelseitige Unterstützung für Sparse Mode PIM Version 2. Um dies nutzen zu können, benötigen +Sie einen experimentellen Routing-Daemon, der dies unterstützt (pimd oder gated-5). Dieses +Routing-Protokoll ist nicht weit verbreitet, also sagen Sie N, es sei denn, Sie wollen +damit spielen. + +\paragraph{IP: TCP syncookie support}$~$\\ +CONFIG\_SYN\_COOKIES [=y] \textbf{[Y]}\\ +Normale TCP/IP-Netzwerke sind anfällig für einen Angriff, der als "SYN-Flooding" bekannt ist. +Dieser Denial-of-Service-Angriff verhindert, dass legitime Remote-Benutzer während eines laufenden +Angriffs eine Verbindung zu Ihrem Computer herstellen können, und erfordert vom Angreifer, der von +einem beliebigen Ort im Internet aus operieren kann, nur sehr wenig Arbeit. SYN-Cookies bieten +Schutz gegen diese Art von Angriffen. Wenn Sie hier "Y" eingeben, verwendet der TCP/IP-Stack ein +kryptografisches Herausforderungsprotokoll, das als "SYN-Cookies" bekannt ist, um legitime Benutzer +in die Lage zu versetzen, weiterhin eine Verbindung herzustellen, selbst wenn Ihr Rechner angegriffen +wird. +Die rechtmäßigen Benutzer brauchen ihre TCP/IP-Software nicht zu ändern; SYN-Cookies arbeiten für sie +transparent. Technische Informationen über SYN-Cookies finden Sie unter +\url{https://cr.yp.to/syncookies.html}. Wenn Sie SYN-geflutet werden, ist die vom Kernel gemeldete +Quelladresse wahrscheinlich vom Angreifer gefälscht worden; sie wird nur als Hilfe bei der Rückverfolgung +der Pakete zu ihrer tatsächlichen Quelle gemeldet und sollte nicht als absolute Wahrheit angesehen werden. +SYN-Cookies können eine korrekte Fehlermeldung auf Clients verhindern, wenn der Server wirklich überlastet +ist. Wenn dies häufig vorkommt, schalten Sie sie besser aus. Wenn Sie hier Y angeben, können Sie +SYN-Cookies zur Laufzeit deaktivieren, indem Sie Y zu \glqq /proc file system support\grqq{} und +\glqq Sysctl support\grqq{} +unten angeben und den Befehl \texttt{echo 0 $>$ /proc/sys/net/ipv4/tcp\_syncookies} ausführen +nachdem das /proc-Dateisystem eingehängt wurde. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Virtual (secure) IP: tunneling}$~$\\ +CONFIG\_NET\_IPVTI [=m] \textbf{[M]}\\ +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen +Kanal gesendet werden, der das einkapselnde Protokoll versteht. Dies kann mit xfrm mode tunnel +verwendet werden, um die Vorstellung eines sicheren Tunnels für IPSEC zu vermitteln und dann ein +Routing-Protokoll darüber zu legen. + +\paragraph{IP: Foo (IP protocols) over UDP}$~$\\ +CONFIG\_NET\_FOU [=m] \textbf{[M]}\\ +Mit Foo over UDP kann jedes IP-Protokoll direkt über UDP gekapselt werden, einschließlich Tunneln +(IPIP, GRE, SIT). Durch die Verkapselung in UDP können Netzwerkmechanismen und Optimierungen für UDP +(wie ECMP und RSS) genutzt werden, um einen besseren Service zu bieten. + +\paragraph{IP: FOU encapsulation of IP tunnels}$~$\\ +CONFIG\_NET\_FOU\_IP\_TUNNELS [=y] \textbf{[Y]}\\ +Ermöglicht die Konfiguration von FOU- oder GUE-Kapselung für IP-Tunnel. Wenn diese Option aktiviert ist, +können IP-Tunnel für die Verwendung von FOU- oder GUE-Kapselung konfiguriert werden. + +\paragraph{IP: AH transformation}$~$\\ +CONFIG\_INET\_AH [=m] \textbf{[M]}\\ +Unterstützung für IPsec AH (Authentication Header). +AH kann mit verschiedenen Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht +nur die AH-Unterstützung selbst, sondern auch die generischen Implementierungen der Algorithmen, die +nach RFC~8221 implementiert werden MÜSSEN. Wenn Sie andere Algorithmen benötigen, müssen Sie diese in +der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen aller benötigten Algorithmen +aktivieren, sofern verfügbar. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{IP: ESP transformation}$~$\\ +CONFIG\_INET\_ESP [=m] \textbf{[M]}\\ +Unterstützung für IPsec ESP (Encapsulating Security Payload). +ESP kann mit verschiedenen Verschlüs\-selungs- und Authentifizierungsalgorithmen verwendet werden. Diese +Option aktiviert nicht nur die ESP"=Unterstützung selbst, sondern auch die generischen Implementierungen +der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. Wenn Sie andere Algorithmen benötigen, +müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen aller +benötigten Algorithmen aktivieren, sofern verfügbar. Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{IP: ESP transformation offload}$~$\\ +CONFIG\_INET\_ESP\_OFFLOAD [=m] \textbf{[M]}\\ +Unterstützung für ESP-Transformationsoffload. Dies ist nur dann sinnvoll, wenn das System wirklich IPsec +verwendet und einen hohen Durchsatz erzielen möchte. Ein typisches Desktop-System braucht dies nicht, +selbst wenn es IPsec verwendet. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IP: ESP in TCP encapsulation (RFC~8229)}$~$\\ +CONFIG\_INET\_ESPINTCP [=y] \textbf{[Y]}\\ +Unterstützung für die RFC~8229-Kapselung von ESP und IKE über TCP/IPv4-Sockets. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{IP: IPComp transformation}$~$\\ +CONFIG\_INET\_IPCOMP [=m] \textbf{[M]}\\ +Unterstützung für das IP Payload Compression Protocol +(IPComp) (RFC~3173), das normalerweise für IPsec benötigt wird.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{INET: socket monitoring interface}$~$\\ +CONFIG\_INET\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die INET (TCP, DCCP usw.) Socket"=Überwachungsschnittstelle, die von nativen Linux"=Tools +wie \texttt{ss} verwendet wird. \texttt{ss} ist in iproute2 enthalten und kann derzeit heruntergeladen werden +unter: \url{http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2}\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{UDP: socket monitoring interface}$~$\\ +CONFIG\_INET\_UDP\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die UDP-Socket-Überwachungsschnittstelle, die vom Tool \texttt{ss} verwendet wird. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{RAW: socket monitoring interface}$~$\\ +CONFIG\_INET\_RAW\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die vom \texttt{ss}-Tool verwendete RAW-Socket-Überwachungsschnittstelle. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{INET: allow privileged process to administratively close sockets}$~$\\ +CONFIG\_INET\_DIAG\_DESTROY [=y] \textbf{[Y]}\\ +Stellt eine SOCK\_DESTROY-Operation zur Verfügung, die es privilegierten Prozessen (z.~B. einem +Verbindungsmanager oder einem Netzwerkverwaltungsprogramm wie \texttt{ss}) ermöglicht, von anderen Prozessen +geöffnete Sockets zu schließen. Das Schließen eines Sockets auf diese Weise unterbricht alle blockierenden +Lese-/Schreib-/Verbindungsoperationen auf dem Socket und bewirkt, dass sich zukünftige Socket-Aufrufe so +verhalten, als ob der Socket getrennt worden wäre. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{TCP: advanced congestion control \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_TCP\_CONG\_ADVANCED [=y] \textbf{[Y]}\\ +Unterstützung für die Auswahl verschiedener TCP-Staukontrollmodule. Fast alle Benutzer können hier sicher nein +sagen, und es wird eine sichere Standardauswahl getroffen (CUBIC mit neuem Reno als Fallback). +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Binary Increase Congestion (BIC) control}$~$\\ +CONFIG\_TCP\_CONG\_BIC [=m] \textbf{[M]}\\ +BIC-TCP ist eine rein senderseitige Änderung, die eine lineare RTT-Fairness bei großen Fenstern gewähr"-lei"-stet +und gleichzeitig Skalierbarkeit und begrenzte TCP-Freundlichkeit bietet. Das Protokoll kombiniert zwei +Verfahren, die additive Erhöhung und die binäre Sucherhöhung. Bei großen Überlastungsfenstern ge"-währ"-lei"-stet +die additive Erhöhung mit einem großen Inkrement eine lineare RTT-Fairness sowie eine gute Skalierbarkeit. +Bei kleinen Überlastungsfenstern sorgt die binäre Sucherhöhung für TCP-Freundlichkeit.\\ +Siehe \url{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/} + +\subparagraph{CUBIC TCP}$~$\\ +CONFIG\_TCP\_CONG\_CUBIC [=y] \textbf{[Y]}\\ +Dies ist die Version 2.0 von BIC-TCP, die neben anderen Techniken eine kubische Wachstumsfunktion verwendet.\\ +Siehe \url{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf} + +\subparagraph{TCP Westwood+}$~$\\ +CONFIG\_TCP\_CONG\_WESTWOOD [=m] \textbf{[M]}\\ +TCP Westwood+ ist eine absenderseitige Modifikation des TCP-Reno-Protokollstapels, die die Leistung der +TCP-Überlastungssteuerung optimiert. Es basiert auf einer Ende-zu-Ende-Bandbreitenschätzung, um das +Überlastungsfenster und den Schwellenwert für den langsamen Start nach einer Überlastungsepisode festzulegen. +Auf der Grundlage dieser Schätzung legt TCP Westwood+ adaptiv einen Schwellenwert für den langsamen Start und +ein Überlastungsfenster fest, das die zum Zeitpunkt des Auftretens der Überlastung genutzte Bandbreite +berücksichtigt. TCP Westwood+ erhöht die Fairness gegenüber TCP Reno in kabelgebundenen Netzen und den +Durchsatz über drahtlose Verbindungen erheblich. + +\subparagraph{H-TCP}$~$\\ +CONFIG\_TCP\_CONG\_HTCP [=m] \textbf{[M]}\\* +H-TCP ist eine nur sendeseitige Modifikation des TCP-Reno-Protokollstapels, die die Leistung der +TCP-Überlastungssteuerung für Hochgeschwindigkeitsnetzverbindungen optimiert. Es verwendet einen Mode\-switch, +um die Alpha- und Beta-Parameter von TCP Reno auf der Grundlage der Netzbedingungen und in einer Weise zu +ändern, die gegenüber anderen Reno- und H-TCP-Datenströmen fair ist. + +\subparagraph{High Speed TCP}$~$\\ +CONFIG\_TCP\_CONG\_HSTCP [=m] \textbf{[M]}\\* +Sally Floyds High Speed TCP (RFC~3649) Staukontrolle. Eine Modifikation des +TCP"=Über"-lastungs"-steuerungs"-mechanismus +zur Verwendung mit großen Überlastungsfenstern. In einer Tabelle wird angegeben, um wie viel das +Überlastungsfenster vergrößert werden soll, wenn eine ACK empfangen wird. +Für weitere Einzelheiten siehe \url{https://www.icir.org/floyd/hstcp.html} + +\subparagraph{TCP-Hybla congestion control algorithm}$~$\\ +CONFIG\_TCP\_CONG\_HYBLA [=m] \textbf{[M]}\\* +TCP-Hybla ist eine Änderung, die nur auf der Absenderseite vorgenommen wird, um die Benachteiligung von +Verbindungen mit langen Übertragungszeiten und großen Bandbreiten zu beseitigen, z.~B. wenn +Satellitenverbindungen beteiligt sind, insbesondere wenn sie einen gemeinsamen Engpass mit normalen +terrestrischen Verbindungen teilen. + +\subparagraph{TCP Vegas}$~$\\ +CONFIG\_TCP\_CONG\_VEGAS [=m] \textbf{[M]}\\* +TCP Vegas ist eine absenderseitige Änderung von TCP, die den Beginn einer Überlastung durch Schät"-zung der +Bandbreite vorwegnimmt. TCP Vegas passt die Übertragungsrate durch Änderung des Über"-las"-tungs"-fens"-ters an. +TCP Vegas sollte weniger Paketverluste verursachen, ist aber nicht so aggressiv wie TCP Reno. + +\subparagraph{TCP NV}$~$\\ +CONFIG\_TCP\_CONG\_NV [=m] \textbf{[M]}\\* +TCP NV ist ein Nachfolger von TCP Vegas. Es wurde geändert, um mit 10G-Netzen, Messrauschen durch LRO, GRO und +Unterbrechungskoaleszenz fertig zu werden. Außerdem wird der cwnd-Wert nicht mehr linear, sondern multiplikativ +verringert.\\ +Es ist zu beachten, dass die Stauvermeidung (cwnd wird verringert, wenn die Anzahl der Pakete in der +Warteschlange steigt) im Allgemeinen nicht mit der Staukontrolle (cwnd wird nur verringert, wenn es zu +Paketverlusten kommt) koexistieren kann, da die Fairness nicht gewährleistet ist. Ein Szenario, in dem sie +sicher koexistieren können, ist, wenn die CA-Flüsse RTTs~$\ll$~CC-Flüsse RTTs haben. +Für weitere Einzelheiten siehe \url{http://www.brakmo.org/networking/tcp-nv/} + +\subparagraph{Scalable TCP}$~$\\ +CONFIG\_TCP\_CONG\_SCALABLE [=m] \textbf{[M]}\\* +Scalable TCP ist eine Änderung von TCP nur auf der Absenderseite, die einen MIMD-Algorithmus zur Staukontrolle +verwendet, der einige nette Skalierungseigenschaften hat, obwohl er bekanntermaßen Probleme mit der Fairness hat. +Siehe \url{http://www.deneholme.net/tom/scalable/} + +\subparagraph{TCP Low Priority}$~$\\ +CONFIG\_TCP\_CONG\_LP [=m] \textbf{[M]}\\* +TCP Low Priority (TCP-LP), ein verteilter Algorithmus, dessen Ziel es ist, nur die überschüssige Bandbreite des +Netzes im Vergleich zum \glqq fairen Anteil\grqq{} der Bandbreite, wie er von TCP angestrebt wird, zu nutzen. +Siehe \url{http://www-ece.rice.edu/networks/TCP-LP/} + +\subparagraph{TCP Veno}$~$\\ +CONFIG\_TCP\_CONG\_VENO [=m] \textbf{[M]}\\* +TCP Veno ist eine rein senderseitige Erweiterung von TCP, um einen besseren Durchsatz in drahtlosen Netzen zu +erzielen. TCP Veno nutzt die Zustandsunterscheidung, um die schwierige Beurteilung der Paketverlustart zu umgehen. +TCP Veno verkleinert das Überlastungsfenster als Reaktion auf zufällige Paketverluste. +Siehe \url{http://ieeexplore.ieee.org/xpl/freeabs\_all.jsp?arnumber=1177186} + +\subparagraph{YeAH TCP}$~$\\ +CONFIG\_TCP\_CONG\_YEAH [=m] \textbf{[M]}\\* +YeAH-TCP ist ein absenderseitiger Hochgeschwindigkeits"=TCP"=Überlastungskontrollalgorithmus, der ei"-nen gemischten +Verlust-/Verzögerungsansatz zur Berechnung des Überlastungsfensters verwendet. Seine Entwurfsziele sind hohe +Effizienz, interne, RTT- und Reno-Fairness, Widerstandsfähigkeit gegenüber Verbindungsverlusten und eine möglichst +geringe Belastung der Netzelemente.\\ +Weitere Einzelheiten finden Sie hier: +\url{http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf} or +\href{https://www.gdt.id.au/~gdt/presentations/2010-07-06-questnet-tcp/reference-materials/papers/baiocchi+castellani+vacirca-yeah-tcp-yet-another-highspeed-tcp.pdf} +{Link via www.gdt.id.au} + +\subparagraph{TCP Illinois}$~$\\ +CONFIG\_TCP\_CONG\_ILLINOIS [=m] \textbf{[M]}\\* +TCP-Illinois ist eine absenderseitige Modifikation von TCP Reno für Hochgeschwindigkeitsverbindungen mit langer +Verzögerung. Es nutzt die Round-Trip-Zeit, um die Alpha- und Beta-Parameter anzupassen, um einen höheren +durchschnittlichen Durchsatz zu erreichen und Fairness zu wahren. +Für weitere Einzelheiten siehe: \url{http://www.ews.uiuc.edu/~shaoliu/tcpillinois/index.html} + +\subparagraph{DataCenter TCP (DCTCP)}$~$\\ +CONFIG\_TCP\_CONG\_DCTCP [=m] \textbf{[M]}\\* +DCTCP nutzt die explizite Überlastungsanzeige (Explicit Congestion Notification, ECN) im Netz, um den Endhosts ein +Multi-Bit-Feedback zu geben. Es wurde entwickelt, um Folgendes zu bieten: +\begin{itemize} + \item[-] Hohe Burst-Toleranz (Incast aufgrund von Partition/Aggregat), +\item[-] Geringe Latenz (kurze Flüsse, Abfragen), +\item[-] hohen Durchsatz (kontinuierliche Datenaktualisierungen, große Dateiübertragungen) mit + handels"-üblichen, flach gepufferten Switches. +\end{itemize} +Alle Switches im Rechenzentrumsnetz, auf denen DCTCP läuft, müssen die ECN-Kenn"-zeichnung unterstützen und so +konfiguriert sein, dass sie bei Erreichen bestimmter Switch-Pufferschwellenwerte ge"-kenn"-zeichnet werden. +Die Standardheuristik für die ECN-Markierungsschwelle für DCTCP auf Switches liegt bei 20 Paketen (30 KB) bei 1 Gbps +und 65 Paketen ($\approx$ 100 KB) bei 10 Gbps, muss aber möglicherweise noch weiter optimiert werden.\\ +Weitere Einzelheiten siehe:\\ +\url{http://simula.stanford.edu/~alizade/Site/DCTCP\_files/dctcp-final.pdf} + +\subparagraph{CAIA Delay-Gradient (CDG)}$~$\\ +CONFIG\_TCP\_CONG\_CDG [=m] \textbf{[M]}\\* +CAIA Delay-Gradient (CDG) ist eine TCP-Überlastungskontrolle, die den TCP-Sender modifiziert, um: +\begin{itemize} + \item[o] Verwendung des Verzögerungsgradienten als Überlastungssignal. + \item[o] mit einer durchschnittlichen Wahrscheinlichkeit, die unabhängig von der RTT ist, zurückzufahren. + \item[o] mit Datenströmen zu koexistieren, die eine verlustbasierte Staukontrolle verwenden. + \item[o] Paketverluste zu tolerieren, die nicht mit der Überlastung zusammenhängen. +\end{itemize} +Für weitere Einzelheiten siehe:\\ +D.A. Hayes und G. Armitage. "Revisiting TCP congestion control using delay gradients".\\ +In Networking 2011. Preprint: \url{http://goo.gl/No3vdg} + +\subparagraph{BBR TCP}$~$\\ +CONFIG\_TCP\_CONG\_BBR [=m] \textbf{[M]}\\* +BBR (Bottleneck Bandwidth and RTT) Die TCP-Überlastungssteuerung zielt darauf ab, die Netzauslastung zu maximieren und Warteschlangen +zu minimieren. Sie erstellt ein explizites Modell der Bottleneck-Zustellrate und der Umlaufverzögerung des Pfades. +Sie toleriert Paketverluste und Verzögerungen, die nicht mit der Überlastung zusammenhängen. Es kann über LAN-, WAN-, Mobilfunk-, +WLAN- oder Kabelmodem-Verbindungen arbeiten. Es kann mit Datenströmen koexistieren, die eine verlustbasierte Staukontrolle verwenden, +und es kann mit flachen Puffern, tiefen Puffern, Bufferbloat, Policern oder AQM-Schemata arbeiten, die kein Verzögerungssignal liefern. +Es erfordert den \texttt{fq} (\glqq Fair Queue\grqq{}) Pacing Packet Scheduler. + +\subparagraph{Default TCP congestion control () \texorpdfstring{$\rightarrow$}{->}}$~$\\ +Wählen Sie die TCP-Überlastungssteuerung aus, die standardmäßig für alle Verbindungen verwendet werden soll. + +\subsubparagraph{Cubic}$~$\\ +CONFIG\_DEFAULT\_CUBIC [=y] \textbf{[Y]}\\* +Für diese Option ist keine Hilfe vorhanden. + +\subsubparagraph{Reno}$~$\\ +CONFIG\_DEFAULT\_RENO [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe vorhanden. + +\paragraph{TCP: MD5 Signature Option support (RFC~2385)}$~$\\ +CONFIG\_TCP\_MD5SIG [=y] \textbf{[Y]}\\* +RFC2385 spezifiziert eine Methode zum MD5-Schutz von TCP-Sitzungen. Die wichtigste (einzige?) Anwendung ist der Schutz von BGP-Sitzungen +zwischen Core-Routern im Internet. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{The IPv6 protocol}$~$\\ +CONFIG\_IPV6 [=y] \textbf{[Y]}\\* +Unterstützung für die IP Version 6 (IPv6).\\ +Allgemeine Informationen über IPv6 finden Sie unter \url{https://en.wikipedia.org/wiki/IPv6}. +Spezielle Informationen über IPv6 unter Linux finden Sie unter Documentation/networking/ipv6.rst und lesen Sie das HOWTO unter +\url{https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/}\\ +Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{ipv6} heißen. + +\subparagraph{IPv6: Router Preference (RFC~4191) support}$~$\\ +CONFIG\_IPV6\_IOAM6\_LWTUNNEL [=y] \textbf{[Y]}\\* +Die Router-Präferenz ist eine optionale Erweiterung der Router-Advertisement-Nachricht, die die Fä"-hig"-keit der Hosts verbessert, +einen geeigneten Router auszuwählen, insbesondere wenn die Hosts in einem Netz mit mehreren Hosts untergebracht sind. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{IPv6: Router Information (RFC~4191) support}$~$\\ +CONFIG\_IPV6\_ROUTE\_INFO [=y] \textbf{[Y]}\\* +Unterstützung von Routeninformationen. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: Enable RC~4429 Optimistic DAD}$~$\\ +CONFIG\_IPV6\_OPTIMISTIC\_DAD [=y] \textbf{[Y]}\\* +Unterstützung für die optimistische Erkennung von doppelten Adressen. Dadurch können automatisch konfigurierte Adressen schneller verwendet werden. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: AH transformation}$~$\\ +CONFIG\_INET6\_AH [=m] \textbf{[M]}\\* +Unterstützung für IPsec AH (Authentication Header). +AH kann mit verschiedenen Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht nur die AH-Unterstützung selbst, +sondern auch die generischen Implementierungen der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. +Wenn Sie andere Algorithmen benötigen, müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen +aller benötigten Algorithmen aktivieren, sofern verfügbar. +Wenn Sie unsicher sind, sagen Sie Y für Ja. + +\subparagraph{IPv6: ESP transformation}$~$\\ +CONFIG\_INET6\_ESP [=m] \textbf{[M]}\\* +Unterstützung für IPsec ESP (Encapsulating Security Payload). +ESP kann mit verschiedenen Ver"-schlüs"-selungs"= und Authentifizierungsalgorithmen verwendet werden. Diese Option aktiviert nicht nur die +ESP-Unterstützung selbst, sondern auch die generischen Implementierungen der Algorithmen, die nach RFC~8221 implementiert werden MÜSSEN. +Wenn Sie andere Algorithmen benötigen, müssen Sie diese in der Krypto-API aktivieren. Sie sollten auch beschleunigte Implementierungen +aller benötigten Algorithmen aktivieren, sofern verfügbar. +Wenn Sie unsicher sind, sagen Sie Y für Ja. + +\subsubparagraph{IPv6: ESP transformation offload}$~$\\ +CONFIG\_INET6\_ESP [=m] \textbf{[M]}\\* +Unterstützung für ESP-Transformationsoffload. Dies ist nur dann sinnvoll, wenn das System wirklich IPsec verwendet und einen hohen +Durchsatz erzielen möchte. Ein typisches Desktop-System braucht dies nicht, selbst wenn es IPsec verwendet. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{IPv6: ESP in TCP encapsulation (RFC~8229)}$~$\\ +CONFIG\_INET6\_ESPINTCP [=y] \textbf{[Y]}\\* +Unterstützung für die RFC~8229-Kapselung von ESP und IKE über TCP/IPv6-Sockets. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: IPComp transformation}$~$\\ +CONFIG\_INET6\_IPCOMP [=m] \textbf{[M]}\\* +Unterstützung für IP Payload Compression Protocol (IPComp) (RFC~3173), typischerweise erforderlich für IPsec. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{IPv6: Mobility}$~$\\ +CONFIG\_IPV6\_MIP6 [=m] \textbf{[M]}\\* +Unterstützung für IPv6-Mobilität, beschrieben in RFC~3775.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: Identifier Locator Addressing (ILA)}$~$\\ +CONFIG\_IPV6\_ILA [=m] \textbf{[M]}\\* +Unterstützung für IPv6 Identifier Locator Addressing (ILA). +ILA ist ein Mechanismus zur Netzwerkvirtualisierung ohne Verkapselung. Das Grundkonzept von ILA besteht darin, dass wir eine +IPv6-Adresse in einen 64-Bit-Locator und einen 64-Bit-Identifier aufteilen. Der Bezeichner ist die Identität einer Entität in der +Kommunikation (\glqq who\grqq{}) und der Locator drückt den Standort der Entität (\glqq where\grqq{}) aus. +ILA kann unter Verwendung der Option \texttt{encap ila} mit dem Befehl \texttt{ip -6 route} konfiguriert werden.\\ +ILA wird in \url{https://tools.ietf.org/html/draft-herbert-nvo3-ila-00} beschrieben. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Virtual (secure) IPv6: tunneling}$~$\\ +CONFIG\_IPV6\_VTI [=m] \textbf{[M]}\\* +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, +der das einkapselnde Protokoll versteht. Dies kann mit xfrm mode tunnel verwendet werden, um die Vorstellung eines sicheren +Tunnels für IPSEC zu vermitteln und dann ein Routing-Protokoll darüber zu legen. + +\subparagraph{IPv6: IPv6-in-IPv4 tunnel (SIT driver)}$~$\\ +CONFIG\_IPV6\_SIT [=m] \textbf{[M]}\\* +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, +der das einkapselnde Protokoll versteht. Dieser Treiber implementiert die Einkapselung von IPv6 in IPv4-Pakete. Dies ist +nützlich, wenn Sie zwei IPv6-Netzwerke über einen reinen IPv4-Pfad verbinden wollen. Wenn Sie hier M sagen, wird ein Modul +namens \texttt{sit} erzeugt. Wenn Sie unsicher sind, sagen Sie Y. + +\subsubparagraph{IPv6: IPv6 Rapid Deployment (6RD)}$~$\\ +CONFIG\_IPV6\_SIT\_6RD [=y] \textbf{[Y]}\\* +IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) baut auf Mechanismen von 6to4 (RFC~3056) auf, um einen +Dienstanbieter in die Lage zu versetzen, IPv6-Unicast-Dienste schnell an IPv4-Standorten einzurichten, für die er +Kundengeräte bereitstellt. +Wie 6to4 verwendet es zustandsloses IPv6 in einer IPv4"=Kapselung, um eine reine IPv4"=Netz"-infra"-struktur zu durch"-queren. +Im Gegensatz zu 6to4 verwendet ein 6rd"=Dienstanbieter ein eigenes IPv6"=Präfix anstelle des festen 6to4"=Präfixes. +Wenn diese Option aktiviert ist, bietet der SIT"=Treiber 6rd"=Funktionalität, indem er eine zusätzliche ioctl"=API zur Konfiguration +des IPv6-Präfixes anstelle des statischen 2002::/16 für 6to4 bereitstellt.\\* +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: IP-in-IPv6 tunnel (RFC~2473)}$~$\\ +CONFIG\_IPV6\_TUNNEL [=m] \textbf{[M]}\\* +Unterstützung für IPv6-in-IPv6- und IPv4-in-IPv6-Tunnel, beschrieben in RFC~2473. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: GRE tunnel (RFC~2473)}$~$\\ +CONFIG\_IPV6\_GRE [=m] \textbf{[M]}\\* +Tunneling bedeutet, dass Daten eines Protokolltyps in ein anderes Protokoll eingekapselt und über einen Kanal gesendet werden, +der das einkapselnde Protokoll versteht. Dieser spezielle Tunneling-Treiber implementiert GRE (Generic Routing Encapsulation) +und ermöglicht derzeit die Verkapselung von IPv4 oder IPv6 über eine bestehende IPv6-Infrastruktur. Dieser Treiber ist nützlich, +wenn der andere Endpunkt ein Cisco-Router ist: Cisco mag GRE viel lieber als den anderen Linux-Tunneltreiber +(\glqq IP-Tunneling\grqq{} oben). Außerdem erlaubt GRE die Umverteilung von Multicast durch den Tunnel.\\ +Wenn Sie hier M sagen, wird ein Modul namens \texttt{ip6\_gre} erzeugt. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: Multiple Routing Tables}$~$\\ +CONFIG\_IPV6\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* +Unterstützung mehrerer Routing-Tabellen. + +\subsubparagraph{IPv6: source address based routing}$~$\\ +CONFIG\_IPV6\_SUBTREES [=y] \textbf{[Y]}\\* +Aktivieren Sie das Routing nach Quelladresse oder Präfix.\\ +Die Zieladresse ist immer noch der primäre Routing"=Schlüssel, so dass das Mischen von normalen und quell"-präfix"-spezifischen Routen +in derselben Routing"=Tabelle manchmal zu einem unbeabsichtigten Routing"=Verhalten führen kann. Dies kann vermieden werden, +indem unterschiedliche Routing"=Tabellen für die normalen und die quellpräfixspezifischen Routen definiert werden.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: multicast routing}$~$\\ +CONFIG\_IPV6\_MROUTE [=y] \textbf{[Y]}\\* +Unterstützung der IPv6-Multicast-Weiterleitung. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{IPv6: multicast policy routing}S~S\\ +CONFIG\_IPV6\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* +Normalerweise führt ein Multicast-Router einen Userspace-Daemon aus und entscheidet auf der Grundlage der Quell- und Zieladressen, +was mit einem Multicast-Paket geschehen soll. Wenn Sie hier Y angeben, kann der Multicast-Router auch Schnittstellen und +Paketmarkierungen berück"-sichtigen und mehrere Instanzen von Userspace-Dämonen gleichzeitig laufen lassen, von denen jeder eine +einzelne Tabelle bearbeitet. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{IPv6: multicast policy routing}S~S\\ +CONFIG\_IPV6\_MROUTE\_MULTIPLE\_TABLES [=y] \textbf{[Y]}\\* +Unterstützung für das IPv6-PIM-Multicast-Routing-Protokoll PIM-SMv2. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: Segment Routing Header encapsulation support}$~$\\ +CONFIG\_IPV6\_SEG6\_LWTUNNEL [=y] \textbf{[Y]}\\* +Unterstützung für die Einkapselung von Paketen in einen äußeren IPv6-Header und einen Segment-Routing-Header +unter Verwendung des leichtgewichtigen Tunnelmechanismus. Aktivieren Sie auch die Unterstützung für die erweiterte lokale +Verarbeitung von SRv6-Paketen auf der Grundlage ihres aktiven Segments. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: Segment Routing HMAC support}$~$\\ +CONFIG\_IPV6\_SEG6\_HMAC [=y] \textbf{[Y]}\\* +Unterstützung für die Erzeugung von HMAC-Signaturen und die Überprüfung von SR-aktivierten Paketen. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: RPL Source Routing Header support}$~$\\ +CONFIG\_IPV6\_RPL\_LWTUNNEL [=y] \textbf{[Y]}\\* +Unterstützung für RFC~6554 RPL Source Routing Header unter Verwendung des Lightweight"=Tunnel"=Mechanismus. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6: IOAM Pre-allocated Trace insertion support}$~$\\ +CONFIG\_IPV6\_IOAM6\_LWTUNNEL [=y] \textbf{[Y]}\\* +Unterstützung für das Einfügen von IOAM Pre-allocated Trace Header unter Verwendung des Lightweight"=Tunnel"=Mechanismus. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{NetLabel subsystem support}$~$\\ +CONFIG\_NETLABEL [=y] \textbf{Y}\\* +NetLabel bietet Unterstützung für explizite Netzwerk-Paketkennzeichnungsprotokolle wie CIPSO und RIPSO. Weitere +Informationen finden Sie unter Documentation/netlabel sowie im NetLabel SourceForge-Projekt für Konfigurationswerkzeuge +und zusätzliche Dokumentation.\\ +$*$ \url{https://github.com/netlabel/netlabel\_tools} +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{MPTCP: Multipath TCP}$~$\\ +CONFIG\_MPTCP [=y] \textbf{Y}\\* +Multipath TCP (MPTCP)-Verbindungen senden und empfangen Daten über mehrere Subflows, um mehrere +Netzwerkpfade zu nutzen. Jeder Subflow verwendet das TCP-Protokoll, und die TCP-Optionen enthalten +Header-Informationen für MPTCP. + +\subparagraph{MPTCP: IPv6 support for Multipath TCP}$~$\\ +CONFIG\_MPTCP\_IPV6 [=y] \textbf{[Y]}\\* +Für diese Option gibt es keine Hilfe. + +\subsubsection{Security Marking} +CONFIG\_NETWORK\_SECMARK [=y] \textbf{[Y]}\\* +Dies ermöglicht die Sicherheitsmarkierung von Netzwerkpaketen, ähnlich wie bei nfmark, aber für +Sicherheitszwecke. Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie +mit N. + +\subsubsection{Timestamping in PHY devices} +CONFIG\_NETWORK\_PHY\_TIMESTAMPING [=y] \textbf{[Y]}\\* +Dies ermöglicht die Zeitstempelung von Netzwerkpaketen durch PHYs (oder andere +MII-Bus-Snooping-Geräte) mit Hardware-Zeitstempelfunktionen. Diese Option fügt einen gewissen +Overhead in den Sende- und Empfangswegen hinzu. Wenn Sie unsicher sind, wie Sie diese Frage +beantworten sollen, antworten Sie mit N. + +\subsubsection{Network packet filtering framework (Netfilter) \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NETFILTER [=y] \textbf{[Y]}\\* +Netfilter ist ein Framework zum Filtern und Verarbeiten von Netzwerkpaketen, die Ihren Linux-Rechner +durchlaufen. Die häufigste Anwendung der Paketfilterung ist der Einsatz Ihres Linux-Rechners als +Firewall zum Schutz eines lokalen Netzwerks vor dem Internet. Die Art von Firewall, die durch diese +Kernelunterstützung bereitgestellt wird, wird als \glqq Paketfilter\grqq{} bezeichnet, was bedeutet, +dass sie einzelne Netzwerkpakete auf der Grundlage von Typ, Quelle, Ziel usw. zurückweisen kann. +Die andere Art von Firewall, eine \glqq proxy-basierte\grqq{} Firewall, ist sicherer, aber +aufdringlicher und mühsamer einzurichten; sie untersucht den Netzwerkverkehr viel genauer, +verändert ihn und hat Kenntnisse über die höheren Protokolle, die ein Paketfilter nicht hat. +Außerdem erfordern proxy-basierte Firewalls oft Änderungen an den Programmen, die auf den lokalen +Clients laufen. Proxy-basierte Firewalls brauchen keine Unterstützung durch den Kernel, aber sie +werden oft mit einem Paketfilter kombiniert, der nur funktioniert, wenn man hier Y sagt.\\ +Sie sollten hier auch Y angeben, wenn Sie Ihren Linux-Rechner als Gateway zum Internet für ein +lokales Netzwerk von Rechnern ohne global gültige IP-Adresse verwenden wollen. Dies nennt man +\glqq masquerading\grqq{}: Wenn einer der Computer in Ihrem lokalen Netzwerk etwas nach außen +senden möchte, kann sich Ihre Box als dieser Computer \glqq maskieren\grqq{}, d.~h. sie leitet +den Datenverkehr an das vorgesehene Ziel nach außen weiter, verändert aber die Pakete so, dass +es so aussieht, als kämen sie von der Firewall-Box selbst. Das funktioniert in beide Richtungen: +Wenn der externe Rechner antwortet, leitet die Linux-Box den Datenverkehr stillschweigend an den +richtigen lokalen Rechner weiter.\\ +Auf diese Weise sind die Computer in Ihrem lokalen Netz für die Außenwelt völlig unsichtbar, +obwohl sie die Außenwelt erreichen und Antworten empfangen können. Es ist sogar möglich, global +sichtbare Server von einem maskierten lokalen Netzwerk aus zu betreiben, indem man einen +Mechanismus namens Portforwarding verwendet. Masquerading wird oft auch als NAT +(Network Address Translation) bezeichnet.\\ +Eine weitere Anwendung von Netfilter ist das transparente Proxying: Wenn ein Rechner im lokalen +Netzwerk versucht, eine Verbindung zu einem externen Host herzustellen, kann Ihr Linux-System den +Datenverkehr transparent an einen lokalen Server weiterleiten, in der Regel einen +Caching-Proxy-Server. Eine weitere Verwendung von Netfilter ist der Aufbau einer Bridging-Firewall. +Wenn Sie eine Bridge mit aktivierter Netzwerk-Paketfilterung verwenden, kann iptables den +überbrückten Verkehr \glqq sehen\grqq{}. Für die Filterung des unteren Netzwerks und der +Ethernet-Protokolle über die Brücke, verwenden Sie ebtables (unter bridge netfilter configuration). +Für netfilter gibt es verschiedene Module, die die bisherigen Mechanismen Masquerading (ipmasqadm), +Paketfilterung (ipchains), transparentes Proxying und Portforwarding ersetzen. +Bitte sehen Sie $<$file:Documentation/Changes$>$ unter \glqq iptables\grqq{} nach, wo diese Pakete +zu finden sind. + +\paragraph{Advanced netfilter configuration}$~$\\ +CONFIG\_NETFILTER\_ADVANCED [=y] \textbf{[Y]}\\* +Wenn Sie hier Y angeben, können Sie zwischen allen Netzfiltermodulen wählen. Wenn Sie N sagen, +werden die ungewöhnlicheren nicht angezeigt, und die grundlegenden Module, die von den meisten +Benutzern benötigt werden, werden standardmäßig mit \glqq M\grqq{} angezeigt. Wenn Sie unsicher +sind, sagen Sie Y. + +\subparagraph{Bridged IP/ARP packets filtering}$~$\\ +CONFIG\_BRIDGE\_NETFILTER [=m] \textbf{[M]}\\* +Wenn Sie diese Option aktivieren, kann arptables bzw. iptables überbrückten ARP- bzw. IP-Verkehr +sehen. Wenn Sie eine Bridging-Firewall wollen, sollten Sie diese Option aktivieren. +Durch das Aktivieren oder Deaktivieren dieser Option wird ebtables nicht aktiviert oder +deaktiviert.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Core Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ +(Kern-Netfilter-Konfiguration) + +\subparagraph{Netfilter ingress support}$~$\\ +CONFIG\_NETFILTER\_INGRESS [=y] \textbf{[Y]}\\* +Damit können Sie Pakete bereits am Eingang über die Netfilter-Infrastruktur klassifizieren. + +\subparagraph{Netfilter egress support}$~$\\ +CONFIG\_NETFILTER\_EGRESS [=y] \textbf{[Y]}\\* +Damit können Sie Pakete vor der Übertragung über die Netfilter-Infrastruktur klassifizieren. + +\subparagraph{Netfilter base hook dump support}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_HOOK [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, unterstützt der Kernel die Auflistung der +Basis-Netzfilter-Hooks über NFNETLINK. Dies ist hilfreich für die Fehlersuche. + +\subparagraph{Netfilter NFACCT over NFNETLINK interface}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_ACCT [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, unterstützt der Kernel die erweiterte Abrechnung über NFNETLINK. + +\subparagraph{Netfilter NFQUEUE over NFNETLINK interface}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_QUEUE [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, unterstützt der Kernel die Warteschlangenbildung für +Pakete über NFNETLINK. + +\subparagraph{Netfilter LOG over NFNETLINK interface}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_LOG [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, bietet der Kernel Unterstützung für die Protokollierung von +Paketen über NFNETLINK. Dadurch werden die bestehenden ipt\_ULOG- und ebg\_ulog-Mechanismen +überflüssig und es ist auch geplant, die alten syslog-basierten ipt\_LOG- und +ip6t\_LOG-Module zu ersetzen. + +\subparagraph{Netfilter OSF over NFNETLINK interface}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_OSF [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, unterstützt der Kernel den passiven OS-Fingerprint über NFNETLINK. + +\subparagraph{Netfilter connection tracking support}$~$\\ +CONFIG\_NF\_CONNTRACK [=m] \textbf{[M]}\\* +Die Verbindungsverfolgung zeichnet auf, welche Pakete Ihren Rechner durchlaufen haben, um +herauszufinden, wie sie zu Verbindungen zusammenhängen. +Dies ist erforderlich, um Masquerading oder andere Arten der Netzwerkadressübersetzung +durchzuführen. Es kann auch verwendet werden, um die Paketfilterung zu verbessern +(siehe \glqq Unterstützung von Verbindungsstatusübereinstimmungen\grqq{} unten). +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Syslog packet logging}$~$\\ +CONFIG\_NF\_LOG\_SYSLOG [=m] \textbf{[M]}\\* +Diese Option aktiviert die Unterstützung für die Paketprotokollierung über Syslog. Sie +unterstützt IPv4, IPV6, ARP und gängige Transportprotokolle wie TCP und UDP. Dies ist eine +einfachere, aber weniger flexible Protokollierungsmethode im Vergleich zu +CONFIG\_NETFILTER\_NETLINK\_LOG. Wenn beide aktiviert sind, kann das zu verwendende Backend +zur Laufzeit mit Hilfe von sysctl-Tunables pro Adressfamilie konfiguriert werden. + +\subparagraph{Connection mark tracking support}$~$\\ +CONFIG\_NF\_CONNTRACK\_MARK [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für Verbindungsmarkierungen, die vom Ziel +\glqq CONNMARK\grqq{} und der Übereinstimmung \glqq connmark\grqq{} verwendet werden. +Ähnlich wie der Markierungswert von Paketen, aber dieser Markierungswert wird in der +conntrack-Sitzung statt in den einzelnen Paketen gespeichert. + +\subparagraph{Connection tracking security mark support}$~$\\ +CONFIG\_NF\_CONNTRACK\_SECMARK [=y] \textbf{[Y]}\\* +Mit dieser Option können Sicherheitsmarkierungen auf Verbindungen angewendet werden. Normalerweise +werden sie von Paketen, die das CONNSECMARK-Ziel verwenden, auf Verbindungen kopiert und von +Verbindungen auf Pakete mit demselben Ziel zurückkopiert, wobei die Pakete ursprünglich über +SECMARK gekennzeichnet wurden.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking zones}$~$\\ +CONFIG\_NF\_CONNTRACK\_ZONES [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Unterstützung für Zonen zur Verfolgung von Verbindungen aktiviert. +Normalerweise muss jede Verbindung eine eindeutige systemweite Identität haben. Zonen für die +Verbindungsverfolgung ermöglichen es, dass mehrere Verbindungen dieselbe Identität verwenden, +solange sie in verschiedenen Zonen enthalten sind. Wenn Sie unsicher sind, sagen Sie `N'. + +\subparagraph{Supply CT list in procfs (OBSOLETE)}$~$\\ +CONFIG\_NF\_CONNTRACK\_PROCFS [=y] \textbf{[Y]}\\* +Mit dieser Option kann die Liste der bekannten Conntrack-Einträge in procfs unter\\ +net/netfilter/nf\_conntrack angezeigt werden. Diese Option wird als veraltet betrachtet, +da das Werkzeug conntrack(8), das Netlink benutzt, verwendet wird. + +\subparagraph{Connection tracking events}$~$\\ +CONFIG\_NF\_CONNTRACK\_EVENTS [=y] \textbf{[Y]}\\* +Wenn diese Option aktiviert ist, stellt der Code für die Verbindungsüberwachung eine +Benachrichtigungskette zur Verfügung, die von anderem Kernel-Code verwendet werden kann, +um über Änderungen im Status der Verbindungsüberwachung informiert zu werden.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking timeout}$~$\\ +CONFIG\_NF\_CONNTRACK\_TIMEOUT [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für die Timeout-Erweiterung der Verbindungsverfolgung. +Damit können Sie Zeitüberschreitungsrichtlinien an den Datenfluss über das CT-Ziel anhängen.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking timestamping}$~$\\ +CONFIG\_NF\_CONNTRACK\_TIMESTAMP [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für die Zeitstempelung der Verbindungsverfolgung. +Dadurch können Sie die Startzeit des Datenflusses speichern und die Zeit für die Beendigung des +Datenflusses (nach dessen Zerstörung) über Ereignisse der Verbindungsverfolgung abrufen. Wenn +Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking labels}$~$\\ +CONFIG\_NF\_CONNTRACK\_LABELS [=y] \textbf{[Y]}\\* +Diese Option ermöglicht die Zuweisung von benutzerdefinierten Flaggenbits zu Einträgen der +Verbindungsverfolgung. Sie kann mit xtables connlabel match und dem nftables ct Ausdruck +verwendet werden. + +\subparagraph{DCCP protocol connection tracking support}$~$\\ +CONFIG\_NF\_CT\_PROTO\_DCCP [=y] \textbf{[Y]}\\* +Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Code für die Verbindungsverfolgung +den Zustand von DCCP"=Verbindungen verfolgen. Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{SCTP protocol connection tracking support}$~$\\ +CONFIG\_NF\_CT\_PROTO\_SCTP [=y] \textbf{[Y]}\\* +Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Verbindungsverfolgungscode +den Status von SCTP"=Verbindungen verfolgen. Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{UDP-Lite protocol connection tracking support}$~$\\ +CONFIG\_NF\_CT\_PROTO\_UPDLITE [=y] \textbf{[Y]}\\* +Wenn diese Option aktiviert ist, kann der Layer-3"=unabhängige Verbindungsverfolgungscode +eine Zustandsverfolgung bei UDP-Lite"=Verbindungen durchführen. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{Amanda backup protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_AMANDA [=m] \textbf{[M]}\\* +Wenn Sie das Amanda-Backup-Paket \url{http://www.amanda.org/} auf diesem Rechner oder auf +Rechnern, die über diesen Rechner MASQUERADED werden, ausführen, sollten Sie diese +Funktion aktivieren. Dies ermöglicht es dem Verbindungsverfolgungs- und Natting"=Code, die +Unterkanäle zuzulassen, die Amanda für die Kommunikation der Sicherungsdaten, Nachrichten +und des Index benötigt. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{FTP protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_FTP [=m] \textbf{[M]}\\* +Die Verfolgung von FTP-Verbindungen ist problematisch: Für die Verfolgung dieser Verbindungen +und die Durchführung von Masquerading und anderen Formen der Network Address Translation sind +spezielle Hilfsmittel erforderlich. Dies ist FTP-Unterstützung auf Layer 3 mit unabhängiger +Verbindungsverfolgung. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{H.323 protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_H323 [=m] \textbf{[M]}\\* +H.323 ist ein VoIP-Signalisierungsprotokoll der ITU-T. Als eines der wichtigsten VoIP-Protokolle +wird es weithin von Sprach-Hardware und -Software verwendet, darunter Sprach"=Gateways, IP"=Telefone, +Netmeeting, OpenPhone, Gnomemeeting usw. +Mit diesem Modul können Sie H.323 auf einer Verbindungs"-ver"-fol"-gung/NAT"=Firewall unterstützen. +Dieses Modul unterstützt RAS, Fast Start, H.245 Tunnelling, Call Forwarding, RTP/RTCP und T.120 +basierte Audio-, Video-, Fax-, Chat-, Whiteboard-, Dateiübertragung, etc. Für weitere Informationen +besuchen Sie bitte \url{http://nath323.sourceforge.net/}.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IRC protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_IRC [=m] \textbf{[M]}\\* +Es gibt eine weit verbreitete Erweiterung des IRC, das Direct Client-to-Client Protocol (DCC). +Damit können Benutzer Dateien aneinander senden und auch miteinander chatten, ohne dass ein Server +erforderlich ist. DCC Sending wird überall dort verwendet, wo Sie Dateien über IRC senden, und DCC +Chat wird am häufigsten von Eggdrop"=Bots verwendet. Wenn Sie NAT verwenden, ermöglicht Ihnen diese +Erweiterung, Dateien zu senden und Chats zu initiieren. Beachten Sie, dass Sie diese Erweiterung +NICHT benötigen, um Dateien abzurufen oder Chats zu initiieren, oder alles andere im IRC.\\ +Um sie als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{NetBIOS name service protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_NETBIOS\_NS [=m] \textbf{[M]}\\* +NetBIOS-Namensdienstanfragen werden als Broadcast"=Nachrichten von einem unprivilegierten Port +gesendet und mit Unicast"=Nachrichten an denselben Port beantwortet. Das macht es schwierig, sie +mit einer Firewall zu schützen, da die Verbindungsverfolgung nicht mit Broadcasts umgehen kann. +Dieses Hilfsprogramm verfolgt die lokalen NetBIOS"=Namensdienstanfragen und die entsprechenden +Antworten. Er ist auf eine korrekte IP"=Adresskonfiguration angewiesen, insbesondere auf die +Netzmaske und die Broadcast"=Adresse. Wenn sie richtig konfiguriert sind, sollte die Ausgabe von +\texttt{ip address show} etwa so aussehen:\\[.5em] +\texttt{\$ ip -4 address show eth0}\\ +\texttt{4: eth0: $<$BROADCAST,MULTICAST,UP$>$ mtu 1500 qdisc pfifo\_fast qlen 1000}\\ +\texttt{\hspace*{4em} inet 172.16.2.252/24 brd 172.16.2.255 Bereich global eth0}\\[.5em] +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{SNMP service protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_SNMP [=m] \textbf{[M]}\\* +SNMP-Dienstanforderungen werden als Broadcast"=Nachrichten von einem unprivilegierten Port gesendet +und mit Unicast"=Nachrichten an denselben Port beantwortet. Das macht es schwierig, sie mit einer +Firewall zu schützen, da die Verbindungsverfolgung nicht mit Broadcasts umgehen kann. +Dieses Hilfsprogramm verfolgt die lokalen SNMP"=Dienstanfragen und die entsprechenden Antworten. +Es verlässt sich auf die korrekte Konfiguration der IP"=Adresse, insbesondere der Netzmaske und +der Broadcast-Adresse.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{PPtP protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_PPTP [=m] \textbf{[M]}\\* +Dieses Modul fügt Unterstützung für PPTP (Point to Point Tunnelling Protocol, RFC~2637) +Verbindungsverfolgung und NAT hinzu. Wenn Sie PPTP"=Sitzungen über eine Stateful"=Firewall oder +NAT"=Box laufen lassen, sollten Sie diese Funktion aktivieren. +Bitte beachten Sie, dass noch nicht alle PPTP"=Betriebsmodi unterstützt werden. Insbesondere +bestehen diese Einschränkungen: +\begin{itemize} + \item[-] Es wird blind davon ausgegangen, dass Kontrollverbindungen immer in Richtung + PNS$\rightarrow$PAC aufgebaut werden. Dies ist eine Verletzung von RFC~2637. + \item[-] Unterstützt nur einen einzigen Aufruf innerhalb jeder Sitzung +\end{itemize} +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{SANE protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_SANE [=m] \textbf{[M]}\\* +SANE ist ein Protokoll für den Fernzugriff auf Scanner, das durch den Daemon \texttt{saned} +implementiert wird. Wie FTP verwendet es getrennte Kontroll- und Datenverbindungen. +Mit diesem Modul können Sie SANE auf einer Firewall mit Verbindungsverfolgung unterstützen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{SIP protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_SANE [=m] \textbf{[M]}\\* +SIP ist ein Kontroll\-protokoll der Anwendungsschicht, mit dem Multimedia"=Sitzungen +(Konferenzen) wie Internet"=Telefonate aufgebaut, geändert und beendet werden können.\\ +Mit den Modulen \texttt{nf\_conntrack\_sip} und \texttt{nf\_nat\_sip} können Sie das +Protokoll auf einer Verbindungsverfolgung/NATing"=Firewall unterstützen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{TFTP protocol support}$~$\\ +CONFIG\_NF\_CONNTRACK\_TFTP [=m] \textbf{[M]}\\* +TFTP-Verbindungsnachverfolgungshilfe; dies ist erforderlich, je nachdem, wie restriktiv +Ihr Regelwerk ist. Wenn Sie einen tftp"=Client hinter -j SNAT oder -j MASQUERADING verwenden, +benötigen Sie dies. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking netlink interface}$~$\\ +CONFIG\_NF\_CT\_NETLINK [=m] \textbf{[M]}\\* +Diese Option aktiviert die Unterstützung für eine netlink"=basierte Benutzerschnittstelle. + +\subparagraph{Connection tracking timeout tuning via Netlink}$~$\\ +CONFIG\_NF\_CT\_NETLINK\_TIMEOUT [=m] \textbf{[M]}\\* +Mit dieser Option wird die Unterstützung für die Feinabstimmung des Zeitlimits für die +Verbindungsverfolgung aktiviert. Dies ermöglicht es Ihnen, spezifische +Zeitüberschreitungsrichtlinien an Abläufe anzuhängen, anstatt die globale +Zeitüberschreitungsrichtlinie zu verwenden. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Connection tracking helpers in user-space via Netlink}$~$\\ +CONFIG\_NF\_CT\_NETLINK\_HELPER [=m] \textbf{[M]}\\* +Mit dieser Option wird die Infrastruktur für die Verbindungsnachverfolgung im +Benutzerbereich aktiviert. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{NFQUEUE and NFLOG integration with Connection Tracking}$~$\\ +CONFIG\_NETFILTER\_NETLINK\_GLUE\_CT [=y] \textbf{[Y]}\\* +Wenn diese Option aktiviert ist, können NFQUEUE und NFLOG zusammen mit dem Paket, das über +NFNETLINK in die Warteschlange gestellt wurde, Informationen zur Verbindungsverfolgung enthalten. + +\subparagraph{Network Address Translation support}$~$\\ +CONFIG\_NF\_NAT [=m] \textbf{[M]}\\* +Die NAT"=Option ermöglicht Masquerading, Portweiterleitung und andere Formen der vollständigen +Network Address Port Translation. Dies kann durch iptables, ip6tables oder nft kontrolliert +werden. + +\subparagraph{Netfilter nf\_tables support}$~$\\ +CONFIG\_NF\_TABLES [=m] \textbf{[M]}\\* +nftables ist das neue Rahmenwerk zur Paketklassifizierung, das die bestehende +\{ip,ip6,arp,eb\}\_tables-Infrastruktur ersetzen soll. Es bietet eine +Pseudo-Zustandsmaschine mit einem erweiterbaren Befehlssatz (auch als Ausdrücke +bekannt), den das Userspace-Dienstprogramm \texttt{nft} +(\url{https://www.netfilter.org/projects/nftables}) zum Aufbau des Regelsatzes +verwendet. Außerdem enthält es die generische Set-Infrastruktur, die es Ihnen +ermöglicht, Zuordnungen zwischen Übereinstimmungen und Aktionen zu konstruieren, +um die Leistung zu verbessern. Um es als Modul zu kompilieren, wählen Sie hier M. + +\subsubparagraph{Netfilter nf\_tables mixed IPv4/IPv6 tables support}$~$\\ +CONFIG\_NF\_TABLES\_INET [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für eine gemischte +IPv4/IPv6"=\glqq inet\grqq{}"=Tabelle. + +\subsubparagraph{Netfilter nf\_tables netdev tables support}$~$\\ +CONFIG\_NF\_TABLES\_NETDEV [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für die Tabelle \glqq netdev\grqq{}. + +\subsubparagraph{Netfilter nf\_tables number generator module}$~$\\ +CONFIG\_NFT\_NUMGEN [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck für den Zahlengenerator hinzu, der zur +Durchführung der inkrementellen Zählung und der an eine Obergrenze +gebundenen Zufallszahlen verwendet wird. + +\subsubparagraph{Netfilter nf\_tables conntrack module}$~$\\ +CONFIG\_NFT\_CT [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck "ct" hinzu, den Sie verwenden können, um Informationen +zur Verbindungsverfolgung, wie z.~B. den Status des Datenflusses, abzugleichen. + +\subsubparagraph{Netfilter nf\_tables hardware flow offload module}$~$\\ +CONFIG\_NFT\_FLOW\_OFFLOAD [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq flow\_offload\grqq{} hinzu, mit dem Sie +festlegen können, welche Datenströme in die Hardware eingespeist werden. + +\subsubparagraph{Netfilter nf\_tables connlimit module}$~$\\ +CONFIG\_NFT\_CONNLIMIT [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq connlimit\grqq{} hinzu, den Sie verwenden können, +um die Übereinstimmung von Regeln pro Verbindung zu begrenzen. + +\subsubparagraph{Netfilter nf\_tables log module}$~$\\ +CONFIG\_NFT\_LOG [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq log\grqq{} hinzu, den Sie verwenden können, +um Pakete zu protokollieren, die bestimmten Kriterien entsprechen. + +\subsubparagraph{Netfilter nf\_tables limit module}$~$\\ +CONFIG\_NFT\_LOG [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq limit\grqq{} hinzu, den Sie verwenden können, +um die Übereinstimmung von Regeln zu begrenzen. + +\subsubparagraph{Netfilter nf\_tables masquerade support}$~$\\ +CONFIG\_NFT\_MASQ [=m] \textbf{[M]}\\* +Diese Option fügt den \glqq masquerade\grqq{}"=Ausdruck hinzu, den Sie verwenden +können, um NAT im Masquerade"=Flavour durchzuführen. + +\subsubparagraph{Netfilter nf\_tables redirect support}$~$\\ +CONFIG\_NFT\_REDIR [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq redirect\grqq{} hinzu, mit dem Sie NAT +im Redirect"=Flavour durchführen können. + +\subsubparagraph{Netfilter nf\_tables nat module}$~$\\ +CONFIG\_NFT\_NAT [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq nat\grqq{} hinzu, mit dem Sie typische +NAT-Paketumwandlungen (Network Address Translation) durchführen können. + +\subsubparagraph{Netfilter nf\_tables tunnel module}$~$\\ +CONFIG\_NFT\_TUNNEL [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq tunnel\grqq{} hinzu, den Sie zum Festlegen von +Tunneling-Richtlinien verwenden können. + +\subsubparagraph{Netfilter nf\_tables queue module}$~$\\ +CONFIG\_NFT\_QUEUE [=m] \textbf{[M]}\\* +Dies ist erforderlich, wenn Sie die Userspace"=Warteschlangen"=Infrastruktur (auch +bekannt als NFQUEUE) von nftables verwenden wollen. + +\subsubparagraph{Netfilter nf\_tables quota module}$~$\\ +CONFIG\_NFT\_QUEUE [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq quota\grqq{} hinzu, den Sie verwenden können, +um Byte-Quoten zu erzwingen. + +\subsubparagraph{Netfilter nf\_tables reject support}$~$\\ +CONFIG\_NFT\_REJECT [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq reject\grqq{} hinzu, den Sie verwenden +können, um nicht zugelassenen Datenverkehr explizit abzulehnen und über +TCP-Reset/ICMP"=Informationsfehler zu benachrichtigen. + +\subsubparagraph{Netfilter x\_tables over nf\_tables module}$~$\\ +CONFIG\_NFT\_COMPAT [=m] \textbf{[M]}\\* +Dies ist erforderlich, wenn Sie beabsichtigen, eine der vorhandenen x\_tables +match/target-Erweiterungen über das nf\_tables-Framework zu verwenden. + +\subsubparagraph{Netfilter nf\_tables hash module}$~$\\ +CONFIG\_NFT\_HASH [=m] \textbf{[M]}\\* +Diese Option fügt den Ausdruck \glqq hash\grqq{} hinzu, mit dem Sie eine Hash"=Operation +für Register durchführen können. + +\subsubparagraph{Netfilter nf\_tables fib inet support}$~$\\ +CONFIG\_NFT\_FIB\_INET [=m] \textbf{[M]}\\* +Diese Option ermöglicht die Verwendung des FIB-Ausdrucks aus der Inet"=Tabelle. +Die Suche wird an die IPv4- oder IPv6"=FIB delegiert, je nach dem Protokoll +des Pakets. + +\subsubparagraph{Netfilter nf\_tables xfrm/IPSec security association matching}$~$\\ +CONFIG\_NFT\_XFRM [=m] \textbf{[M]}\\* +Diese Option fügt einen Ausdruck hinzu, den Sie verwenden können, um Eigenschaften einer +Paketsicherheitszuordnung zu extrahieren. + +\subsubparagraph{Netfilter nf\_tables socket match support}$~$\\ +CONFIG\_NFT\_SOCKET [=m] \textbf{[M]}\\* +Diese Option ermöglicht den Abgleich auf das Vorhandensein oder Nichtvorhandensein eines +entsprechenden Sockets und seiner Attribute. + +\subsubparagraph{Netfilter nf\_tables passive OS fingerprint support}$~$\\ +CONFIG\_NFT\_OSF [=m] \textbf{[M]}\\* +Mit dieser Option können Pakete von einem bestimmten Betriebssystem abgeglichen +werden. + +\subsubparagraph{Netfilter nf\_tables tproxy support}$~$\\ +CONFIG\_NFT\_TPROXY [=m] \textbf{[M]}\\* +Dadurch wird die Unterstützung für transparente Proxys in nftables verfügbar. + +\subsubparagraph{Netfilter nf\_tables SYNPROXY expression support}$~$\\ +CONFIG\_NFT\_SYNPROXY [=m] \textbf{[M]}\\* +Mit dem SYNPROXY-Ausdruck können Sie TCP-Verbindungen abfangen und mit +Syncookies aufbauen, bevor sie an den Server weitergeleitet werden. +Auf diese Weise können Sie die Nutzung von Verbindungen und Serverressourcen +bei SYN"=Flood"=Angriffen vermeiden. + +\subsubparagraph{Netfilter packet duplication support}$~$\\ +CONFIG\_NF\_DUP\_NETDEV [=m] \textbf{[M]}\\* +Diese Option aktiviert die generische Infrastruktur zur Paketvervielfältigung +für Netfilter. + +\subsubparagraph{Netfilter nf\_tables netdev packet duplication support}$~$\\ +CONFIG\_NFT\_DUP\_NETDEV [=m] \textbf{[M]}\\* +Mit dieser Option wird die Paketverdopplung für die \glqq netdev\grqq{}"=Familie +aktiviert. + +\subsubparagraph{Netfilter nf\_tables netdev packet forwarding support}$~$\\ +CONFIG\_NFT\_FWD\_NETDEV [=m] \textbf{[M]}\\* +Diese Option aktiviert die Paketweiterleitung für die Familie +\glqq netdev\grqq{}. + +\subsubparagraph{Netfilter nf\_tables netdev fib lookups support}$~$\\ +CONFIG\_NFT\_FIB\_NETDEV [=m] \textbf{[M]}\\* +Diese Option ermöglicht die Verwendung des FIB-Ausdrucks aus der +netdev"=Tabelle. Die Suche wird an die IPv4- oder IPv6"=FIB delegiert, je +nach dem Protokoll des Pakets. + +\subsubparagraph{Netfilter nf\_tables netdev fib REJECT support}$~$\\ +CONFIG\_NFT\_REJECT\_NETDEV [=m] \textbf{[M]}\\* +Diese Option aktiviert die REJECT-Unterstützung in der netdev-Tabelle. +Die Erzeugung von Rück"-sende"-paketen wird an die IPv4- oder IPv6-ICMP- oder +TCP-RST-Implementierung delegiert, je nach dem Protokoll des Pakets. + +\subparagraph{Netfilter flow table mixed IPv4/IPv6 module}$~$\\ +CONFIG\_NF\_FLOW\_TABLE\_INET [=m] \textbf{[M]}\\* +Diese Option fügt die gemischte IPv4/IPv6-Unterstützung der Flow Table hinzu. +Um sie als Modul zu kompilieren, wählen Sie hier M. + +\subparagraph{Netfilter flow table module}$~$\\ +CONFIG\_NF\_FLOW\_TABLE [=m] \textbf{[M]}\\* +Diese Option fügt die Kerninfrastruktur der Ablauftabelle hinzu. Um sie als +Modul zu kompilieren, wählen Sie hier M. + +\subsubparagraph{Supply flow table statistics in procfs}$~$\\ +CONFIG\_NF\_FLOW\_TABLE\_PROCFS [=y] \textbf{[Y]}\\* +Diese Option ermöglicht die Anzeige der Flow-Table-Offload-Statistiken in +procfs unter\\ +net/netfilter/nf\_flowtable. + +\subparagraph{Netfilter Xtables support (required for ip\_tables)}$~$\\ +CONFIG\_NETFILTER\_XTABLES [=m] \textbf{[M]}\\* +Dies ist erforderlich, wenn Sie eine der Tabellen ip\_tables, ip6\_tables oder +arp\_tables verwenden wollen. + +\subsubparagraph{Netfilter Xtables 32bit support}$~$\\ +CONFIG\_NETFILTER\_XTABLES\_COMPAT [=y] \textbf{[Y]}\\* +Diese Option bietet eine Übersetzungsschicht, um 32bit arp,ip(6),ebtables-Binärdateien +auf 64bit-Kerneln laufen zu lassen. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph*{*** Xtables combined modules ***}$~$\\ +\textit{(Xtables kombinierte Module)} + +\subsubparagraph{nfmark target and match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MARK [=m] \textbf{[M]}\\* +Diese Option fügt das \glqq MARK\grqq{}-Ziel und die +\glqq mark\grqq{}"=Übereinstimmung +hinzu. Mit dem Netfilter"=Mark"=Matching können Sie Pakete auf der Grundlage des +\glqq nfmark\grqq{}-Werts im Paket abgleichen. Mit dem Ziel können Sie in der +\glqq mangle\grqq{}-Tabelle Regeln erstellen, die das mit dem Paket verbundene +Feld \glqq netfilter mark\grqq{} (nfmark) ändern. Vor dem Routing kann die +nfmark die Routing-Methode beeinflussen und kann auch von anderen Subsystemen +verwendet werden, um ihr Verhalten zu ändern. + +\subsubparagraph{ctmark target and match support}$~$\\ +CONFIG\_NETFILTER\_XT\_CONNMARK [=m] \textbf{[M]}\\* +Diese Option fügt das Ziel \glqq CONNMARK\grqq{} und die Übereinstimmung +\glqq connmark\grqq{} hinzu. +Netfilter ermöglicht es Ihnen, einen Markierungswert +pro Verbindung (auch bekannt als ctmark) zu speichern, ähnlich wie bei der +Paketmarkierung (nfmark). Mit Hilfe dieses Ziels und der Übereinstimmung können +Sie diese Markierung setzen und abgleichen. + +\subsubparagraph{set target and match support}$~$\\ +CONFIG\_NETFILTER\_XT\_SET [=m] \textbf{[M]}\\* +Diese Option fügt das \glqq SET\grqq{}-Ziel und die \glqq set\grqq{}-Übereinstimmung +hinzu. Mit diesem Ziel und dieser Übereinstimmung können Sie Elemente in den von +ipset(8) erstellten Sets hinzufügen/löschen und abgleichen. Um es als Modul zu +kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph*{*** Xtables combined modules ***}$~$\\ +\textit{(Xtables kombinierte Module)} + +\subsubparagraph{AUDIT target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_AUDIT [=m] \textbf{[M]}\\* +Diese Option fügt ein 'AUDIT'-Ziel hinzu, das verwendet werden kann, um +Audit"=Aufzeichnungen für verworfene/akzeptierte Pakete zu erstellen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, +sagen Sie N. + +\subsubparagraph{CHECKSUM target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_CHECKSUM [=m] \textbf{[M]}\\* +Diese Option fuegt ein \glq CHECKSUM\grq{}-Ziel hinzu, das in der iptables +Mangle-Tabelle verwendet werden kann, um fehlerhafte DHCP"=Clients in +virtualisierten Umgebungen zu umgehen. Einige alte DHCP"=Clients lassen Pakete +fallen, weil sie nicht wissen, dass die Prüfsumme normalerweise auf die +Hardware ausgelagert wird und daher als gültig angesehen werden sollte. Dieses +Ziel kann verwendet werden, um die Prüfsumme mit iptables auszufüllen, wenn +solche Pakete über ein virtuelles Netzwerkgerät gesendet werden. Um es als +Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``CLASSIFY'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_CLASSIFY [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq CLASSIFY\grq{}-Ziel hinzu, das es dem Benutzer +ermöglicht, die Priorität eines Pakets festzulegen. Einige qdiscs können +diesen Wert zur Klassifizierung verwenden, darunter sind:\\[.5em] +atm, cbq, dsmark, pfifo\_fast, htb, prio\\[0.5em] +Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``CONNMARK'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_CONNMARK [=m] \textbf{[M]}\\* +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig).\\ +Mit ihr wird +CONFIG\_NETFILTER\_XT\_CONNMARK (kombiniertes connmark/CONNMARK"=Modul) +ausgewählt. + +\subsubparagraph{``CONNSECMARK'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_CONNSECMARK [=m] \textbf{[M]}\\* +Die Zielvorgabe CONNSECMARK kopiert Sicherheitsmarkierungen von Paketen auf +Verbindungen und stellt Sicherheitsmarkierungen von Verbindungen auf Pakete +wieder her (wenn die Pakete nicht bereits markiert sind). +Er wird normalerweise in Verbindung mit dem SECMARK"=Ziel verwendet.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, +sagen Sie N. + +\subsubparagraph{``CT'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_CT [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq CT\grq{}-Ziel hinzu, das es ermöglicht, anfängliche +Parameter für die Verbindungsverfolgung wie zu übermittelnde Ereignisse +und den zu verwendenden Helfer anzugeben.\\Um es als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``DSCP'' and ``TOS'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_DSCP [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq DSCP\grq{}-Ziel hinzu, mit dem Sie das DSCP-Feld +(Differentiated Services Codepoint) des IPv4/IPv6-Headers manipulieren können. +Das DSCP-Feld kann einen beliebigen Wert zwischen 0x0 und einschließlich 0x3f +haben. Es fügt auch das \glqq TOS\grqq{}-Ziel hinzu, mit dem Sie Regeln in +der \glqq Mangle\grqq{}-Tabelle erstellen können, die das \glqq Type Of +Service\grqq{}-Feld eines IPv4- oder das Prioritätsfeld eines IPv6-Pakets +vor dem Routing ändern.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, +wählen Sie N. + +\subsubparagraph{``HL'' hoplimit target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_HL [=m] \textbf{[M]}\\* +Diese Option fügt die Ziele \glqq HL\grqq{} (für IPv6) und \glqq TTL\grqq{} +(für IPv4) hinzu, die es dem Benutzer ermöglichen, den +Hoplimit-/Time-to-live-Wert des IP-Headers zu ändern. Während es sicher ist, +den Hoplimit/TTL-Wert zu dekrementieren, erlauben die Module auch, den +Hoplimit-Wert des Headers zu erhöhen und auf beliebige Werte zu setzen. +Dies ist EXTREM GEFÄHRLICH, da man leicht unsterbliche Pakete erzeugen kann, +die sich ewig im Netz drehen. + +\subsubparagraph{``HMARK'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_HMARK [=m] \textbf{[M]}\\* +Diese Option fügt das Ziel \glqq HMARK\grqq{} hinzu. Mit diesem Ziel können Sie +in den Tabellen \glqq raw\grqq{} und \glqq mangle\grqq{} Regeln erstellen, +die die skbuff-Marke mittels Hash-Berechnung innerhalb eines bestimmten +Bereichs setzen. Die nfmark kann die Routing-Methode beeinflussen und kann +auch von anderen Teilsystemen verwendet werden, um deren Verhalten zu ändern. +Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{IDLETIMER target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_IDLETIMER [=m] \textbf{[M]}\\* +Diese Option fügt das Ziel \glqq IDLETIMER\grqq{} hinzu. +Jedes übereinstimmende Paket setzt den Timer zurück, der mit dem Label +verbunden ist, das beim Hinzufügen der Regel angegeben wurde. Wenn der +Timer abläuft, löst er eine sysfs-Benachrichtigung aus. Die verbleibende +Zeit bis zum Ablauf kann über sysfs ausgelesen werden. Um es als Modul zu +kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``LED'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_LED [=m] \textbf{[M]}\\* +Diese Option fügt ein `LED'-Ziel hinzu, mit dem Sie LEDs als Reaktion auf +bestimmte Pakete, die Ihren Rechner passieren, blinken lassen können. +Dies kann dazu verwendet werden, eine freie LED in eine Netzwerkaktivitäts-LED +zu verwandeln, die z.~B. nur bei FTP-Übertragungen blinkt. +Oder Sie könnten eine LED haben, die jedes Mal für ein oder zwei Minuten +aufleuchtet, wenn sich jemand über SSH mit Ihrem Rechner verbindet. Damit dies +funktioniert, benötigen Sie Unterstützung für die Klasse \glqq led\grqq{}. So +erstellen Sie einen LED-Auslöser für eingehenden SSH-Verkehr:\\[.5em] +\texttt{iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000}\\[.5em] +Verbinden Sie dann den neuen Auslöser mit einer LED auf Ihrem System:\\[.5em] +\texttt{echo netfilter-ssh $>$ /sys/class/leds/$<$ledname$>$/trigger}\\[.5em] +Weitere Informationen zu den auf Ihrem System verfügbaren LEDs finden Sie unter\\ +Documentation/leds/leds-class.rst + +\subsubparagraph{LOG target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_LOG [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq LOG\grq{}-Ziel hinzu, das es Ihnen erlaubt, Regeln in +jeder iptables-Tabelle zu erstellen, die den Paket-Header im Syslog aufzeichnen. +Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``MARK'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_MARK [=m] \textbf{[M]}\\* +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Mit ihr wird +CONFIG\_NETFILTER\_XT\_MARK (kombiniertes Mark/MARK-Modul) ausgewählt. + +\subsubparagraph{``SNAT and DNAT'' targets support}$~$\\ +CONFIG\_NETFILTER\_XT\_NAT [=m] \textbf{[M]}\\* +Mit dieser Option werden die Ziele SNAT und DNAT aktiviert. Um es als Modul zu +kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``NETMAP'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_NETMAP [=m] \textbf{[M]}\\* +NETMAP ist eine Implementierung der statischen 1:1-NAT-Zuordnung von Netzwerkadressen. +Sie bildet den Teil der Netzwerkadresse ab, während der Teil der Hostadresse intakt bleibt. + +\subsubparagraph{``NFLOG'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_NFLOG [=m] \textbf{[M]}\\* +Diese Option aktiviert das NFLOG-Ziel, das es ermöglicht, Nachrichten über nfnetlink\_log +zu protokollieren. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``NFQUEUE'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_NFQUEUE [=m] \textbf{[M]}\\* +Dieses Ziel hat das alte, veraltete QUEUE-Ziel ersetzt. Im Gegensatz zu QUEUE unterstützt +es 65535 verschiedene Warteschlangen, nicht nur eine. Um es als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``NOTRACK'' target support (DEPRECATED)}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_NFQUEUE [=m] \textbf{[M]}\\* +\textit{Für diese Option gibt es keine Hilfe.} + +\subsubparagraph{``RATEEST'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_RATEEST [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq RATEEST\grq{}-Ziel hinzu, das es ermöglicht, Raten ähnlich wie +bei TC-Schätzern zu messen. Die \glq Rateest\grq{}-Übereinstimmung kann zum Abgleich mit den +gemessenen Raten verwendet werden. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{REDIRECT target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_REDIRECT [=m] \textbf{[M]}\\* +REDIRECT ist ein Spezialfall von NAT: Alle eingehenden Verbindungen werden auf die Adresse +der eingehenden Schnittstelle abgebildet, so dass die Pakete zum lokalen Rechner gelangen, +anstatt durchzugehen. Dies ist nützlich für transparente Proxies. Um es als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{MASQUERADE target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\* +Masquerading ist ein Spezialfall von NAT: Alle ausgehenden Verbindungen werden so verändert, +dass sie von einer bestimmten Schnittstellenadresse zu kommen scheinen, und wenn die Schnittstelle +ausfällt, gehen diese Verbindungen verloren. Dies ist nur für Einwahlkonten mit dynamischer +IP-Adresse nützlich (d.~h. Ihre IP-Adresse wird bei der nächsten Einwahl eine andere sein). +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``TEE'' -- packet cloning to alternate destination}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_TEE [=m] \textbf{[M]}\\* +Diese Option fügt ein \glqq TEE\grqq{}-Ziel hinzu, mit dem ein Paket geklont werden kann und dieser +Klon zu einem anderen Nexthop umgeleitet wird. + +\subsubparagraph{``TPROXY'' target transparent proxying support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_TPROXY [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq TPROXY\grq{}-Ziel hinzu, das dem REDIRECT-Ziel ähnlich ist. +Es kann nur in der Mangle-Tabelle verwendet werden und ist nützlich, um den Verkehr an einen +transparenten Proxy umzuleiten. Im Gegensatz zu REDIRECT ist sie \textbf{nicht} von der +Netfilter-Verbindungsverfolgung und NAT abhängig. Damit es funktioniert, müssen Sie bestimmte +iptables-Regeln konfigurieren und Policy-Routing verwenden. Weitere Informationen zur Einrichtung +finden Sie unter\\ +Documentation/networking/tproxy.rst.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``TRACE'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_TRACE [=m] \textbf{[M]}\\* +Mit dem TRACE-Ziel können Sie Pakete markieren, so dass der Kernel jede Regel protokolliert, +die mit den Paketen übereinstimmt, während diese die Tabellen, Ketten und Regeln durchlaufen. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``SECMARK'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_SECMARK [=m] \textbf{[M]}\\* +Die SECMARK-Zielvorgabe ermöglicht die Sicherheitsmarkierung von Netzpaketen zur Verwendung mit +Sicherheits"=Subsystemen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, +sagen Sie N. + +\subsubparagraph{``TCPMSS'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_TCPMSS [=m] \textbf{[M]}\\* +Diese Option fügt ein \glq TCPMSS\grq{}-Ziel hinzu, das es Ihnen erlaubt, den MSS-Wert von +TCP SYN-Paketen zu ändern, um die maximale Größe für diese Verbindung zu kontrollieren +(normalerweise wird sie auf die MTU Ihrer ausgehenden Schnittstelle minus 40 begrenzt). +Dies wird verwendet, um kriminell hirnlose ISPs oder Server zu überwinden, die ICMP Fragmentation +Needed Pakete blockieren. Dieses Problem äußert sich darin, dass von der Linux-Firewall/vom Router +aus alles gut funktioniert, aber die Rechner dahinter nie große Pakete austauschen können: +\begin{itemize} + \item Webbrowser stellen eine Verbindung her und bleiben dann hängen, ohne dass Daten empfangen werden. + \item Kleine E-Mails funktionieren gut, aber große E-Mails bleiben hängen. + \item ssh funktioniert gut, aber scp hängt sich nach dem ersten Handshaking auf. +\end{itemize} +Abhilfe: Aktivieren Sie diese Option und fügen Sie eine Regel in Ihre Firewall-Konfiguration ein, z.~B:\\[.5em] +\texttt{iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \symbol{`\\}}\\ +\texttt{\hspace*{6em} -j TCPMSS --clamp-mss-to-pmtu}\\[.5em] +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``TCPOPTSTRIP'' target support}$~$\\ +CONFIG\_NETFILTER\_XT\_TARGET\_TCPOPTSTRIP [=m] \textbf{[M]}\\* +Diese Option fügt ein \glqq TCPOPTSTRIP\grqq{}-Ziel hinzu, mit dem Sie TCP-Optionen aus TCP-Paketen +entfernen können. + +\subsubparagraph*{*** Xtables matches ***}$~$\\ +\textit{(Xtables Übereinstimmungen)} + +\subsubparagraph{``addrtype'' address type match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_ADDRTYPE [=m] \textbf{[M]}\\* +Mit dieser Option können Sie festlegen, was das Routing von einer Adresse hält, +z.~B. UNICAST, \mbox{LOCAL}, BROADCAST, ... \hspace{.5em} +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``bpf'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_BPF [=m] \textbf{[M]}\\* +Der BPF-Abgleich wendet einen Linux-Socket-Filter auf jedes Paket an und akzeptiert diejenigen, +für die der Filter einen Wert ungleich Null liefert. Um es als Modul zu kompilieren, wählen Sie +hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``control group'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CGROUP [=m] \textbf{[M]}\\* +Mit dem Socket/Prozess-Kontrollgruppenabgleich können Sie lokal erzeugte Pakete anhand der +Zugehörigkeit von Prozessen zur net\_cls-Kontrollgruppe abgleichen. + +\subsubparagraph{``cluster'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CLUSTER [=m] \textbf{[M]}\\* +Mit dieser Option können Sie arbeitsteilige Cluster von Netzwerkservern/zustandsfähigen Firewalls +aufbauen, ohne einen dedizierten Router/Server/Switch für den Lastausgleich zu haben. +Grundsätzlich gibt diese Übereinstimmung wahr zurück, wenn das Paket von diesem Clusterknoten +verarbeitet werden muss. Somit sehen alle Knoten alle Pakete und diese Übereinstimmung entscheidet, +welcher Knoten welche Pakete bearbeitet. Der Algorithmus für die Arbeitsteilung basiert auf dem +Hashing der Quelladressen. Wenn Sie hier Y oder M sagen, versuchen Sie +\texttt{iptables -m cluster --help} für weitere Informationen. + +\subsubparagraph{``comment'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_COMMENT [=m] \textbf{[M]}\\* +Diese Option fügt einen \glqq Kommentar\grqq{}-Dummy-Match hinzu, der es Ihnen erlaubt, +Kommentare in Ihren iptables-Regelsatz einzufügen. Wenn Du es als Modul kompilieren willst, +sag hier M und lies $<$file:Documentation/kbuild/modules.rst$>$. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``connbytes'' per-connection counter match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CONNBYTES [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq Connbytes\grqq{}-Übereinstimmung hinzu, mit der Sie die Anzahl +der Bytes und/oder Pakete für jede Richtung innerhalb einer Verbindung abgleichen können. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``connlabel'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CONNLABEL [=m] \textbf{[M]}\\* +Mit dieser Zuordnung können Sie benutzerdefinierte Bezeichnungen testen und einer Verbindung +zuweisen. Der Kernel speichert nur Bit-Werte -- die Zuordnung von Namen zu Bits wird vom +Userspace vorgenommen. Anders als bei connmark können einer Verbindung mehr als 32~Flaggenbits +gleichzeitig zugewiesen werden. + +\subsubparagraph{``connlimit'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CONNLIMIT [=m] \textbf{[M]}\\* +Mit diesem Abgleich können Sie die Anzahl der parallelen Verbindungen zu einem Server pro +Client-IP-Adresse (oder Adressblock) abgleichen. + +\subsubparagraph{``connmark'' connection mark match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CONNMARK [=m] \textbf{[M]}\\* +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der +Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_CONNMARK (kombiniertes +connmark/CONNMARK-Modul). + +\subsubparagraph{``conntrack'' connection tracking match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CONNTRACK [=m] \textbf{[M]}\\* +Dies ist ein allgemeines conntrack Abgleichsmodul, eine Obermenge des state match. Es ermöglicht +den Abgleich zusätzlicher Conntrack-Informationen, was in komplexen Konfigurationen wie +NAT-Gateways mit mehreren Internetverbindungen oder Tunneln nützlich ist. Um es als Modul zu +kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``cpu'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_CPU [=m] \textbf{[M]}\\* +Mit dem CPU-Abgleich können Sie Pakete auf der Grundlage der CPU abgleichen, die das Paket gerade +bearbeitet. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``dccp'' protocol match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_DCCP [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, können Sie die iptables-Übereinstimmung \glqq dccp\grqq{} verwenden, +um auf DCCP-Quell-/Zielports und DCCP-Flags zu reagieren. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``devgroup'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_DEVGROUP [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq Gerätegruppe\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung +mit der Gerätegruppe ermöglicht, der ein Netzwerkgerät zugeordnet ist. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``dscp'' and ``tos'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_DSCP [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq DSCP\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit +dem DSCP-Feld des IPv4/IPv6-Headers (Differentiated Services Codepoint) ermöglicht. Das +DSCP-Feld kann einen beliebigen Wert zwischen 0x0 und 0x3f einschließlich haben. Außerdem +wird eine \glqq tos\grqq{}-Übereinstimmung hinzugefügt, die es Ihnen ermöglicht, Pakete auf +der Grundlage der \glqq Type Of Service\grqq{}-Felder des IPv4-Pakets abzugleichen +(die dieselben Bits wie DSCP haben). Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``ecn'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_ECN [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq ECN\grqq{}-Übereinstimmung hinzu, mit der Sie die ECN-Felder +des IPv4- und TCP-Headers abgleichen können. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``esp'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_ESP [=m] \textbf{[M]}\\* +Mit dieser Abgleichserweiterung können Sie einen Bereich von SPIs im ESP-Header von +IPSec-Paketen abgleichen. Um sie als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``hashlimit'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_HASHLIMIT [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq hashlimit\grqq{}-Übereinstimmung hinzu. Im Gegensatz zu +\glqq limit\grqq{} erstellt diese Über"-ein"-stim"-mung dynamisch eine Hash-Tabelle von +Limit-Buckets, die auf Ihrer Auswahl von Quell-/"-Ziel"-adressen und/oder Ports basiert. +Sie ermöglicht es Ihnen, Richtlinien wie +\glqq 10kpps für eine bestimmte Zieladresse\grqq{} oder \glqq 500pps von einer +bestimmten Quelladresse\grqq{} mit einer einzigen Regel auszudrücken. + +\subsubparagraph{``helper'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_HASHLIMIT [=m] \textbf{[M]}\\* +Helper Matching ermöglicht es Ihnen, Pakete in dynamischen Verbindungen, die von einem +conntrack-Helper verfolgt werden, anzupassen, z.~B. nf\_conntrack\_ftp\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie Y. + +\subsubparagraph{``hl'' hoplimit/TTL match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_HL [=m] \textbf{[M]}\\* +Mit dem HL-Matching können Sie Pakete basierend auf dem Hoplimit im IPv6-Header oder dem +Time-to-Live-Feld im IPv4-Header des Pakets abgleichen. + +\subsubparagraph{``ipcomp'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_IPCOMP [=m] \textbf{[M]}\\* +Mit dieser Match-Erweiterung können Sie einen Bereich von CPIs (16 Bits) im IPComp"=Header +von IPSec"=Paketen abgleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``iprange'' address range match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_IPRANGE [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq iprange\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, +eine Übereinstimmung auf der Grundlage eines IP-Adressbereichs zu erzielen. +(Normalerweise passt iptables nur auf einzelne Adressen mit einer optionalen Maske.) +Wenn Sie unsicher sind, sagen Sie M. + +\subsubparagraph{``ipvs'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_IPVS [=m] \textbf{[M]}\\* +Mit dieser Option können Sie die IPVS-Eigenschaften eines Pakets abgleichen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``l2tp'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_L2TP [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq L2TP\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, +die Header"=Felder des L2TP"=Protokolls abzugleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``length'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_LENGTH [=m] \textbf{[M]}\\* +Mit dieser Option können Sie die Länge eines Pakets mit einem bestimmten Wert oder einer +Reihe von Werten vergleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``limit'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_LIMIT [=m] \textbf{[M]}\\* +Mit dem Limit-Matching können Sie die Rate kontrollieren, mit der eine Regel abgeglichen +werden kann: Dies ist vor allem in Kombination mit dem LOG-Target (\glqq LOG-Target-Unterstützung\grqq{}, +unten) und zur Vermeidung einiger Denial-of-Service-Angriffe nützlich. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``mac'' address match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_MAC [=m] \textbf{[M]}\\* +Mit dem MAC-Abgleich können Sie Pakete auf der Grundlage der Ethernet-Quelladresse des Pakets +abgleichen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``mark'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_MARK [=m] \textbf{[M]}\\* +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung +von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MARK (kombiniertes Mark/MARK-Modul). + +\subsubparagraph{``multiport'' Multiple port match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_MULTIPORT [=m] \textbf{[M]}\\* +Mit dem Multiport-Matching können Sie TCP- oder UDP-Pakete auf der Grundlage einer Reihe von Quell- +oder Zielports abgleichen: Normalerweise kann eine Regel nur einen einzigen Bereich von Ports +abgleichen. Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``nfacct'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_NFACCT [=m] \textbf{[M]}\\* +Mit dieser Option können Sie die erweiterte Buchhaltung über nfnetlink\_acct verwenden. Um es als +Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``osf'' Passive OS fingerprint match}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_OSF [=m] \textbf{[M]}\\* +Mit dieser Option wird das Modul Passive OS Fingerprinting ausgewählt, das einen passiven Abgleich +des entfernten Betriebssystems durch die Analyse eingehender TCP SYN-Pakete ermöglicht. Die Regeln +und die Ladesoftware können von der Website \url{http://www.ioremap.net/projects/osf} +heruntergeladen werden. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``owner'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_OWNER [=m] \textbf{[M]}\\* +Mit dem Socket-Eigentümer-Abgleich können Sie lokal erzeugte Pakete danach abgleichen, wer den +Socket erstellt hat: der Benutzer oder die Gruppe. Es ist auch möglich, zu prüfen, ob ein Socket +tatsächlich existiert. + +\subsubparagraph{IPSEC ``policy'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_POLICY [=m] \textbf{[M]}\\* +Der Richtlinienabgleich ermöglicht es Ihnen, Pakete auf der Grundlage der IPsec-Richtlinie +abzugleichen, die bei der Entkapselung verwendet wurde bzw. bei der Einkapselung verwendet +werden wird. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``physdev'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_PHYSDEV [=m] \textbf{[M]}\\* +Der Physdev-Paketabgleich gleicht die physischen Bridge-Ports ab, an denen das IP-Paket angekommen +ist oder die es verlassen wird. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``pkttype'' packet type match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_PKTTYPE [=m] \textbf{[M]}\\* +Der Pakettyp-Abgleich ermöglicht es Ihnen, ein Paket anhand seiner \glqq Klasse\grqq{} abzugleichen, +z.~B. BROADCAST, MULTICAST, ...\\ +Typische Verwendung:\\[.5em] +\texttt{iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG}\\[.5em] +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``quota'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_QUOTA [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq quota\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit +einem Byte-Zähler ermöglicht. Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und +lesen Sie\\ +$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``rateest'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_RATEEST [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq Rateest\grqq{}-Übereinstimmung hinzu, die eine Übereinstimmung mit +der durch das RATEEST-Ziel geschätzten Rate ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``realm'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_REALM [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq realm\grqq{}-Übereinstimmung hinzu, die es Ihnen erlaubt, den +Realm-Schlüssel aus dem Routing-Subsystem innerhalb von iptables zu verwenden. Diese +Übereinstimmung ähnelt ziemlich genau der Option CONFIG\_NET\_CLS\_ROUTE4 in tc world. +Wenn Du es als Modul kompilieren willst, sage hier M und lies +$<$file:Documentation/kbuild/modules.rst$>$. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``recent'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_RECENT [=m] \textbf{[M]}\\* +Dieser Abgleich wird verwendet, um eine oder mehrere Listen mit kürzlich verwendeten Adressen +zu erstellen und dann einen Abgleich mit dieser Liste bzw. diesen Listen durchzuführen. +Kurze Optionen sind verfügbar, indem man \texttt{iptables -m recent -h} verwendet. +Offizielle Website: \url{http://snowman.net/projects/ipt_recent/} + +\subsubparagraph{``sctp'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_SCTP [=m] \textbf{[M]}\\* +Wenn diese Option aktiviert ist, können Sie die \glqq sctp\grqq{}-Übereinstimmung verwenden, +um auf SCTP"=Quell\mbox{-/}Zielports und SCTP"=Chunk"=Typen abzustimmen. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und +lesen Sie $<$file:Documentation/kbuild/modules.rst$>$. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``socket'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_SOCKET [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq Socket\grqq{}-Übereinstimmung hinzu, die verwendet werden kann, +um Pakete zu finden, für die ein TCP- oder UDP-Socket-Lookup einen gültigen Socket findet. +Sie kann in Kombination mit dem MARK-Ziel und dem Policy-Routing verwendet werden, um voll +funktionsfähige, nicht ortsgebundene Sockets zu implementieren. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``state'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_STATE [=m] \textbf{[M]}\\* +Mit dem Verbindungsstatusabgleich können Sie Pakete auf der Grundlage ihrer Beziehung +zu einer verfolgten Verbindung (d.~h. früheren Paketen) abgleichen. Dies ist ein +leistungsfähiges Werkzeug zur Klassifizierung von Paketen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``statistic'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_STATISTIC [=m] \textbf{[M]}\\* +Diese Option fügt einen \glqq statistischen\grqq{} Abgleich hinzu, der es ermöglicht, +Pakete periodisch oder zufällig mit einem bestimmten Prozentsatz abzugleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``string'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_STRING [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq String\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, +nach Muster"-über"-ein"-stim"-mungen in Paketen zu suchen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``tcpmss'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_TCPMSS [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq tcpmss\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, +den MSS-Wert von TCP SYN-Paketen zu untersuchen, der die maximale Paketgröße für diese +Verbindung kontrolliert. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``time'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_TIME [=m] \textbf{[M]}\\* +Diese Option fügt eine \glqq Zeit\grqq{}-Übereinstimmung hinzu, die es Ihnen ermöglicht, +eine Übereinstimmung auf der Grundlage der Ankunftszeit des Pakets +(auf dem Rechner, auf dem der Netfilter läuft) oder der Abfahrtszeit/des Abfahrtsdatums +(für lokal erzeugte Pakete) zu erzielen. Wenn Sie hier Y für Ja sagen, versuchen Sie +\texttt{iptables -m time --help} um weitere Informationen zu erhalten. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``u32'' match support}$~$\\ +CONFIG\_NETFILTER\_XT\_MATCH\_U32 [=m] \textbf{[M]}\\* +u32 ermöglicht es Ihnen, Mengen von bis zu 4 Bytes aus einem Paket zu extrahieren, sie mit +bestimmten Masken mit UND zu verknüpfen, sie um bestimmte Beträge zu verschieben und zu prüfen, +ob die Ergebnisse in einem der angegebenen Bereiche liegen. +Die Angabe, was extrahiert werden soll, ist allgemein genug, um Header mit im Paket +gespeicherten Längen, wie z.~B. IP- oder TCP-Header-Längen, zu überspringen. +Details und Beispiele sind im Quelltext des Kernelmoduls zu finden. + +\paragraph{IP set support} \texorpdfstring{$\rightarrow$}{->}$~$\\ +CONFIG\_IP\_SET [=m] \textbf{[M]}\\* +Diese Option erweitert den Kernel um die Unterstützung von IP-Sets. Um die Sets zu definieren +und zu verwenden, benötigen Sie das Userspace-Dienstprogramm ipset(8). Sie können die Sets in +netfilter über die \glqq set\grqq{}-Übereinstimmung und das \glqq SET\grqq{}-Ziel verwenden. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Maximum number of IP sets}$~$\\ +CONFIG\_IP\_SET\_MAX [=256] \textbf{[256]}\\ +Sie können hier den Standardwert für die maximale Anzahl von IP-Sets für den Kernel festlegen. +Der Wert kann durch den Modulparameter \glqq max\_sets\grqq{} des Moduls \glqq ip\_set\grqq{} +überschrieben werden.\\[.5em] +Symbol: IP\_SET\_MAX [=256]\\ +Type : Ganzzahl (integer)\\ +Bereich: [2 65534] + +\subparagraph{bitmap:ip set support}$~$\\ +CONFIG\_IP\_SET\_BITMAP\_IP [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs bitmap:ip set hinzu, mit dem man IPv4-Adressen +(oder Netzwerkadressen) aus einem Bereich speichern kann.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{bitmap:ip,mac set support}$~$\\ +CONFIG\_IP\_SET\_BITMAP\_IPMAC [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs bitmap:ip,mac set hinzu, mit dem man Paare +von IPv4-Adressen und (Quell-)MAC-Adressen aus einem Bereich speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{bitmap:port set support}$~$\\ +CONFIG\_IP\_SET\_BITMAP\_PORT [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs bitmap:port set hinzu, mit dem man +TCP/UDP"=Portnummern aus einem Bereich speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IP [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip set hinzu, mit dem man beliebige +IPv4- oder IPv6-Adressen (oder Netzwerkadressen) in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip,mark set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IPMARK [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip,mark set hinzu, mit dem man +IPv4/IPv6-Adress- und Markenpaare speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip,port set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IPPORT [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip,port set hinzu, mit dem man +IPv4/IPv6-Adressen und Protokoll/Port-Paare speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip,port,ip set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IPPORTIP [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip,port,ip set hinzu, mit dem man +IPv4/IPv6-Adress-, Protokoll/Port- und IPv4/IPv6-Adress-Tripel in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip,port,net set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IPPORTNET [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip,port,net hinzu, mit dem man +IPv4/IPv6"=Adress-, Protokoll/Port- und IPv4/IPv6"=Netzwerkadressen/Präfix"=Tripel in +einem Set speichern kann.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:ip,mac set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_IPMAC [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:ip,mac set hinzu, mit dem man Paare +von IPv4/IPv6-Adressen und MAC (Ethernet-Adresse) in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:mac set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_MAC [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:mac set hinzu, mit dem man +MAC"=Elemente (Ethernet"=Adressen) in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:net,port,net set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_NETPORTNET [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:net,port,net set hinzu, mit dem man +zwei IPv4/IPv6-Subnetze und ein Protokoll/Port in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + + +\subparagraph{hash:net set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_NET [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:net set hinzu, mit dem man +IPv4/IPv6"=Netzwerkadressen/Präfixe in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:net,net set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_NETNET [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:net,net set hinzu, mit dem man +IPv4/IPv6"=Netzwerkadressen/Präfixpaare in einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:net,port set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_NETPORT [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:net,port set hinzu, mit dem +man IPv4/IPv6"=Netzwerkadressen/Präfix und Protokoll/Port"=Paare als Elemente in einem +Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{hash:net,iface set support}$~$\\ +CONFIG\_IP\_SET\_HASH\_NETIFACE [=m] \textbf{[M]}\\ +Diese Option fügt die Unterstützung des Typs hash:net,port set hinzu, mit dem man +IPv4/IPv6"=Netzwerkadressen/Präfix und Schnittstellennamenpaare als Elemente in +einem Set speichern kann. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{list:set set support}$~$\\ +CONFIG\_IP\_SET\_LIST\_SET [=m] \textbf{[M]}\\ +Mit dieser Option wird die Unterstützung des Typs list:set hinzugefügt. In dieser Art +von Set kann man den Namen anderer Sets speichern und es bildet eine geordnete +Vereinigung der Mitglieds"=Sets. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{IP virtual server support \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_IP\_VS [=m] \textbf{[M]}\\ +Mit der Unterstützung von IP Virtual Server können Sie einen hochleistungsfähigen virtuellen +Server auf der Grundlage eines Clusters von zwei oder mehr realen Servern erstellen. Diese +Option muss für mindestens einen der Computer im Cluster aktiviert werden, der die eingehenden +Verbindungen zu einer einzelnen IP-Adresse abfängt und sie an reale Server weiterleitet.\\ +Es sind drei Techniken zur Verteilung von Anfragen implementiert: virtueller Server über NAT, +virtueller Server über Tunneling und virtueller Server über direktes Routing. +Mit Hilfe der verschiedenen Planungs"-algorithmen kann ausgewählt werden, zu welchem Server die +Verbindung geleitet wird, so dass ein Lastausgleich zwischen den Servern erreicht werden kann. +Weitere Informationen und das Verwaltungsprogramm finden Sie unter der folgenden URL: +\url{http://www.linuxvirtualserver.org/}.\\ +Wenn Sie es im Kernel kompilieren wollen, geben Sie Y an. Um es als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IPv6 support for IPVS}$~$\\ +CONFIG\_IP\_VS\_IPV6 [=y] \textbf{[Y]}\\ +Hinzufügen von IPv6-Unterstützung zu IPVS. +Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph{IP virtual server debugging}$~$\\ +CONFIG\_IP\_VS\_DEBUG [=n] \textbf{[N]}\\ +Geben Sie hier Y ein, wenn Sie zusätzliche Meldungen erhalten möchten, die bei der Fehlersuche +im Code des virtuellen IP"=Servers nützlich sind. Sie können die Debug"=Ebene +in /proc/sys/net/ipv4/vs/debug\_level ändern. + +\subparagraph{IPVS connection table size (the Nth power of 2)}$~$\\ +CONFIG\_IP\_VS\_TAB\_BITS [=15] \textbf{[15]}\\ +\textit{Größe der IPVS-Verbindungstabelle (die n-te Potenz von 2)}\\ +Die IPVS-Verbindungs-Hashtabelle verwendet das Verkettungsschema, um Hash-Kollisionen zu behandeln. +Durch die Verwendung einer großen IPVS"=Verbindungs"=Hashtabelle werden Konflikte bei +Hunderttausenden von Verbindungen in der Hashtabelle erheblich reduziert.\\ +Beachten Sie, dass die Tabellengröße eine Potenz von 2 sein muss. Die Tabellengröße ist der +Wert von 2~hoch der von Ihnen eingegebenen Zahl. Die zu wählende Zahl liegt zwischen 8 und 27 +für 64BIT (sonst 20), die Standardzahl ist 12, was eine Tabellengröße von 4096 bedeutet. +Geben Sie die Zahl nicht zu klein ein, sonst verlieren Sie Leistung. Sie können die +Tabellengröße selbst anpassen, je nach Ihrer virtuellen Serveranwendung. Es ist gut, die +Tabellengröße nicht viel kleiner als die Anzahl der Verbindungen pro Sekunde, multipliziert +mit der durchschnittlichen Dauer der Verbindung in der Tabelle, festzulegen. +Zum Beispiel, Ihr virtueller Server bekommt 200~Verbindungen pro Sekunde, die Verbindung dauert +im Durchschnitt 200~Sekunden in der Verbindungstabelle, die Tabellengröße sollte nicht viel +kleiner als 200x200 sein, es ist gut, die Tabellengröße 32768 (2**15) zu setzen. +Ein weiterer Hinweis: Jede Verbindung belegt effektiv 128~Bytes und jeder Hash-Eintrag 8~Bytes, +so dass Sie abschätzen können, wie viel Speicher für Ihre Box benötigt wird.\\ +Sie können diese Zahl überschreiben, indem Sie den Modulparameter +conn\_tab\_bits setzen oder indem Sie \texttt{ip\_vs.conn\_tab\_bits=?} an die +Kernel"=Befehlszeile anhängen, wenn IP VS integriert kompiliert wurde. +Symbol: IP\_VS\_TAB\_BITS [=15]\\ +Typ: Ganzzahl (integer)\\ +Bereich (range): [8 27] + +\subparagraph*{*** IPVS transport protocol load balancing support ***}$~$\\ +\textit{(*** Unterstützung des IPVS-Transportprotokolls für den Lastausgleich ***)} + +\subparagraph{TCP load balancing support}$~$\\ +CONFIG\_IP\_VS\_PROTO\_TCP [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung des TCP-Transportprotokolls für den Lastausgleich. +Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph{UDP load balancing support}$~$\\ +CONFIG\_IP\_VS\_PROTO\_UDP [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung des UDP-Transportprotokolls für den Lastausgleich. +Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph{ESP load balancing support}$~$\\ +CONFIG\_IP\_VS\_PROTO\_ESP [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung des Transportprotokolls ESP (Encapsulation Security +Payload) für den Lastausgleich. Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph{AH load balancing support}$~$\\ +CONFIG\_IP\_VS\_PROTO\_AH [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung für den Lastausgleich des AH +(Authentication Header)"=Transportprotokolls. Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph{SCTP load balancing support}$~$\\ +CONFIG\_IP\_VS\_PROTO\_SCTP [=y] \textbf{[Y]}\\ +Diese Option aktiviert die Unterstützung des SCTP-Transportprotokolls für den Lastausgleich. +Sagen Sie Y, wenn Sie unsicher sind. + +\subparagraph*{*** IPVS scheduler ***}$~$\\ +\textit{(*** IPVS-Scheduler/Zeitplaner ***)} + +\subparagraph{round-robin scheduling}$~$\\ +CONFIG\_IP\_VS\_RR [=m] \textbf{[M]}\\ +Der Round-Robin-Scheduling-Algorithmus leitet die Netzverbindungen einfach nach dem +Rotationsprinzip an verschiedene reale Server weiter. +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{weighted round-robin scheduling}$~$\\ +CONFIG\_IP\_VS\_WRR [=m] \textbf{[M]}\\ +Der gewichtete Round-Robin-Planungsalgorithmus leitet Netzverbindungen auf der Grundlage von +Server"-gewichten in einem Round-Robin-Verfahren an verschiedene reale Server weiter. +Server mit höherer Gewichtung erhalten neue Verbindungen zuerst als solche mit geringerer +Gewichtung, und Server mit höherer Gewichtung erhalten mehr Verbindungen als solche mit +geringerer Gewichtung und Server mit gleicher Gewichtung erhalten gleiche Verbindungen. +Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{least-connection scheduling}$~$\\ +CONFIG\_IP\_VS\_LC [=m] \textbf{[M]}\\ +Der Least-Connection-Scheduling-Algorithmus leitet Netzwerkverbindungen an den Server +mit der geringsten Anzahl aktiver Verbindungen weiter. +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{weighted least-connection scheduling}$~$\\ +CONFIG\_IP\_VS\_WLC [=m] \textbf{[M]}\\ +Der gewichtete Least-Connection-Scheduling-Algorithmus leitet die Netzwerkverbindungen zu +dem Server mit den wenigsten aktiven Verbindungen, normalisiert durch das Servergewicht. +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{weighted failover scheduling}$~$\\ +CONFIG\_IP\_VS\_FO [=m] \textbf{[M]}\\ +Der gewichtete Failover-Planungsalgorithmus leitet die Netzwerkverbindungen an den Server +mit der höchsten Gewichtung, der gerade verfügbar ist. Wenn Sie ihn im Kernel kompilieren +wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{weighted overflow scheduling}$~$\\ +CONFIG\_IP\_VS\_OVF [=m] \textbf{[M]}\\ +Der gewichtete Überlaufplanungsalgorithmus leitet die Netzwerkverbindungen zu dem Server +mit dem höchsten Gewicht, der gerade verfügbar ist, und geht zum nächsten über, wenn die +aktiven Verbindungen das Gewicht des Knotens überschreiten. +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{locality-based least-connection scheduling}$~$\\ +CONFIG\_IP\_VS\_LBLC [=m] \textbf{[M]}\\ +Der ortsbezogene Planungsalgorithmus für die kleinste Verbindung ist für den +IP-Lastausgleich bestimmt. Er wird normalerweise in Cache-Clustern verwendet. +Dieser Algorithmus leitet Pakete, die für eine IP-Adresse bestimmt sind, in der +Regel an ihren Server weiter, wenn der Server aktiv und ausgelastet ist. Wenn +der Server überlastet ist (die Anzahl seiner aktiven Verbindungen ist größer als +sein Gewicht) und es einen Server mit halber Auslastung gibt, wird dieser +IP"=Adresse der gewichtete Server mit der geringsten Verbindung zugewiesen. +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. Um ihn als Modul zu +kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{locality-based least-connection with replication scheduling}$~$\\ +CONFIG\_IP\_VS\_LBLCR [=m] \textbf{[M]}\\ +Der ortsbezogene Algorithmus zur Planung der kleinsten Verbindung mit Replikation ist +ebenfalls für den IP"=Lastausgleich bestimmt. Er wird normalerweise in Cache"=Clustern +verwendet. Er unterscheidet sich von der LBLC"=Planung wie folgt: Der Lastverteiler +unterhält Zuordnungen von einem Ziel zu einer Gruppe von Serverknoten, die das Ziel +bedienen können. Anfragen für ein Ziel werden dem Knoten mit der geringsten Verbindung +in der Servergruppe des Ziels zugewiesen. Wenn alle Knoten in der Servergruppe überlastet +sind, wird ein Knoten mit der geringsten Verbindung im Cluster ausgewählt und der +Servergruppe für das Ziel hinzugefügt. Wenn der Serversatz für die angegebene Zeit nicht +geändert wurde, wird der am stärksten belastete Knoten aus dem Serversatz entfernt, um +ein hohes Maß an Replikation zu vermeiden. +Wenn Sie es im Kernel kompilieren wollen, geben Sie Y an. Um es als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{destination hashing scheduling}$~$\\ +CONFIG\_IP\_VS\_DH [=m] \textbf{[M]}\\ +Der Ziel-Hash-Scheduling-Algorithmus weist den Servern Netzwerkverbindungen zu, indem er +eine statisch zugewiesene Hash-Tabelle nach ihren Ziel-IP-Adressen durchsucht. +Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{source hashing scheduling}$~$\\ +CONFIG\_IP\_VS\_SH [=m] \textbf{[M]}\\ +Der Source-Hashing-Scheduling-Algorithmus weist den Servern Netzwerkverbindungen zu, indem +er eine statisch zugewiesene Hash-Tabelle nach ihren Quell-IP-Adressen durchsucht. +Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. Um ihn als Modul zu kompilieren, +wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{maglev hashing scheduling}$~$\\ +CONFIG\_IP\_VS\_MH [=m] \textbf{[M]}\\ +Der Maglev Consistent Hashing Scheduling Algorithmus stellt den Maglev Hashing Algorithmus +von Google als IPVS Scheduler zur Verfügung. Er weist den Servern Netzwerkverbindungen zu, +indem er eine statisch zugewiesene spezielle Hash"=Tabelle, die so genannte Lookup"=Tabelle, +nachschlägt. Der Maglev"=Hash"=Algorithmus weist jedem Ziel eine Präferenzliste aller Positionen +der Nachschlagetabelle zu.\\ +Durch diesen Vorgang gibt das Maglev-Hashing jedem der Ziele einen nahezu gleichen Anteil an +der Nach"-schlage"-tabelle und sorgt für eine minimale Störung durch die Verwendung der +Nachschlagetabelle. Wenn sich die Menge der Ziele ändert, wird eine Verbindung wahrscheinlich +an dasselbe Ziel wie zuvor gesendet.\\ +Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{shortest expected delay scheduling}$~$\\ +CONFIG\_IP\_VS\_SED [=m] \textbf{[M]}\\ +Der Scheduling-Algorithmus mit der kürzesten erwarteten Verzögerung weist die Netzverbindungen +dem Server mit der kürzesten erwarteten Verzögerung zu. Die erwartete Verzögerung, die der +Auftrag erfährt, ist $(C_i + 1) / U_i$, wenn er an den i-ten Server gesendet wird, wobei $C_i$ +die Anzahl der Verbindungen auf dem i-ten Server und $U_i$ die feste Dienstrate (Gewicht) des +i-ten Servers ist.\\ +Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{never queue scheduling}$~$\\ +CONFIG\_IP\_VS\_NQ [=m] \textbf{[M]}\\ +Der Algorithmus für die Planung der Warteschlange \glqq Never Queue\grqq{} basiert auf einem Modell mit +zwei Geschwindigkeiten. Wenn ein ungenutzter Server verfügbar ist, wird der Auftrag an den +ungenutzten Server geschickt, anstatt auf einen schnellen Server zu warten. Wenn kein freier +Server verfügbar ist, wird der Auftrag an den Server geschickt, bei dem die erwartete Verzögerung +am geringsten ist (Scheduling"=Algorithmus mit der kürzesten erwarteten Verzögerung).\\ +Wenn Sie ihn im Kernel kompilieren wollen, geben Sie Y an. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{weighted random twos choice least-connection scheduling}$~$\\ +CONFIG\_IP\_VS\_TWOS [=m] \textbf{[M]}\\ +Der Algorithmus für die gewichtete zufällige Zweierauswahl der geringsten Verbindungen wählt zwei zufällige +reale Server aus und leitet die Netzverbindungen zu dem Server mit den wenigsten aktiven Verbindungen, +normiert durch das Servergewicht.\\ +Wenn Sie ihn im Kernel kompilieren wollen, sagen Sie Y. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph*{*** IPVS SH scheduler ***}$~$\\ +\textit{(*** IPVS-SH-Scheduler/Zeitplaner ***)} + +\subparagraph{IPVS source hashing table size (the Nth power of 2)}$~$\\ +CONFIG\_IP\_VS\_SH\_TAB\_BITS [=8] \textbf{[8]}\\ +Der Quell-Hashing-Scheduler ordnet Quell-IPs den in einer Hash-Tabelle gespeicherten Zielen zu. +Diese Tabelle wird für jedes Ziel so lange abgearbeitet, bis alle Plätze in der Tabelle gefüllt sind. +Wenn Gewichte verwendet werden, damit die Ziele mehr Verbindungen erhalten können, wird die Tabelle +proportional zu den angegebenen Gewichten gekachelt. Die Tabelle muss groß genug sein, um alle Ziele, +multipliziert mit ihren jeweiligen Gewichten, effektiv aufzunehmen. +Symbol: IP\_VS\_SH\_TAB\_BITS [=8]\\ +Typ: Ganzzahl (integer)\\ +Bereich: [4 20] + +\subparagraph*{*** IPVS MH scheduler ***}$~$\\ +\textit{(*** IPVS-MH-Scheduler/Zeitplaner ***)} + +\subparagraph{IPVS maglev hashing table index of size (the prime numbers)}$~$\\ +CONFIG\_IP\_VS\_MH\_TAB\_INDEX [=12] \textbf{[12]}\\ +Der Maglev-Hashing-Scheduler ordnet Quell-IPs Zielen zu, die in einer Hash-Tabelle gespeichert sind. +Diese Tabelle wird durch eine Präferenzliste der Positionen jedem Ziel zugewiesen, bis alle Slots in +der Tabelle gefüllt sind. Der Index bestimmt die Primzahl für die Größe der Tabelle: 251, 509, 1021, +2039, 4093, 8191, 16381, 32749, 65521 oder 131071. Bei der Verwendung von Gewichtungen, die es den +Zielen ermöglichen, mehr Verbindungen zu erhalten, wird der Tabelle ein Betrag proportional zu den +angegebenen Gewichtungen zugewiesen. Die Tabelle muss groß genug sein, um alle Ziele, multipliziert +mit ihren jeweiligen Gewichtungen, effektiv aufzunehmen.\\ +Symbol: IP\_VS\_MH\_TAB\_INDEX [=12]\\ +Typ : Ganzzahl (integer)\\ +Bereich : [8 17] + +\subparagraph*{*** IPVS application helper ***}$~$\\ +\textit{(*** IPVS-Anwendungshilfe ***)} + +\subparagraph{FTP protocol helper}$~$\\ +CONFIG\_IP\_VS\_FTP [=m] \textbf{[M]}\\ +FTP ist ein Protokoll, das IP-Adressen und/oder Portnummern in der Nutzlast überträgt. +Im virtuellen Server über Network Address Translation können die IP-Adresse und die Portnummer +des realen Servers nicht direkt an die Clients in FTP-Verbindungen gesendet werden, so dass +ein FTP-Protokollhelfer erforderlich ist, um die Verbindung zu verfolgen und sie in die des +virtuellen Dienstes zurückzuverwandeln.\\ +Wenn Sie es im Kernel kompilieren wollen, sagen Sie Y. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Netfilter connection tracking}$~$\\ +CONFIG\_IP\_VS\_NFCT [=y] \textbf{[Y]}\\ +Durch die Unterstützung der Netfilter-Verbindungsverfolgung kann der IPVS-Verbindungsstatus +zu Filterzwecken in das Netfilter-Framework exportiert werden. + +\subparagraph{SIP persistence engine}$~$\\ +CONFIG\_IP\_VS\_PE\_SIP [=m] \textbf{[M]}\\ +Persistenz auf Basis der SIP Call-ID zulassen + +\paragraph{IP: Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ +\textit{IP: Netzfilter-Konfiguration} + +\subparagraph{IPv4 socket lookup support}$~$\\ +CONFIG\_NF\_SOCKET\_IPV4 [=m] \textbf{[M]}\\ +Diese Option aktiviert die IPv4-Socket-Lookup-Infrastruktur. Dies ist für die +Socket-Übereinstimmung \{ip,nf\}tables erforderlich. + +\subparagraph{IPv4 tproxy support}$~$\\ +CONFIG\_NF\_TPROXY\_IPV4 [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{IPv4 nf\_tables support}$~$\\ +CONFIG\_NF\_TABLES\_IPV4 [=y] \textbf{[Y]}\\ +Diese Option aktiviert die IPv4-Unterstützung für nf\_tables. + +\subsubparagraph{IPv4 nf\_tables packet duplication support}$~$\\ +CONFIG\_NFT\_DUP\_IPV4 [=y] \textbf{[Y]}\\ +Dieses Modul ermöglicht die Unterstützung der IPv4-Paketduplikation für nf\_tables. + +\subsubparagraph{nf\_tables fib / ip route lookup support}$~$\\ +CONFIG\_NFT\_FIB\_IPV4 [=m] \textbf{[M]}\\ +Dieses Modul ermöglicht IPv4-FIB-Lookups, z.~B. für Reverse Path Filtering. +Es ermöglicht auch die Abfrage der FIB nach dem Routentyp, z.~B. lokal, Unicast, +Multicast oder Blackhole. + +\subparagraph{ARP nf\_tables support}$~$\\ +CONFIG\_NF\_TABLES\_ARP [=y] \textbf{[Y]}\\ +Diese Option aktiviert die ARP-Unterstützung für nf\_tables. + +\subparagraph{Netfilter IPv4 packet duplication to alternate destination}$~$\\ +CONFIG\_NF\_DUP\_IPV4 [=m] \textbf{[M]}\\ +Diese Option aktiviert den nf\_dup\_ipv4"=Kern, der ein IPv4"=Paket dupliziert, +um es an ein anderes Ziel umzuleiten. + +\subparagraph{ARP packet logging}$~$\\ +CONFIG\_NF\_LOG\_ARP [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. + +\subparagraph{IPv4 packet logging}$~$\\ +CONFIG\_NF\_LOG\_IPV4 [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. + +\subparagraph{IPv4 packet rejection}$~$\\ +CONFIG\_NF\_REJECT\_IPV4 [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{Basic SNMP-ALG support}$~$\\ +CONFIG\_NF\_NAT\_SNMP\_BASIC [=m] \textbf{[M]}\\ +Dieses Modul implementiert ein Application Layer Gateway (ALG) für SNMP"=Payloads. +In Verbindung mit NAT ermöglicht es einem Netzwerkmanagementsystem den Zugang zu +mehreren privaten Netzwerken mit widersprüchlichen Adressen. Dabei werden die IP-Adressen +in den SNMP-Payloads so geändert, dass sie mit der IP-Layer-NAT-Zuordnung übereinstimmen. +Dies ist die \glqq Grundform\grqq{} von SNMP"=ALG, wie in RFC~2962 beschrieben.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{IP tables support (required for filtering/masq/NAT)}$~$\\ +CONFIG\_IP\_NF\_IPTABLES [=m] \textbf{[M]}\\ +iptables ist ein allgemeines, erweiterbares Framework zur Paketidentifizierung. +Die Subsysteme fuer Paketfilterung und vollstaendiges NAT (Masquerading, Portweiterleitung, etc.) +benutzen dies nun: sage hier Y oder M, wenn Du eines davon benutzen willst. +Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``ah'' match support}$~$\\ +CONFIG\_IP\_NF\_MATCH\_AH [=m] \textbf{[M]}\\ +Mit dieser Match-Erweiterung können Sie einen Bereich von SPIs im AH-Header von IPSec-Paketen abgleichen. +Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``ecn'' match support}$~$\\ +CONFIG\_IP\_NF\_MATCH\_ECN [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_ECN aus. + +\subsubparagraph{``rpfilter'' reverse path filter match support}$~$\\ +CONFIG\_IP\_NF\_MATCH\_RPFILTER [=m] \textbf{[M]}\\ +Mit dieser Option können Sie Pakete abgleichen, deren Antworten über die Schnittstelle hinausgehen würden, +über die das Paket eingegangen ist. +Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. Das Modul wird \texttt{ipt\_rpfilter} heißen. + +\subsubparagraph{``ttl'' match support}$~$\\ +CONFIG\_IP\_NF\_MATCH\_TTL [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_HL aus. + +\subsubparagraph{Packet filtering}$~$\\ +CONFIG\_IP\_NF\_FILTER [=m] \textbf{[M]}\\ +Paketfilterung definiert eine Tabelle \texttt{filter}, die eine Reihe von Regeln für einfache +Paketfilterung bei der lokalen Eingabe, Weiterleitung und lokalen Ausgabe enthält. Siehe die Manpage +für iptables(8).\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{REJECT target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_REJECT [=m] \textbf{[M]}\\ +Mit dem REJECT-Ziel kann eine Filterregel angeben, dass als Antwort auf ein eingehendes Paket +ein ICMP-Fehler ausgegeben werden soll, anstatt es stillschweigend zu verwerfen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{SYNPROXY target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_SYNPROXY [=m] \textbf{[M]}\\ +Das SYNPROXY-Ziel ermöglicht es Ihnen, TCP-Verbindungen abzufangen und sie unter Verwendung von +Syncookies aufzubauen, bevor sie an den Server weitergeleitet werden. Auf diese Weise können Sie +die Verfolgung von Verbindungen und die Nutzung von Serverressourcen bei SYN-Flood-Angriffen vermeiden.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +%14.1.15.5.10.7 +\subsubparagraph{iptables NAT support}$~$\\ +CONFIG\_IP\_NF\_NAT [=m] \textbf{[M]}\\ +Dies aktiviert die \texttt{nat}-Tabelle in iptables. Dies erlaubt Masquerading, Portweiterleitung und +andere Formen der vollständigen Network Address Port Translation. +Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{MASQUERADE target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt NETFILTER\_XT\_TARGET\_MASQUERADE aus. + +\subsubsubparagraph{NETMAP target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_NETMAP [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung +von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_NETMAP aus. + +\subsubsubparagraph{REDIRECT target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_REDIRECT [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers (z.~B. bei der Ausführung +von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_REDIRECT aus. + +\subsubparagraph{Packet mangling}$~$\\ +CONFIG\_IP\_NF\_MANGLE [=m] \textbf{[M]}\\ +Diese Option fügt eine \glqq mangle\grqq{}-Tabelle zu iptables hinzu: siehe die Manpage für +iptables(8). +Diese Tabelle wird fuer verschiedene Paketveraenderungen benutzt, die beeinflussen koennen, +wie das Paket weitergeleitet wird. +Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{ECN target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_ECN [=m] \textbf{[M]}\\ +Diese Option fügt ein \glqq ECN\grqq{}-Ziel hinzu, das in der iptables"=Mangeltabelle verwendet +werden kann. +Sie können dieses Ziel verwenden, um die ECN-Bits aus dem IPv4-Header eines IP-Pakets zu entfernen. +Dies ist besonders nützlich, wenn Sie bestehende ECN-Blackholes im Internet umgehen müssen, +aber die ECN-Unterstützung nicht generell abschalten wollen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{``TTL'' target support}$~$\\ +CONFIG\_IP\_NF\_TARGET\_TTL [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option, die dem Benutzer die Arbeit erleichtert (z.~B. wenn +er oldconfig verwendet). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_HL aus. + +\subsubparagraph{raw table support (required for NOTRACK/TRACE)}$~$\\ +CONFIG\_IP\_NF\_RAW [=m] \textbf{[M]}\\ +Diese Option fügt eine "rohe" Tabelle zu iptables hinzu. Diese Tabelle ist die allererste im +Netfilter-Framework und hakt sich bei den PREROUTING- und OUTPUT"=Ketten ein. +Wenn Sie sie als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{Security table}$~$\\ +CONFIG\_IP\_NF\_SECURITY [=m] \textbf{[M]}\\ +Diese Option fügt eine \glqq Security\grqq{}-Tabelle zu iptables hinzu, für die Verwendung +mit der Mandatory Access Control (MAC) Richtlinie. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ARP tables support}$~$\\ +CONFIG\_IP\_NF\_ARPTABLES [=m] \textbf{[M]}\\ +arptables ist ein allgemeiner, erweiterbarer Rahmen für die Paketidentifizierung. Die +ARP-Paketfilter- und -Manipulations-Subsysteme verwenden es: Sagen Sie hier Y oder M, +wenn Sie eines von beiden verwenden wollen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{ARP packet filtering}$~$\\ +CONFIG\_IP\_NF\_ARPFILTER [=m] \textbf{[M]}\\ +Die ARP-Paketfilterung definiert eine Tabelle \glqq filter\grqq{}, die eine Reihe von +Regeln für die einfache ARP"=Paketfilterung am lokalen Eingang und am lokalen Ausgang enthält. +Auf einer Bridge können Sie auch Filterregeln für weitergeleitete ARP-Pakete angeben. +Siehe die Manpage für arptables(8). +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{ARP payload mangling}$~$\\ +CONFIG\_IP\_NF\_ARP\_MANGLE [=m] \textbf{[M]}\\ +Ermöglicht die Änderung der ARP-Paket-Nutzlast: Quell- und Ziel-Hardware- und Netzwerkadressen. + +\paragraph{IPv6: Netfilter Configuration \texorpdfstring{$\rightarrow$}{->}}$~$\\ +\textit{IPv6: Netzfilter-Konfiguration} + +\subparagraph{IPv6 socket lookup support}$~$\\ +CONFIG\_NF\_SOCKET\_IPV6 [=m] \textbf{[M]}\\ +Diese Option aktiviert die IPv6-Socket-Lookup-Infrastruktur. Dies ist für die +Socket-Übereinstimmung \{ip6,nf\}tables erforderlich. + +\subparagraph{IPv6 tproxy support}$~$\\ +CONFIG\_NF\_TPROXY\_IPV6 [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{IPv6 nf\_tables support}$~$\\ +CONFIG\_NF\_TABLES\_IPV6 [=y] \textbf{[Y]}\\ +Diese Option aktiviert die IPv6-Unterstützung für nf\_tables. + +\subsubparagraph{IPv6 nf\_tables packet duplication support}$~$\\ +CONFIG\_NFT\_DUP\_IPV6 [=y] \textbf{[Y]}\\ +Dieses Modul ermöglicht die Unterstützung der IPv6-Paketduplikation für nf\_tables. + +\subsubparagraph{nf\_tables fib / ipv6 route lookup support}$~$\\ +CONFIG\_NFT\_FIB\_IPV6 [=m] \textbf{[M]}\\ +Dieses Modul ermöglicht IPv6-FIB-Lookups, z.~B. für Reverse Path Filtering. +Es ermöglicht auch die Abfrage der FIB nach dem Routentyp, z.~B. lokal, Unicast, +Multicast oder Blackhole. + +\subparagraph{Netfilter IPv6 packet duplication to alternate destination}$~$\\ +CONFIG\_NF\_DUP\_IPV6 [=m] \textbf{[M]}\\ +Diese Option aktiviert den nf\_dup\_ipv6"=Kern, der ein IPv6"=Paket dupliziert, +um es an ein anderes Ziel umzuleiten. + +\subparagraph{IPv6 packet rejection}$~$\\ +CONFIG\_NF\_REJECT\_IPV6 [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{IPv6 packet logging}$~$\\ +CONFIG\_NF\_LOG\_IPV6 [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NF\_LOG\_SYSLOG aus. + +\subparagraph{IP6 tables support (required for filtering)}$~$\\ +CONFIG\_IP6\_NF\_IPTABLES [=m] \textbf{[M]}\\ +ip6tables ist ein allgemeines, erweiterbares Framework zur Paketidentifizierung. +Derzeit nutzen nur das Paketfilter- und Paketmangling-Subsystem für IPv6 dieses System, +aber die Verbindungsverfolgung wird folgen. +Sagen Sie hier Y oder M, wenn Sie eines dieser Systeme verwenden wollen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``ah'' match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_AH [=m] \textbf{[M]}\\ +Mit diesem Modul kann man AH-Pakete abgleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``eui64'' address check}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_EUI64 [=m] \textbf{[M]}\\ +Dieses Modul führt eine Überprüfung der IPv6-Quelladresse durch und vergleicht die letzten +64~Bits mit der EUI64"=Adresse (die von der MAC"=Adresse geliefert wird)\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``frag'' Fragmentation header match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_FRAG [=m] \textbf{[M]}\\ +Mit dem Fragmentierungsabgleich können Sie Pakete auf der Grundlage des Fragmentierungsheaders +des Pakets abgleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``hbh'' hop-by-hop and ``dst'' opts header match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_OPTS [=m] \textbf{[M]}\\ +Dies ermöglicht es, Pakete auf der Grundlage der Hop-by-Hop- und Zieloptions-Header eines +Pakets abzugleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``hl'' hoplimit match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_HL [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt CONFIG\_NETFILTER\_XT\_MATCH\_HL aus. + +\subsubparagraph{``ipv6header'' IPv6 Extension Headers Match}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_IPV6HEADER [=m] \textbf{[M]}\\ +Dieses Modul ermöglicht es, Pakete auf der Grundlage der ipv6-Erweiterungsheader abzugleichen. + +\subsubparagraph{``mh'' match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_MH [=m] \textbf{[M]}\\ +Mit diesem Modul kann man MH-Pakete abgleichen. + +\subsubparagraph{``rpfilter'' reverse path filter match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_RPFILTER [=m] \textbf{[M]}\\ +Mit dieser Option können Sie Pakete abgleichen, deren Antworten über die Schnittstelle +hinausgehen würden, über die das Paket eingegangen ist. +Um es als Modul zu kompilieren, wählen Sie hier M. +Wenn Sie unsicher sind, sagen Sie N. Das Modul wird \texttt{ip6t\_rpfilter} heißen. + +\subsubparagraph{``rt'' Routing header match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_RT [=m] \textbf{[M]}\\ +Mit dem rt-Matching können Sie Pakete auf der Grundlage des Routing-Headers des Pakets abgleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``srh'' Segment Routing header match support}$~$\\ +CONFIG\_IP6\_NF\_MATCH\_SRH [=m] \textbf{[M]}\\ +Mit dem srh-Abgleich können Sie Pakete auf der Grundlage des Segment"=Routing"=Headers des +Pakets abgleichen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{``HL'' hoplimit target support}$~$\\ +CONFIG\_IP6\_NF\_TARGET\_HL [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option, die dem Benutzer die Arbeit erleichtert +(z.~B. wenn er oldconfig verwendet). Sie wählt CONFIG\_NETFILTER\_XT\_TARGET\_HL. + +\subsubparagraph{Packet filtering}$~$\\ +CONFIG\_IP6\_NF\_FILTER [=m] \textbf{[M]}\\ +Paketfilterung definiert eine Tabelle \texttt{filter}, die eine Reihe von Regeln für einfache +Paketfilterung bei der lokalen Eingabe, Weiterleitung und lokalen Ausgabe enthält. Siehe die Manpage +für iptables(8).\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{REJECT target support}$~$\\ +CONFIG\_IP6\_NF\_TARGET\_REJECT [=m] \textbf{[M]}\\ +Mit dem REJECT-Ziel kann eine Filterregel angeben, dass als Antwort auf ein eingehendes Paket +ein ICMPv6"=Fehler ausgegeben werden soll, anstatt es stillschweigend zu verwerfen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{SYNPROXY target support}$~$\\ +CONFIG\_IP6\_NF\_TARGET\_SYNPROXY [=m] \textbf{[M]}\\ +Das SYNPROXY-Ziel ermöglicht es Ihnen, TCP-Verbindungen abzufangen und sie unter Verwendung von +Syncookies aufzubauen, bevor sie an den Server weitergeleitet werden. Auf diese Weise können Sie +die Verfolgung von Verbindungen und die Nutzung von Serverressourcen bei SYN-Flood-Angriffen vermeiden.\\ +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{Packet mangling}$~$\\ +CONFIG\_IP6\_NF\_MANGLE [=m] \textbf{[M]}\\ +Diese Option fügt eine \glqq mangle\grqq{}-Tabelle zu iptables hinzu: siehe die Manpage für +iptables(8). +Diese Tabelle wird fuer verschiedene Paketveraenderungen benutzt, die beeinflussen koennen, +wie das Paket weitergeleitet wird. +Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{raw table support (required for TRACE)}$~$\\ +CONFIG\_IP6\_NF\_RAW [=m] \textbf{[M]}\\ +Diese Option fügt eine "rohe" Tabelle zu ip6tables hinzu. Diese Tabelle ist die allererste im +Netfilter-Framework und hakt sich bei den PREROUTING- und OUTPUT"=Ketten ein. +Wenn Sie sie als Modul kompilieren wollen, sagen Sie hier M und lesen Sie +$<$file:Documentation/kbuild/modules.rst$>$. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{Security table}$~$\\ +CONFIG\_IP6\_NF\_SECURITY [=m] \textbf{[M]}\\ +Diese Option fügt eine \glqq Security\grqq{}-Tabelle zu iptables hinzu, für die Verwendung +mit der Mandatory Access Control (MAC) Richtlinie. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubparagraph{ip6tables NAT support}$~$\\ +CONFIG\_IP6\_NF\_NAT [=m] \textbf{[M]}\\ +Dies aktiviert die \texttt{nat}-Tabelle in ip6tables. Dies ermöglicht Masquerading, +Portweiterleitung und andere Formen der vollständigen Network Address Port Translation. +Um es als Modul zu kompilieren, wähle hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsubparagraph{MASQUERADE target support}$~$\\ +CONFIG\_IP6\_NF\_TARGET\_MASQUERADE [=m] \textbf{[M]}\\ +Dies ist eine rückwärtskompatible Option zur Bequemlichkeit des Benutzers +(z.~B. bei der Ausführung von oldconfig). Sie wählt NETFILTER\_XT\_TARGET\_MASQUERADE aus. + +\subsubsubparagraph{NPT (Network Prefix translation) target support}$~$\\ +CONFIG\_IP6\_NF\_TARGET\_NPT [=m] \textbf{[M]}\\ +Diese Option fügt die Ziele \texttt{SNPT} und \texttt{DNPT} hinzu, +die eine zustandslose IPv6-zu-IPv6"=Netzwerk"-präfix"-übersetzung gemäß RFC~6296 durchführen. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Ethernet Bridge nf\_tables support \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_NF\_TABLES\_BRIDGE [=m] \textbf{[M]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\paragraph{Netfilter nf\_table bridge meta support}$~$\\ +CONFIG\_NFT\_BRIDGE\_META [=m] \textbf{[M]}\\ +Hinzufügen der Unterstützung für den Meta-Schlüssel der Bridge. + +\paragraph{Netfilter nf\_table bridge reject support}$~$\\ +CONFIG\_NFT\_BRIDGE\_REJECT [=m] \textbf{[M]}\\ +Hinzufügen der Unterstützung für das Zurückweisen von Paketen. + +\paragraph{IPv4/IPV6 bridge connection tracking support}$~$\\ +CONFIG\_NF\_CONNTRACK\_BRIDGE [=m] \textbf{[M]}\\ +Die Verbindungsverfolgung zeichnet auf, welche Pakete Ihren Rechner durchlaufen haben, um +herauszufinden, wie sie zu Verbindungen zusammenhängen. Dies wird verwendet, um die Paketfilterung +über zustandsabhängige Richtlinien zu verbessern. Aktivieren Sie dies, wenn Sie ein natives +Tracking durch die Bridge wünschen. Dies ist ein Ersatz für die +\glqq br\_netfilter\grqq{}"=Infrastruktur. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Ethernet Bridge tables (ebtables) support \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_BRIDGE\_NF\_EBTABLES [=m] \textbf{[M]}\\ +ebtables ist ein allgemeines, erweiterbares Rahmenwerk zur Identifizierung von Frames/Paketen. +Sagen Sie hier Y oder M, wenn Sie Ethernet-Filterung/NAT/Brouting auf der Ethernet-Bridge +durchführen wollen. + +\subparagraph{ebt: broute table support}$~$\\ +CONFIG\_BRIDGE\_EBT\_BROUTE [=m] \textbf{[M]}\\ +Die ebtables-Broutetabelle wird verwendet, um Regeln zu definieren, die zwischen Bridging- und +Routing-Frames entscheiden und Linux die Funktionalität eines Brouters verleihen. +Siehe die Manpage für ebtables(8) und Beispiele auf der ebtables-Website. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: filter table support}$~$\\ +CONFIG\_BRIDGE\_EBT\_T\_FILTER [=m] \textbf{[M]}\\ +Die ebtables-Filtertabelle wird verwendet, um Regeln für die Filterung von Frames am lokalen +Eingang, an der Weiterleitung und am lokalen Ausgang festzulegen. Siehe die Manpage für ebtables(8). +Um sie als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: nat table support}$~$\\ +CONFIG\_BRIDGE\_EBT\_T\_NAT [=m] \textbf{[M]}\\ +Die Tabelle ebtables nat wird verwendet, um Regeln zu definieren, die die MAC-Quelladresse +(MAC SNAT) oder die MAC-Zieladresse (MAC DNAT) ändern. Siehe die Manpage für ebtables(8). +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: 802.3 filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_T\_NAT [=m] \textbf{[M]}\\ +Mit dieser Option wird die Unterstützung für 802.3-Ethernet-Frames hinzugefügt. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: among filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_AMONG [=m] \textbf{[M]}\\ +Diese Option fügt die Option \glqq among match\grqq{} hinzu, die den Abgleich der +MAC-Quell- und/oder Zieladresse mit einer Liste von Adressen ermöglicht. Optional können +auch MAC/IP"=Adresspaare abgeglichen werden, z.~B. für Anti-Spoofing-Regeln. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: ARP filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_ARP [=m] \textbf{[M]}\\ +Diese Option fügt die ARP-Übereinstimmung hinzu, die das Filtern von ARP- und +RARP-Headerfeldern ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: IP filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_IP [=m] \textbf{[M]}\\ +Diese Option fügt den IP"=Abgleich hinzu, der eine grundlegende Filterung der +IP"=Header"=Felder er"-mög"-licht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: IP6 filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_IP6 [=m] \textbf{[M]}\\ +Diese Option fügt die IP6-Übereinstimmung hinzu, die eine grundlegende Filterung +von IPV6"=Header"=feldern ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: limit match support}$~$\\ +CONFIG\_BRIDGE\_EBT\_LIMIT [=m] \textbf{[M]}\\ +Diese Option fügt die Grenzübereinstimmung hinzu, mit der Sie die Rate kontrollieren können, +mit der eine Regel übereinstimmen kann. Diese Übereinstimmung ist das Äquivalent der +iptables"=Limit"=Übereinstimmung. +Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M und lesen Sie\\ +$<$file:Documentation/kbuild/modules.rst$>$. +Wenn Sie unsicher sind, sagen Sie "N". + +\subparagraph{ebt: mark filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_MARK [=m] \textbf{[M]}\\ +Diese Option fügt die Markierungsübereinstimmung hinzu, die den Abgleich von Frames auf +der Grundlage des \glqq nfmark\grqq{}-Wertes im Frame ermöglicht. Dieser kann durch das +Markierungsziel gesetzt werden. Dieser Wert ist derselbe wie der, der in +iptables mark match und target verwendet wird. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: packet type filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_PKTTYPE [=m] \textbf{[M]}\\ +Diese Option fügt den Pakettyp-Match hinzu, der einen Abgleich des Pakettyps auf der +Grundlage seiner Ethernet-\glqq Klasse\grqq{} +(wie vom generischen Netzwerkcode bestimmt) ermöglicht: +Broadcast, Multicast, für diesen Host allein oder für einen anderen Host. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: STP filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_STP [=m] \textbf{[M]}\\ +Diese Option fügt die Spanning Tree Protocol-Übereinstimmung hinzu, die das Filtern +von STP-Header-Feldern ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: 802.1Q VLAN filter support}$~$\\ +CONFIG\_BRIDGE\_EBT\_VLAN [=m] \textbf{[M]}\\ +Diese Option fügt die 802.1Q-Vlan-Übereinstimmung hinzu, die die Filterung von +802.1Q-Vlan-Feldern ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: arp reply target support}$~$\\ +CONFIG\_BRIDGE\_EBT\_ARPREPLY [=m] \textbf{[M]}\\ +Diese Option fügt das arp-Antwort-Ziel hinzu, das das automatische Senden von arp-Antworten +auf arp-Anfragen ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: dnet target support}$~$\\ +CONFIG\_BRIDGE\_EBT\_DNET [=m] \textbf{[M]}\\ +Diese Option fügt das Ziel MAC DNAT hinzu, das die Änderung der MAC-Zieladresse +von Frames ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: mark target support}$~$\\ +CONFIG\_BRIDGE\_EBT\_MARK\_T [=m] \textbf{[M]}\\ +Diese Option fügt das Markierungsziel hinzu, das die Markierung von Rahmen durch Setzen +des Wertes \glqq nfmark\grqq{} im Rahmen ermöglicht. Dieser Wert ist derselbe wie der, +der in iptables mark match and target verwendet wird. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: redirect target support}$~$\\ +CONFIG\_BRIDGE\_EBT\_REDIRECT [=m] \textbf{[M]}\\ +Diese Option fügt das MAC-Redirect-Ziel hinzu, das es ermöglicht, die MAC-Zieladresse +eines Frames in die des Geräts zu ändern, auf dem er angekommen ist. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, wählen Sie N. + +\subparagraph{ebt: snat target support}$~$\\ +CONFIG\_BRIDGE\_EBT\_SNAT [=m] \textbf{[M]}\\ +Diese Option fügt das Ziel MAC SNAT hinzu, das die Änderung der MAC-Quelladresse von +Frames ermöglicht. +Um es als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: log support}$~$\\ +CONFIG\_BRIDGE\_EBT\_LOG [=m] \textbf{[M]}\\ +Diese Option fügt den Log Watcher hinzu, den Sie in jeder Regel in jeder +ebtables-Tabelle verwenden können. Er zeichnet Informationen über den Frame-Header im Syslog auf. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{ebt: nflog support}$~$\\ +CONFIG\_BRIDGE\_EBT\_NFLOG [=m] \textbf{[M]}\\ +Diese Option aktiviert den nflog watcher, der es ermöglicht, Nachrichten über die netfilter +logging API zu protokollieren, die entweder das alte LOG-Ziel, das alte ULOG-Ziel oder +nfnetlink\_log als Backend verwenden kann. +Diese Option fügt den nflog watcher hinzu, den Sie in jeder Regel in jeder ebtables-Tabelle +verwenden können. +Um ihn als Modul zu kompilieren, wählen Sie hier M. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{BPF based packet filtering framework (BPFILTER) \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_BPFILTER [=n] \textbf{[N]}\\* +Dies baut ein experimentelles bpfilter-Framework auf, das darauf abzielt, +netfilter-kompatible Funktionalität über BPF bereitzustellen. + +\subsubsection{The DCCP Protocol \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_IP\_DCCP [=n] \textbf{[N]}\\* +Protokoll zur Staukontrolle bei Datagrammen (RFC~4340)\\ +Von \url{https://www.ietf.org/rfc/rfc4340.txt}: Das Datagram Congestion Control Protocol (DCCP) +ist ein Transportprotokoll, das bidirektionale Unicast-Verbindungen von überlastungsgesteuerten, +unzuverlässigen Datagrammen implementiert. Es sollte für Anwendungen wie Streaming Media, +Internet-Telefonie und Online-Spiele geeignet sein.\\ +Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird dccp heißen. +Im Zweifelsfall sagen Sie N. + +\subsubsection{The SCTP Protocol \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_IP\_SCTP [=m] \textbf{[M]}\\* +Stream Control Übertragungsprotokoll +Aus RFC~2960 \url{http://www.ietf.org/rfc/rfc2960.txt}.\\[.5em] +\glqq SCTP ist ein zuverlässiges Transportprotokoll, das auf einem verbindungslosen Paketnetz +wie IP aufbaut. Es bietet seinen Benutzern die folgenden Dienste: +\begin{itemize} + \item[--] Bestätigte fehlerfreie, nicht duplizierte Übertragung von Nutzdaten, + \item[--] Datenfragmentierung zur Anpassung an die ermittelte Pfad-MTU-Größe, + \item[--] sequentielle Zustellung von Benutzernachrichten innerhalb mehrerer Ströme mit + einer Option für die Zustellung einzelner Benutzernachrichten in der Reihenfolge ihres Eintreffens, + \item[--] optionale Bündelung mehrerer Benutzernachrichten in einem einzigen SCTP-Paket, und + \item[--] Fehlertoleranz auf Netzebene durch Unterstützung von Multi-Homing an einem oder beiden + Enden einer Assoziation.\grqq{} +\end{itemize} +Um diese Protokollunterstützung als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sctp} genannt. Debug-Meldungen werden vom dynamischen +Debugging-Framework des Kernels behandelt. +Im Zweifelsfall sagen Sie N. + +\paragraph{SCTP: Debug object counts}$~$\\ +CONFIG\_SCTP\_DBG\_OBJCNT [=n] \textbf{[N]}\\ +Wenn Sie Y sagen, wird die Debugging-Unterstützung für die Zählung der Art von Objekten, die derzeit +zugewiesen sind, aktiviert. Dies ist nützlich für die Identifizierung von Speicherlecks. +Diese Debug-Informationen können Sie sich ansehen mit +\texttt{cat /proc/net/sctp/sctp\_dbg\_objcnt}\\ +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Default SCTP cookie HMAC encoding () \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_SCTP\_DBG\_OBJCNT [=n] \textbf{[N]}\\ +Mit dieser Option wird der Standard-Hmac-Algorithmus für den sctp-Cookie festgelegt. +Im Zweifelsfall wählen Sie \texttt{md5}. + +\subparagraph{Enable optional MD5 hmac cookie generation}$~$\\ +CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_MD5 [=n] \textbf{[N]}\\ +Optionale MD5 hmac-basierte SCTP-Cookie-Generierung aktivieren. + +\subparagraph{Enable optional SHA1 hmac cookie generation}$~$\\ +CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_SHA1 [=y] \textbf{[Y]}\\ +Optionale SHA1 hmac-basierte SCTP-Cookie-Generierung aktivieren. + +\subparagraph{Use no hmac alg in SCTP cookie generation}$~$\\ +CONFIG\_SCTP\_DEFAULT\_COOKIE\_HMAC\_NONE [=n] \textbf{[N]}\\ +Keinen hmac-Algorithmus bei der Erzeugung von SCTP-Cookies verwenden. + +\paragraph{Enable optional MD5 hmac cookie generation}$~$\\ +CONFIG\_SCTP\_COOKIE\_HMAC\_MD5 [=y] \textbf{[Y]}\\ +Optionale MD5 hmac-basierte SCTP-Cookie-Generierung aktivieren. + +\paragraph{Enable optional SHA1 hmac cookie generation}$~$\\ +CONFIG\_SCTP\_COOKIE\_HMAC\_SHA1 [=y] \textbf{[Y]}\\ +Optionale SHA1 hmac-basierte SCTP-Cookie-Generierung aktivieren. + +\subsubsection{The Reliable Datagram Sockets Protocol} +CONFIG\_RDS [=m] \textbf{[M]}\\ +\textit{(Das Zuverlässige Datagramm-Socket-Protokoll)}\\ +Das RDS-Protokoll (Reliable Datagram Sockets) bietet eine zuverlässige, sequenzierte +Zustellung von Datagrammen über Infiniband oder TCP. + +\paragraph{RDS over Infiniband}$~$\\ +CONFIG\_RDS\_RDMA [=m] \textbf{[M]}\\ +Erlaubt RDS, Infiniband als Transportmittel zu verwenden. +Dieser Transport unterstützt RDMA"=Vor"-gän"-ge. + +\paragraph{RDS over TCP}$~$\\ +CONFIG\_RDS\_TCP [=m] \textbf{[M]}\\ +Erlaubt RDS, TCP als Transportmittel zu verwenden. +Dieser Transport unterstützt keine RDMA"=Vor"-gän"-ge. + +\paragraph{RDS debugging messages}$~$\\ +CONFIG\_RDS\_DEBUG [=n] \textbf{[N]}\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subsubsection{The TIPC Protocol \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_TIPC [=m] \textbf{[M]}\\* +Das TIPC-Protokoll (Transparent Inter Process Communication) ist speziell für die Kommunikation +innerhalb eines Clusters konzipiert. Dieses Protokoll stammt von Ericsson, wo es seit vielen Jahren +in Carrier-Grade-Cluster-Anwendungen eingesetzt wird. Weitere Informationen über TIPC finden Sie +unter \url{http://tipc.sourceforge.net}. Diese Protokollunterstützung ist auch als Modul verfügbar +(= Code, der in den laufenden Kernel eingefügt und wieder entfernt werden kann, wann immer Sie wollen). +Das Modul wird \texttt{tipc} genannt. Wenn Sie es als Modul kompilieren wollen, sagen Sie hier M +und lesen Sie $<$file:Documentation/kbuild/modules.rst$>$. +Im Zweifelsfall sagen Sie N. + +\paragraph{InfiniBand media type support}$~$\\ +CONFIG\_TIPC\_MEDIA\_IB [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, wird die Unterstützung für die Ausführung von TIPC auf IP-over-InfiniBand-Geräten aktiviert. + +\paragraph{IP/UDP media type support}$~$\\ +CONFIG\_TIPC\_MEDIA\_UDP [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, wird die Unterstützung für die Ausführung von TIPC über IP/UDP aktiviert. + +\paragraph{TIPC encryption support}$~$\\ +CONFIG\_TIPC\_CRYPTO [=y] \textbf{[Y]}\\ +Wenn Sie hier Y eingeben, wird die TIPC-Verschlüsselung unterstützt. Alle TIPC-Nachrichten werden mit dem derzeit +modernsten Algorithmus ver-/entschlüsselt: AEAD AES-GCM (wie IPSec oder TLS), bevor sie den TIPC-Stack verlassen/eingehen. +Das Setzen der Schlüssel aus dem Benutzerbereich erfolgt über Netlink durch ein Benutzerprogramm +(z.~B. das iproute2-Tool \glqq tipc\grqq{}). + +\paragraph{TIPC: socket monitoring interface}$~$\\ +CONFIG\_TIPC\_DIAG [=m] \textbf{[M]}\\ +Unterstützung für die von \texttt{ss} tool verwendete TIPC-Socket-Überwachungsschnittstelle. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Asynchronous Transfer Mode (ATM)} +CONFIG\_ATM [=m] \textbf{[M]}\\* +ATM ist eine Hochgeschwindigkeitsnetztechnologie für lokale Netze und Weitverkehrsnetze. Sie verwendet eine feste Paketgröße +und ist verbindungsorientiert, was die Aushandlung von Mindestbandbreitenanforderungen ermöglicht. +Um an einem ATM-Netz teilnehmen zu können, benötigt Ihr Linux-System eine ATM-Netzwerkkarte. Wenn Sie eine solche haben, +sagen Sie hier und beim Treiber Ihrer ATM-Karte unten Y. +Beachten Sie, dass Sie eine Reihe von User-Space-Programmen benötigen, um ATM tatsächlich nutzen zu können. +Siehe die Datei $<$file:Documentation/networking/atm.rst$>$ für weitere Details. + +\paragraph{Classical IP over ATM}$~$\\ +CONFIG\_ATM\_CLIP [=m] \textbf{[M]}\\ +Klassisches IP über ATM für PVCs und SVCs, mit Unterstützung von InARP und ATMARP. Wenn Sie mit anderen IP-Hosts in Ihrem +ATM-Netz kommunizieren wollen, werden Sie in der Regel entweder hier oder bei \glqq LAN-Emulation (LANE)\grqq{} unten Y sagen. + +\subparagraph{Do NOT send ICMP if no neighbour}$~$\\ +CONFIG\_ATM\_CLIP\_NO\_ICMP [=n] \textbf{[N]}\\ +Normalerweise wird eine \glqq ICMP host unreachable\grqq{}-Meldung gesendet, wenn ein Nachbar nicht erreicht werden kann, +weil es in der ATMARP-Tabelle des Kernels keinen VC zu ihm gibt. Dies kann zu Problemen führen, wenn ATMARP-Tabelleneinträge +während der Revalidierung kurzzeitig entfernt werden. Wenn Sie hier Y sagen, werden Pakete an solche Nachbarn stattdessen +stillschweigend verworfen. + +\paragraph{LAN Emulation (LANE) support}$~$\\ +CONFIG\_ATM\_LANE [=m] \textbf{[M]}\\ +Die LAN-Emulation emuliert die Dienste bestehender LANs über ein ATM-Netz. Neben dem Betrieb als normaler +ATM-Endstations-Client kann der Linux-LANE-Client auch als Proxy-Client fungieren und Pakete zwischen ELAN- und +Ethernet-Segmenten überbrücken. Sie benötigen LANE, wenn Sie MPOA ausprobieren wollen. + +\subparagraph{Multi-Protocol Over ATM (MPOA) support}$~$\\ +CONFIG\_ATM\_MPOA [=m] \textbf{[M]}\\ +Multi-Protocol Over ATM ermöglicht ATM-Edge-Geräten wie Routern, Bridges und an ATM angeschlossenen Hosts die Einrichtung +direkter ATM-VCs über Teilnetzgrenzen hinweg. Diese Shortcut"=Verbindungen umgehen Router und verbessern die +Gesamtleistung des Netzes. + +\paragraph{RFC1483/2684 Bridged protocols}$~$\\ +CONFIG\_ATM\_BR2684 [=m] \textbf{[M]}\\ +ATM-PVCs können Ethernet-PDUs gemäß RFC~2684 (früher 1483) übertragen. +Dieses Gerät verhält sich aus Sicht des Kernels wie ein Ethernet, wobei der Verkehr über ATM-PVCs (derzeit 1 PVC/Gerät) +übertragen wird. +Dies wird manchmal über DSL"=Leitungen verwendet. Im Zweifelsfall sagen Sie N. + +\subparagraph{Per-VC IP filter kludge}$~$\\ +CONFIG\_ATM\_BR2684\_IPFILTER [=n] \textbf{[N]}\\ +Dies ist ein experimenteller Mechanismus für Benutzer, die eine große Anzahl von IP-only vcc's terminieren müssen. +Aktivieren Sie dies nur, wenn Sie sicher sind, dass Sie wissen, was Sie tun. + +\subsubsection{Layer Two Tunneling Protocol (L2TP) \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_L2TP [=m] \textbf{[M]}\\* +Layer 2 Tunneling Protokoll\\ +Aus RFC~2661 \url{http://www.ietf.org/rfc/rfc2661.txt}. +L2TP erleichtert das Tunneln von Paketen über ein zwischengeschaltetes Netz auf eine Weise, die sowohl für Endnutzer +als auch für Anwendungen so transparent wie möglich ist.\\ +L2TP wird häufig zum Tunneln von PPP-Verkehr über IP-Tunnel verwendet. Ein IP-Tunnel kann Tausende von einzelnen +PPP"=Verbindungen übertragen. L2TP wird auch als VPN"=Protokoll verwendet, das bei Heimarbeitern für die Verbindung +zu ihren Büros beliebt ist.\\ +Mit L2TPv3 können neben PPP auch andere Protokolle über L2TP"=Tunnel übertragen werden. L2TPv3 ist im RFC~3931 +\url{http://www.ietf.org/rfc/rfc3931.txt} definiert.\\ +Die Kernel-Komponente verarbeitet nur L2TP-Datenpakete: ein Userland-Daemon verarbeitet L2TP als Kontrollprotokoll +(Tunnel- und Sitzungsaufbau). Ein solcher Daemon ist OpenL2TP (\url{http://openl2tp.org/}).\\ +Wenn Sie L2TP nicht benötigen, wählen Sie N. Um den gesamten L2TP-Code als Modul zu kompilieren, wählen Sie hier M. + +\paragraph{L2TP debugfs support}$~$\\ +CONFIG\_L2TP\_DEBUGFS [=m] \textbf{[M]}\\ +Unterstützung für ein l2tp-Verzeichnis im debugfs-Dateisystem. Dies kann verwendet werden, um den internen Zustand +der l2tp-Treiber für die Problemanalyse zu speichern. +Wenn Sie unsicher sind, sagen Sie 'Y'. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_debugfs} heißen. + +\paragraph{L2TPv3 support}$~$\\ +CONFIG\_L2TP\_V3 [=y] \textbf{[Y]}\\ +Layer 2 Tunneling Protokoll Version 3\\ +Aus RFC 3931 \url{http://www.ietf.org/rfc/rfc3931.txt}. +Das Layer 2 Tunneling Protocol (L2TP) bietet einen dynamischen Mechanismus zum Tunneln von +Layer-2-(L2)-\glqq Schaltungen\grqq{} über ein paketorientiertes Datennetz (z.~B. über IP). +L2TP, das ursprünglich in RFC~2661 definiert wurde, ist eine Standardmethode zum Tunneln von +Point-to-Point Protocol (PPP)-Sitzungen [RFC~1661]. L2TP wurde inzwischen für das Tunneln einer +Reihe von anderen L2-Protokollen übernommen, darunter ATM, Frame Relay, HDLC und sogar rohe Ethernet-Frames. +Wenn Sie eine Verbindung zu L2TPv3-Geräten herstellen oder rohe Ethernet-Frames mit L2TP tunneln wollen, +geben Sie hier Y an. Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{L2TP IP encapsulation for L2TPv3}$~$\\ +CONFIG\_L2TP\_IP [=m] \textbf{[M]}\\ +Unterstützung für L2TP-over-IP-Socket-Familie.\\ +Das L2TPv3-Protokoll definiert zwei mögliche Verkapselungen für L2TP-Rahmen, nämlich UDP und einfaches IP +(ohne UDP). Dieser Treiber stellt eine neue L2TPIP-Socket-Familie zur Verfügung, mit der +L2TPv3"=Benutzerspace"=Daemons L2TP/IP-Tunnel-Sockets erstellen können, wenn keine UDP"=Kapselung +erforderlich ist. Wenn L2TP in IP-Paketen übertragen wird, verwendet es die IP-Protokollnummer 115, +so dass dieser Port in Firewalls aktiviert werden muss.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_ip} heißen. + +\subparagraph{L2TP ethernet pseudowire support for L2TPv3}$~$\\ +CONFIG\_L2TP\_ETH [=m] \textbf{[M]}\\ +Unterstützung für die Übertragung von rohen Ethernet-Frames über L2TPv3.\\ +Aus RFC~4719 \url{http://www.ietf.org/rfc/rfc4719.txt}.\\ +Das Layer 2 Tunneling Protocol, Version 3 (L2TPv3) kann als Kontrollprotokoll und zur Datenkapselung +verwendet werden, um Pseudodrähte für den Transport von Layer-2-Paketdateneinheiten über ein IP-Netzwerk +einzurichten [RFC~3931]. Dieser Treiber stellt für jede L2TP-Ethernet-Pseudowire-Instanz eine virtuelle +Ethernet-Schnittstelle zur Verfügung. Standard-Linux-Tools können verwendet werden, um der lokalen +virtuellen Schnittstelle eine IP-Adresse zuzuweisen oder die Schnittstelle zu einer Bridge hinzuzufügen. +Wenn Sie L2TPv3 verwenden, werden Sie diese Option mit Sicherheit aktivieren wollen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M. Das Modul wird \texttt{l2tp\_eth} heißen. + +\subsubsection{802.1d Ethernet Bridging} +CONFIG\_L2TP [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, kann Ihr Linux-Rechner als Ethernet-Bridge fungieren, d.~h. die verschiedenen +Ethernet-Segmente, an die er angeschlossen ist, erscheinen den Teilnehmern als ein einziges Ethernet. +Mehrere solcher Bridges können zusammenarbeiten, um mit Hilfe des IEEE 802.1 Spanning-Tree-Algorithmus +noch größere Netze von Ethernets zu bilden. Da es sich hierbei um einen Standard handelt, arbeiten Linux-Bridges +ordnungsgemäß mit anderen Bridge-Produkten von Drittanbietern zusammen.\\ +Um die Ethernet-Bridge zu benutzen, benötigen Sie die Bridge-Konfigurationswerkzeuge; siehe\\ +$<$file:Documentation/networking/bridge.rst$>$ +für den Standort. Bitte lesen Sie das Bridge-Mini-HOWTO für weitere Informationen.\\ +Wenn Sie die iptables-Unterstützung zusammen mit der Bridge-Unterstützung aktivieren, verwandeln Sie Ihre Bridge +in eine Bridging-IP-Firewall. iptables sieht dann die IP-Pakete, die überbrückt werden, so dass Sie dies beim Einrichten Ihrer +Firewall-Regeln berücksichtigen müssen. Wenn Sie die Unterstützung von arptables beim Bridging aktivieren, kann arptables den +überbrückten ARP-Verkehr in der arptables FORWARD-Kette sehen.\\ +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{bridge} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{IGMP/MLD snooping}$~$\\ +CONFIG\_BRIDGE\_IGMP\_SNOOPING [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, kann die Ethernet-Brücke Multicast-Verkehr auf der Grundlage des von jedem Anschluss +empfangenen IGMP/MLD-Verkehrs selektiv weiterleiten.\\ +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{VLAN filtering}$~$\\ +CONFIG\_BRIDGE\_VLAN\_FILTERING [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, kann die Ethernet-Bridge selektiv Datenverkehr auf der Grundlage der VLAN"=Informationen +in den Paketen empfangen und weiterleiten, die auf dem Bridge"=Port oder Bridge"=Gerät konfiguriert sind. +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{MRP protocol}$~$\\ +CONFIG\_BRIDGE\_MRP [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, kann die Ethernet-Bridge das MRP"=Protokoll zur Erkennung von Schleifen ausführen. +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{CFM protocol}$~$\\ +CONFIG\_BRIDGE\_CFM [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, kann die Ethernet-Bridge das CFM-Protokoll gemäß 802.1Q Abschnitt~12.14 ausführen. +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu verringern. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Distributed Switch Architecture \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NET\_DSA [=m] \textbf{[M]}\\* +Sagen Sie Y, wenn Sie die Unterstützung für die von der verteilten Switch"=Architektur +unterstützten Hardware"=Switches aktivieren möchten. + +\paragraph{No-op tag driver}$~$\\ +CONFIG\_NET\_DSA\_TAG\_NONE [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für Switches aktivieren wollen, die keine Frames über den CPU-Port taggen. + +\paragraph{Tag driver for Atheros AR9331 SoC with built-in switch}$~$\\ +CONFIG\_NET\_DSA\_TAG\_AR9331 [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Tagging von Frames für den +Atheros AR9331 SoC mit integriertem Switch aktivieren möchten. + +\paragraph{Tag driver for Broadcom switches using in-frame headers}$~$\\ +CONFIG\_NET\_DSA\_TAG\_BRCM [=m] \textbf{[M]}\\ +Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Switches aktivieren möchten, +die das Tag nach der MAC-Quelladresse platzieren. + +\paragraph{Tag driver for Broadcom legacy switches using in-frame headers}$~$\\ +CONFIG\_NET\_DSA\_TAG\_BRCM\_LEGACY [=m] \textbf{[M]}\\ +Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Legacy-Switches aktivieren möchten, +die das Tag nach der MAC-Quelladresse platzieren. + +\paragraph{Tag driver for Broadcom switches using prepended headers}$~$\\ +CONFIG\_NET\_DSA\_TAG\_BRCM\_PREPEND [=m] \textbf{[M]}\\ +Sagen Sie Y, wenn Sie die Unterstützung für das Tagging von Frames für die Broadcom-Switches aktivieren möchten, +bei denen das Tag vor dem Ethernet-Header (vorangestellt) platziert wird. + +\paragraph{Tag driver for Hirschmann Hellcreek TSN switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_HELLCREEK [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung von Tagging"=Frames für die +Hirschmann Hellcreek TSN"=Switches aktivieren wollen. + +\paragraph{Tag driver for Latiq / Intel GSWIP switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_GSWIP [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung von Tagging-Frames für die Lantiq / Intel GSWIP-Switches aktivieren möchten. + +\paragraph{Tag driver for Marvell switches using DSA headers}$~$\\ +CONFIG\_NET\_DSA\_TAG\_DSA [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Marvell-Switches, +die DSA-Header verwenden, aktivieren möchten. + +\paragraph{Tag driver for Marvell switches using EtherType DSA headers}$~$\\ +CONFIG\_NET\_DSA\_TAG\_EDSA [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Marvell-Switches, +die EtherType DSA-Header verwenden, aktivieren möchten. + +\paragraph{Tag driver for Mediatek switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_MTK [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für Mediatek-Switches aktivieren möchten. + +\paragraph{Tag driver for Microchip 8795/937x/9477/9893 families of switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_KSZ [=m] \textbf{[M]}\\ +Sagen Sie Y, wenn Sie die Unterstützung für Tagging-Frames für die Microchip\\ +Switch"=Familien~8795/937x/9477/9893 aktivieren möchten. + +\paragraph{Tag driver for Ocelot family of switches, using NPI port}$~$\\ +CONFIG\_NET\_DSA\_TAG\_OCELOT [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie das NPI-Tagging für die Ocelot-Switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959) +aktivieren möchten. In diesem Modus wird den Frames über den Ethernet-CPU-Port ein hardwaredefinierter +Injection/Extraction-Frame-Header vorangestellt. Die Flusssteuerung (PAUSE-Frames) über den CPU-Port +wird in diesem Modus nicht unterstützt. + +\paragraph{Tag driver for Ocelot family of switches, using VLAN}$~$\\ +CONFIG\_NET\_DSA\_TAG\_OCELOT\_8021Q [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für die Kennzeichnung von Frames mit einem benutzerdefinierten VLAN-basierten +Header aktivieren möchten. Frames, die einen Zeitstempel benötigen, wie z.~B. PTP, werden nicht über Ethernet, +sondern über registerbasiertes MMIO übertragen. Die Flusssteuerung über den CPU-Port ist in diesem Modus funktionsfähig. +Bei Verwendung dieses Modus stehen weniger TCAM-Ressourcen (VCAP IS1, IS2, ES0) für die Verwendung mit tc-flower zur Verfügung. + +\paragraph{Tag driver for Qualcomm Atheros QCA8k switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_QCA [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für die Qualcomm Atheros QCA8K-Switches aktivieren möchten. + +\paragraph{Tag driver for Realtek 4 byte protocol A tags}$~$\\ +CONFIG\_NET\_DSA\_TAG\_RTL4\_A [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für die Realtek-Switches mit 4-Byte-Protokoll-A-Tags, +wie sie im Realtek RTL8366RB zu finden sind, aktivieren möchten. + +\paragraph{Tag driver for Realtek 8 byte protocol 4 tags}$~$\\ +CONFIG\_NET\_DSA\_TAG\_RTL8\_4 [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für Realtek-Switches mit 8-Byte-Protokoll-4-Tags, +wie dem Realtek RTL8365MB-VC, aktivieren möchten. + +\paragraph{Tag driver for Renesas RZ/N1 A5PSW switch}$~$\\ +CONFIG\_NET\_DSA\_TAG\_RZN1\_A5PSW [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Tagging von Frames für den eingebetteten Renesas RZ/N1-Switch +aktivieren möchten, der ein 8-Byte-Tag nach der Ziel-MAC-Adresse verwendet. + +\paragraph{Tag driver for SMSC/Microchip LAN9303 family of switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_LAN9303 [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames für die SMSC/Microchip LAN9303-Switch-Familie +aktivieren möchten. + +\paragraph{Tag driver for NXP SJA1105 switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_SJA1105 [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für Tagging-Frames mit der NXP SJA1105-Switch-Familie aktivieren möchten. +Sowohl das native Tagging-Protokoll (das nur für link-lokalen Verkehr gilt) als auch das nicht-native Tagging +(basierend auf einem benutzerdefinierten 802.1Q-VLAN-Header) sind verfügbar. + +\paragraph{Tag driver for switches using a trailer tag}$~$\\ +CONFIG\_NET\_DSA\_TAG\_TRAILER [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Markieren von Frames mit einem angehängten (Trailed) Tag +aktivieren wollen. z.~B. Marvell 88E6060. + +\paragraph{Tag driver for XRS700x switches}$~$\\ +CONFIG\_NET\_DSA\_TAG\_XRS700X [=m] \textbf{[M]}\\ +Sagen Sie Y oder M, wenn Sie die Unterstützung für das Taggen von Frames für Arrow SpeedChips XRS700x-Switches, +die einen Ein-Byte-Tag-Anhänger verwenden, aktivieren möchten. + +\subsubsection{802.1Q/802.1ad VLAN Support} +CONFIG\_VLAN\_8021Q [=m] \textbf{[M]}\\ +Wenn Sie diese Option wählen, können Sie 802.1Q-VLAN-Schnittstellen auf Ihren Ethernet-Schnittstellen erstellen. +802.1Q VLAN unterstützt fast alles, was eine normale Ethernet-Schnittstelle kann, einschließlich Firewalling, +Bridging und natürlich IP-Verkehr. Um VLANs effektiv nutzen zu können, benötigen Sie das Dienstprogramm \texttt{ip}. +Weitere Informationen finden Sie auf der VLAN-Webseite: +\url{http://www.candelatech.com/~greear/vlan.html}\\ +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{8021q} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{GVRP (GARP VLAN Registration Protocol) support}$~$\\ +CONFIG\_VLAN\_8021Q\_GVRP [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um die GVRP"=Endsystemunterstützung zu aktivieren. GVRP wird für die automatische +Weitergabe von registrierten VLANs an Switches verwendet. +Wenn Sie unsicher sind, wählen Sie N. + +\paragraph{MVRP (Multiple VLAN Registration Protocol) support}$~$\\ +CONFIG\_VLAN\_8021Q\_MVRP [=y] \textbf{[Y]}\\ +Wählen Sie diese Option, um die MVRP"=Endsystemunterstützung zu aktivieren. MVRP wird für die automatische +Weitergabe von registrierten VLANs an Switches verwendet; es ersetzt GVRP und ist nicht abwärtskompatibel. +Wenn Sie unsicher sind, wählen Sie N. + +\subsubsection{ANSI/IEEE~802.2 LLC type 2 Support} +CONFIG\_LLC2 [=m] \textbf{[M]}\\* +Dies ist eine Logical Link Layer Typ 2, verbindungsorientierte Unterstützung. +Wählen Sie diese Option, wenn Sie Unterstützung für PF\_LLC-Sockets haben möchten. + +\subsubsection{Appletalk protocol support} +CONFIG\_ATALK [=m] \textbf{[M]}\\* +AppleTalk ist das Protokoll, das Apple-Computer zur Kommunikation in einem Netzwerk verwenden können. +Wenn Ihr Linux-Rechner an ein solches Netzwerk angeschlossen ist und Sie sich mit ihm verbinden möchten, +sagen Sie Y. Sie müssen das Paket netatalk verwenden, damit Ihr Linux-Rechner als Druck- und Dateiserver +für Macs fungieren und auf AppleTalk-Drucker zugreifen kann.\\ +Besuchen Sie \url{http://www.zettabyte.net/netatalk/} im WWW für weitere Einzelheiten. EtherTalk ist der +Name für AppleTalk über Ethernet und das billigere und langsamere LocalTalk ist AppleTalk über ein +proprietäres Apple-Netzwerk unter Verwendung serieller Verbindungen. EtherTalk und LocalTalk werden von +Linux vollständig unterstützt. +Allgemeine Informationen darüber, wie man Linux, Windows-Rechner und Macs miteinander verbindet, finden +Sie im WWW unter \url{http://www.eats.com/linux\_mac\_win.html}. Das NET3-4-HOWTO, erhältlich unter +\url{http://www.tldp.org/docs.html#howto}, enthält ebenfalls wertvolle Informationen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{appletalk} heißen. +Sie wollen ihn mit Sicherheit als Modul kompilieren, damit Sie Ihren AppleTalk-Stack neu starten können, +ohne Ihren Rechner neu zu starten. Ich habe gehört, dass der GNU-Boykott von Apple vorbei ist, so dass +sogar politisch korrekte Leute hier Y sagen dürfen. + +\paragraph{Appletalk interfaces support}$~$\\ +CONFIG\_DEV\_APPLETALK [=m] \textbf{[M]}\\ +AppleTalk ist das Protokoll, das Apple-Computer zur Kommunikation in einem Netzwerk verwenden können. +Wenn Ihr Linux-Rechner an ein solches Netzwerk angeschlossen ist und Sie IP über das Netzwerk nutzen +möchten oder wenn Sie eine LocalTalk-Karte haben und diese für die Verbindung mit dem AppleTalk-Netzwerk +nutzen möchten, sagen Sie Y. + +\subparagraph{Appletalk-IP driver support}$~$\\ +CONFIG\_IPDDP [=m] \textbf{[M]}\\ +Dies ermöglicht IP-Netzwerke für Benutzer, die nur AppleTalk-Netzwerke zur Verfügung haben. Diese Funktion +ist experimentell. Mit diesem Treiber können Sie IP innerhalb von AppleTalk einkapseln (z.~B. wenn Ihr +Linux-Rechner in einem reinen AppleTalk-Netzwerk steckt) oder entkapseln (z.~B. wenn Sie Ihren +Linux-Rechner als Internet-Gateway für einen Zoo von mit AppleTalk verbundenen Macs einsetzen wollen).\\ +Bitte lesen Sie die Datei $<$file:Documentation/networking/ipddp.rst$>$ für weitere Informationen. +Wenn Sie hier Y angeben, wird die AppleTalk-IP"=Unterstützung in den Kernel kompiliert. In diesem Fall +können Sie entweder Verkapselung oder Entkapselung verwenden, aber nicht beides. Mit den folgenden zwei +Fragen entscheiden Sie, was Sie wollen. +Um die AppleTalk-IP"=Unterstützung als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{ipddp} heißen. +In diesem Fall können Sie sowohl Encapsulation als auch Decapsulation gleichzeitig +verwenden, indem Sie zwei Kopien des Moduls laden und unterschiedliche Werte für die Moduloption +ipddp\_mode angeben. + +\subsubparagraph{IP to Appletalk-IP Encapsulation support}$~$\\ +CONFIG\_IPDDP\_ENCAP [=y] \textbf{[Y]}\\ +Wenn Sie hier Y angeben, kann der AppleTalk-IP-Code IP-Pakete in AppleTalk-Rahmen einkapseln; das ist +nützlich, wenn Ihr Linux-Rechner in einem AppleTalk-Netzwerk steckt (das hoffentlich irgendwo einen +Entkapsler enthält). Bitte lesen Sie $<$file:Documentation/networking/ipddp.rst$>$ für weitere Informationen. + +\subsubsection{CCITT X.25 Packet Layer} +CONFIG\_X25 [=n] \textbf{[N]}\\* +X.25 ist eine Reihe von standardisierten Netzwerkprotokollen, ähnlich wie Frame Relay; die eine physische +Leitung von Ihrem Rechner zum X.25-Netzeingangspunkt kann mehrere logische Punkt-zu-Punkt-Verbindungen +(so genannte \glqq virtuelle Schaltungen\grqq{}) zu anderen Computern, die an das X.25-Netz angeschlossen +sind, übertragen. Regierungen, Banken und andere Organisationen verwenden es in der Regel, um sich +untereinander zu verbinden oder um Wide Area Networks (WANs) zu bilden. Viele Länder haben öffentliche +X.25-Netze. X.25 besteht aus zwei Protokollen: dem übergeordneten Packet Layer Protocol (PLP) +(geben Sie hier ein Y ein, wenn Sie das wollen) und dem untergeordneten Data Link Layer Protocol LAPB +(geben Sie unten ein Y für \glqq LAPB Data Link Driver\grqq{} ein, wenn Sie das wollen).\\ +Weitere Informationen über X.25 finden Sie unter \url{https://www.sangoma.com/tutorials/x25/} und +\url{http://docwiki.cisco.com/wiki/X.25}. Informationen über X.25 für Linux sind in den Dateien\\ +$<$file:Documentation/networking/x25.rst$>$ und $<$file:Documentation/networking/x25-iface.rst$>$ enthalten. +Man verbindet sich mit einem X.25-Netzwerk entweder mit einer dedizierten Netzwerkkarte, die das +X.21-Protokoll verwendet (noch nicht von Linux unterstützt), oder man kann X.25 über eine +Standard-Telefonleitung mit einem gewöhnlichen Modem (sagen Sie Y zu \glqq X.25 async driver\grqq{} unten) +oder über Ethernet mit einer gewöhnlichen Ethernet-Karte und dem LAPB over Ethernet (sagen Sie Y zu +\glqq LAPB Data Link Driver\grqq{} und \glqq LAPB over Ethernet driver\grqq{} unten). +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{x25} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{LAPB Data Link Driver} +CONFIG\_LAPB [=n] \textbf{[N]}\\* +Link Access Procedure, Balanced (LAPB) ist die Datenverbindungsschicht (d.~h. der untere Teil) des +X.25-Protokolls. Es bietet einen zuverlässigen Verbindungsdienst, um Datenrahmen mit einem anderen +Host auszutauschen, und wird für den Transport von Protokollen höherer Ebenen verwendet +(hauptsächlich X.25 Packet Layer, der höhere Teil von X.25, aber auch andere sind möglich). +Normalerweise wird LAPB mit speziellen X.21-Netzwerkkarten verwendet, aber Linux unterstützt LAPB +derzeit nur über Ethernet"=Verbindungen. Wenn Sie LAPB"=Verbindungen über Ethernet nutzen wollen, +sagen Sie hier und im \glqq LAPB over Ethernet driver\grqq{} unten Y.\\ +Lesen Sie $<$file:Documentation/networking/lapb-module.rst$>$ für technische Details. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{lapb} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Phonet protocols family} +CONFIG\_PHONET [=m] \textbf{[M]}\\* +Das Phone Network-Protokoll (PhoNet) ist ein paketorientiertes Kommunikationsprotokoll, das +von Nokia für die Verwendung mit seinen Modems entwickelt wurde. +Es ist erforderlich, damit Maemo die zellulare Datenkonnektivität nutzen kann (sofern unterstützt). +Es kann auch verwendet werden, um Nokia-Telefone von einem Linux-Computer aus zu steuern, obwohl +AT-Befehle möglicherweise einfacher zu verwenden sind. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{phonet} genannt. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{6LoWPAN Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_6LOWPAN [=m] \textbf{[M]}\\* +Dies ermöglicht IPv6 über Low Power Wireless Personal Area Network -- \glqq 6LoWPAN\grqq{}, +das von \mbox{IEEE} 802.15.4 oder Bluetooth-Stacks unterstützt wird. + +\paragraph{6LoWPAN debugfs support}$~$\\ +CONFIG\_6LOWPAN\_DEBUGFS [=y] \textbf{[Y]}\\ +Dies ermöglicht die Unterstützung von 6LoWPAN-Debugfs. Zum Beispiel um IPHC"=Kontextinformationen +zur Laufzeit zu manipulieren. + +\paragraph{Next Header and Generic Header Compression Support \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_6LOWPAN\_NHC [=m] \textbf{[M]}\\* +Unterstützung für die in RFC~6282 und RFC~7400 definierte Komprimierung des nächsten Headers +und des generischen Headers. + +\subparagraph{Destination Options Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_DEST [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Destination Options Header Kompression nach RFC~6282. + +\subparagraph{Fragment Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_FRAGMENT [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Fragment Header Kompression nach RFC~6282. + +\subparagraph{Hop-by-Hop Option Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_HOP [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Hop-by-Hop Options Header Kompression nach RFC~6282. + +\subparagraph{IPv6 Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_IPV6 [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Header Kompression nach RFC~6282. + +\subparagraph{Mobility Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_MOBILITY [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Mobility Header Kompression nach RFC~6282. + +\subparagraph{Routing Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_ROUTING [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Routing Header Kompression nach RFC~6282. + +\subparagraph{UDP Header Support}$~$\\ +CONFIG\_6LOWPAN\_NHC\_UDP [=m] \textbf{[M]}\\ +6LoWPAN IPv6 UDP Header Kompression nach RFC~6282. + +\subparagraph{GHC Hop-by-Hop Options Header Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_HOP [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Hop-by-Hop-Option generische Header-Kompression gemäß RFC~7400. + +\subparagraph{GHC UDP Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_UDP [=m] \textbf{[M]}\\ +6LoWPAN IPv6 UDP generische Header-Kompression gemäß RFC~7400. + +\subparagraph{GHC ICMPv6 Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_ICMPV6 [=m] \textbf{[M]}\\ +6LoWPAN IPv6 ICMPv6 generische Header-Kompression gemäß RFC~7400. + +\subparagraph{GHC Destination Options Header Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_DEST [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Zieloption generische Header-Kompression gemäß RFC~7400. + +\subparagraph{GHC Fragmentation Options Header Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_FRAG [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Fragmentierungsoption generische Header-Kompression gemäß RFC~7400. + +\subparagraph{GHC Routing Options Header Support}$~$\\ +CONFIG\_6LOWPAN\_GHC\_EXT\_HDR\_ROUTE [=m] \textbf{[M]}\\ +6LoWPAN IPv6 Routing Option generische Header-Kompression nach RFC~7400. + +\subsubsection{IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_IEEE802154 [=m] \textbf{[M]}\\* +Die IEEE-Norm 802.15.4 definiert ein drahtloses persönliches Nahbereichsnetz mit niedriger Datenrate, geringer +Leistung und geringer Komplexität. Es wurde entwickelt, um Netze von Sensoren, Schaltern und anderen +Automatisierungsgeräten zu organisieren. Die maximal zulässige Datenrate beträgt 250~kb/s und der typische +persönliche Aktionsradius liegt bei 10~m. +Sagen Sie hier Y, um LR-WPAN-Unterstützung in den Kernel zu kompilieren, oder sagen Sie M, +um sie als Module zu kompilieren. + +\paragraph{IEEE 802.15.4 experimental netlink support}$~$\\ +CONFIG\_IEEE802154\_EXPERIMENTAL [=y] \textbf{[Y]}\\ +Fügt experimentelle Netlink-Unterstützung für nl802154 hinzu. + +\paragraph{IEEE 802.15.4 socket interface}$~$\\ +CONFIG\_IEEE802154\_SOCKET [=m] \textbf{[M]}\\ +Socket-Schnittstelle für IEEE 802.15.4. Enthält eine DGRAM-Socket"=Schnittstelle für 802.15.4"=Datenrahmen. +Außerdem RAW"=Socket"=Schnittstelle zum Aufbau von MAC"=Headern aus dem Userspace. + +\paragraph{6lowpan support over IEEE 802.15.4}$~$\\ +CONFIG\_IEEE802154\_6LOWPAN [=m] \textbf{[M]}\\ +IPv6-Komprimierung über IEEE 802.15.4. + +\paragraph{Generic IEEE 802.15.4 Soft Networking Stack (mac802154)}$~$\\ +CONFIG\_MAC802154 [=m] \textbf{[M]}\\ +Diese Option aktiviert den hardwareunabhängigen IEEE 802.15.4-Netzwerkstack für SoftMAC-Geräte (die nur die PHY-Ebene des +IEEE 802.15.4-Standards implementieren).\\ +Hinweis: Diese Implementierung ist weder zertifiziert, noch mit allen Funktionen ausgestattet! Die Kompatibilität +mit anderen Implementierungen ist noch nicht getestet worden! +Wenn Sie planen, HardMAC IEEE 802.15.4 Geräte zu verwenden, können Sie hier N angeben. Alternativ können Sie auch M +angeben, um es als Modul zu kompilieren. + +\subsubsection{QoS and/or fair queueing \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NET\_SCHED [=y] \textbf{[Y]}\\* +Wenn der Kernel mehrere Pakete über ein Netzwerkgerät senden muss, muss er entscheiden, welche er zuerst +sendet, welche er verzögert und welche er verwirft. Dies ist die Aufgabe der Warteschlangendisziplinen. +Es wurden mehrere verschiedene Algorithmen vorgeschlagen, wie dies \glqq gerecht\grqq{} geschehen kann. +Wenn Sie hier N sagen, erhalten Sie den Standard-Paketplanungsalgorithmus, der ein FIFO"=Verfahren +ist (wer zuerst kommt, wird zuerst bedient). Wenn Sie hier Y angeben, können Sie aus mehreren +alternativen Algorithmen wählen, die dann an verschiedene Netzwerkgeräte angeschlossen werden können. +Dies ist z.~B. nützlich, wenn einige Ihrer Netzwerkgeräte Echtzeitgeräte sind, die eine bestimmte +Mindestdatenflussrate benötigen, oder wenn Sie die maximale Datenflussrate für Datenverkehr +begrenzen müssen, der bestimmten Kriterien entspricht. +Dieser Code wird als experimentell betrachtet.\\ +Um diese Scheduler zu verwalten, benötigen Sie die Dienstprogramme auf Benutzerebene aus dem +Paket iproute2+tc unter +\url{https://www.kernel.org/pub/linux/utils/net/iproute2/}.\\ +Dieses Paket enthält auch einige Dokumentation; mehr dazu finden Sie unter\\ +\url{http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2}.\\ +Diese Quality of Service (QoS)-Unterstützung ermöglicht es Ihnen, Differentiated Services +(diffserv) und Resource Reservation Protocol (RSVP) auf Ihrem Linux-Router zu verwenden, +wenn Sie auch die entsprechenden Klassifizierer unten mit Y bestätigen. +Dokumentation und Software finden Sie unter +\url{http://diffserv.sourceforge.net/}. +Wenn Sie hier und bei \glqq /proc file system\grqq{} Y sagen, können Sie Statusinformationen +über Paketplaner aus der Datei /proc/net/psched lesen. +Die verfügbaren Scheduler werden in den folgenden Fragen aufgelistet; +Sie können so viele mit Y für Ja beantworten, wie Sie möchten. Wenn Sie unsicher sind, +sagen Sie jetzt N. + +\paragraph*{*** Queueing/Scheduling ***}$~$\\ +\textit{(Warteschlangen/Planung)} + +\paragraph{Hierachical Token Bucket (HTB)}$~$\\ +CONFIG\_NET\_SCH\_HTB [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den HTB-Algorithmus (Hierarchical Token Buckets) für die Paketplanung +verwenden möchten. Siehe \url{http://luxik.cdi.cz/~devik/qos/htb/} für das vollständige Handbuch +und ausführliche Artikel. HTB ist in seinen Zielen dem CBQ sehr ähnlich, hat jedoch andere +Eigenschaften und einen anderen Algorithmus. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_htb} heißen. + +\paragraph{Hierachical Fair Service Curve (HFSC)}$~$\\ +CONFIG\_NET\_SCH\_HFSC [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Hierarchical Fair Service Curve (HFSC) +verwenden möchten. Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_hfsc} heißen. + +\paragraph{Multi Band Priority Queueing (PRIO)}$~$\\ +CONFIG\_NET\_SCH\_PRIO [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie einen n-Band-Prioritätswarteschlangen-Paketplaner verwenden möchten. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_prio} heißen. + +\paragraph{Hardware Multiqueue-aware Multi Band Queueing (MULTIQ)}$~$\\ +CONFIG\_NET\_SCH\_MULTIQ [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie einen n-Band-Warteschlangen-Paketplaner verwenden möchten, um Geräte +mit mehreren Hardware-Sendewarteschlangen zu unterstützen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_multiq} heißen. + +\paragraph{Random Early Detection (RED)}$~$\\ +CONFIG\_NET\_SCH\_RED [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Random Early Detection (RED)-Paketplanungsalgorithmus verwenden +möchten. +Siehe oben in $<$file:net/sched/sch\_red.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_red} heißen. + +\paragraph{Stochastic Fair Blue (SFB)}$~$\\ +CONFIG\_NET\_SCH\_SFB [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Stochastic Fair Blue (SFB) Paketplanungsalgorithmus verwenden +möchten. +Siehe den Anfang von $<$file:net/sched/sch\_sfb.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_sfb} heißen. + +\paragraph{Stochastic Fairness Queueing (SFQ)}$~$\\ +CONFIG\_NET\_SCH\_SFQ [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Stochastic Fairness Queueing (SFB) Paketplanungsalgorithmus +verwenden möchten. +Siehe den Anfang von $<$file:net/sched/sch\_sfq.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_sfq} heißen. + +\paragraph{True Link Equalizer (TEQL)}$~$\\ +CONFIG\_NET\_SCH\_TEQL [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus True Link Equalizer (TLE) verwenden +möchten. Diese Warteschlangendisziplin ermöglicht die Kombination mehrerer physischer Geräte +zu einem virtuellen Gerät. +Siehe den Anfang von $<$file:net/sched/sch\_teql.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_teql} heißen. + +\paragraph{Token Bucket Filter (TBF)}$~$\\ +CONFIG\_NET\_SCH\_TBF [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den Token Bucket Filter (TBF) Paketplanungsalgorithmus verwenden wollen. +Siehe den Anfang von $<$file:net/sched/sch\_tbf.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_tbf} heißen. + +\paragraph{Credit Based Shaper (CBS)}$~$\\ +CONFIG\_NET\_SCH\_CBS [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Credit Based Shaper (CBS)-Paketplanungsalgorithmus +verwenden möchten. +Siehe den Anfang von $<$file:net/sched/sch\_cbs.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_cbs} heißen. + +\paragraph{Earliest TxTime First (ETF)}$~$\\ +CONFIG\_NET\_SCH\_ETF [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Earliest TxTime First (ETF) +verwenden möchten. +Siehe den Anfang von $<$file:net/sched/sch\_etf.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_etf} heißen. + +\paragraph{Time Aware Priority (taprio) Scheduler}$~$\\ +CONFIG\_NET\_SCH\_TAPRIO [=m] \textbf{[M]}\\* +Geben Sie hier Y ein, wenn Sie den Algorithmus für die zeitabhängige +Prioritätsplanung (taprio) verwenden möchten. +Siehe den Anfang von $<$file:net/sched/sch\_taprio.c$>$ für weitere Details. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_taprio} genannt. + +\paragraph{Generic Random Early Detection (GRED)}$~$\\ +CONFIG\_NET\_SCH\_GRED [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den GRED-Algorithmus (Generic Random Early +Detection) zur Paketplanung für einige Ihrer Netzwerkgeräte verwenden +wollen (siehe oben in $<$file:net/sched/sch\_red.c$>$ für Details +und Referenzen über den Algorithmus). +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_gred} heißen. + +\paragraph{Network emulator (NETEM)}$~$\\ +CONFIG\_NET\_SCH\_NETEM [=m] \textbf{[M]}\\* +Sagen Sie Y, wenn Sie Netzwerkverzögerungen, -verluste und die +Umordnung von Paketen emulieren wollen. Dies ist oft nützlich, +um Netzwerke beim Testen von Anwendungen oder Protokollen zu simulieren. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{sch\_netem}.\\ +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Deficit Round Robin scheduler (DRR)}$~$\\ +CONFIG\_NET\_SCH\_DRR [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Deficit +Round Robin (DRR) verwenden wollen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_drr} genannt.\\ +Wenn Sie unsicher sind, geben Sie N an. + +\paragraph{Multi-queue priority scheduler (MQPRIO)}$~$\\ +CONFIG\_NET\_SCH\_MQPRIO [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den Multi-queue Priority Scheduler verwenden wollen. Dieser Scheduler ermöglicht +die Auslagerung von QOS auf NICs, die die Auslagerung von QOS-Schedulern unterstützen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_mqprio} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{SKB priority queue scheduler (SKBPRIO)}$~$\\ +CONFIG\_NET\_SCH\_SKBPRIO [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den SKB-Prioritätswarteschlangenplaner verwenden +wollen. Dadurch werden Pakete gemäß skb\texorpdfstring{$\rightarrow$}{->}priority eingeplant, was für +Anforderungspakete in DoS-Abwehrsystemen wie Gatekeeper nützlich ist. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_skbprio} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{CHOose and Keep responsive flow scheduler (CHOKE)}$~$\\ +CONFIG\_NET\_SCH\_CHOKE [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den CHOKe-Paketplaner verwenden wollen +(CHOose und Keep für responsive Flows, CHOose und Kill für unresponsive Flows). +Dies ist eine Variante von RED, die versucht, Datenflüsse zu bestrafen, die +die Warteschlange monopolisieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_choke} heißen. + +\paragraph{Quick Fair Queueing scheduler (QFQ)}$~$\\ +CONFIG\_NET\_SCH\_QFQ [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den Paketplanungsalgorithmus Quick Fair Queueing +Scheduler (QFQ) verwenden möchten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_qfq} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Controlled Delay AQM (CODEL)}$~$\\ +CONFIG\_NET\_SCH\_CODEL [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus mit kontrollierter +Verzögerung (CODEL) verwenden möchten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_codel} genannt. +Wenn Sie unsicher sind, geben Sie N an. + +\paragraph{Fair Queue Controlled Delay AQM (FQ\_CODEL)}$~$\\ +CONFIG\_NET\_SCH\_FQ\_CODEL [=y] \textbf{[Y]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus FQ Controlled +Delay (FQ\_CODEL) verwenden möchten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_fq\_codel} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Common Application Kept Enhanced (CAKE)}$~$\\ +CONFIG\_NET\_SCH\_CAKE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den CAKE-Algorithmus (Common Applications +Kept Enhanced) für die Warteschlangenverwaltung verwenden wollen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_cake} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Fair Queue}$~$\\ +CONFIG\_NET\_SCH\_FQ [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den FQ-Paketplanungsalgorithmus verwenden +möchten. +FQ führt eine Flussseparation durch und ist in der Lage, die vom +TCP-Stack in sk\texorpdfstring{$\rightarrow$}{->}sk\_pacing\_rate +(für lokal erzeugten Verkehr) festgelegten Geschwindigkeitsanforderungen +zu erfüllen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_fq} heißen. +Wenn Sie unsicher sind, geben Sie N an. + +\paragraph{Heavy-Hitter Filter (HHF)}$~$\\ +CONFIG\_NET\_SCH\_HHF [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Heavy-Hitter Filter +(HHF) verwenden möchten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_hhf} heißen. + +\paragraph{Proportional Integral controller Enhanced (PIE) scheduler}$~$\\ +CONFIG\_NET\_SCH\_PIE [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus +Proportional-Integral-Controller Enhanced Scheduler verwenden möchten. +Für weitere Informationen siehe \url{https://tools.ietf.org/html/rfc8033}\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_pie} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Flow Queue Proportional Integral controller Enhanced (FQ-PIE) scheduler}$~$\\ +CONFIG\_NET\_SCH\_FQ\_PIE [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Paketplanungsalgorithmus Flow Queue Proportional +Integral Controller Enhanced (FQ-PIE) verwenden möchten.\\ +Weitere Informationen finden Sie unter \url{https://tools.ietf.org/html/rfc8033}\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{sch\_fq\_pie} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Ingress/classifier-action Qdisc}$~$\\ +CONFIG\_NET\_SCH\_INGRESS [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Klassifikatoren für eingehende und/oder ausgehende Pakete +verwenden wollen. Diese qdisc tut nichts anderes, als Klassifikatoren auszuführen, +die auch mit Aktionen verbunden sein können. Im Falle von ausgehenden Paketen werden +die Klassifikatoren, die diese qdisc enthält, im Sendepfad ausgeführt, bevor das +eigentliche Enqueuing zu einer egress qdisc erfolgt. +Wenn Sie unsicher sind, sagen Sie Y. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird sch\_ingress mit dem Alias \texttt{sch\_clsact} heißen. + +\paragraph{Plug network traffic until release (PLUG)}$~$\\ +CONFIG\_NET\_SCH\_PLUG [=m] \textbf{[M]}\\* +Diese Warteschlangen-Disziplin ermöglicht es dem Userspace, über die Netlink-Schnittstelle +eine Netzwerk"=Ausgabewarteschlange anzuschließen bzw. abzuschließen. Wenn er einen +Enqueue"=Befehl erhält, fügt er einen Plug in die Ausgangswarteschlange ein, der bewirkt, +dass die nachfolgenden Pakete in die Warteschlange gestellt werden, bis ein Dequeue-Befehl +über Netlink eintrifft, wodurch der Plug entfernt und der normale Paketfluss wieder +aufgenommen wird.\\ +Dieses Modul bietet auch eine allgemeine \glqq Netzwerk-Ausgangspufferung\grqq{} (auch +bekannt als \glqq Output Commit\grqq{}), bei der beim Eintreffen eines Dequeue-Befehls +nur Pakete bis zum ersten Plug zur Auslieferung freigegeben werden. +Das Remus-HA-Projekt verwendet dieses Modul, um die spekulative Ausführung virtueller +Maschinen zu ermöglichen, indem die erzeugte Netzwerkausgabe bei Bedarf zurückgesetzt werden kann. +Weitere Informationen finden Sie unter \url{http://wiki.xenproject.org/wiki/Remus}\\ +Sagen Sie hier Y, wenn Sie diesen Kernel für Xen dom0 verwenden und Xen-Gäste mit Remus schützen wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{sch\_plug} genannt. + +\paragraph{Enhanced transmission selection scheduler (ETS)}$~$\\ +CONFIG\_NET\_SCH\_ETS [=m] \textbf{[M]}\\* +Der Enhanced Transmission Selection-Scheduler ist eine klassenbasierte Warteschlangen-Disziplin, +die die Funktionalität von PRIO- und DRR-QS-Disks in einem Scheduler vereint. ETS erleichtert +die Konfiguration einer Reihe strikter und bandbreitenteilender Bänder zur Umsetzung der in +802.1Qaz beschriebenen Übertragungsauswahl.\\ +Sagen Sie hier Y, wenn Sie den ETS-Paketplanungsalgorithmus verwenden möchten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{sch\_ets}. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Allow override default queue discipline \texorpdfstring{$\rightarrow$}{->}}$~$\\ +CONFIG\_NET\_SCH\_DEFAULT [=y] \textbf{[Y]}\\* +Unterstützung für die Auswahl der Standard"=Warteschlangen"=Disziplin. +Fast alle Benutzer können hier sicher nein sagen, und es wird der Standardwert pfifo\_fast verwendet. +Viele Distributionen setzen den Standardwert bereits über /proc/sys/net/core/default\_qdisc. +Wenn Sie unsicher sind, sagen Sie N. + +\subparagraph{Default queuing discipline () \texorpdfstring{$\rightarrow$}{->}}$~$\\ +Wählen Sie die Warteschlangendisziplin, die standardmäßig für alle Netzwerkgeräte verwendet wird. + +\subsubparagraph{Fair Queue}$~$\\ +CONFIG\_DEFAULT\_FQ [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\subsubparagraph{Controlled Delay}$~$\\ +CONFIG\_DEFAULT\_CODEL [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\subsubparagraph{Fair Queue Controlled Delay}$~$\\ +CONFIG\_DEFAULT\_FQ\_CODEL [=y] \textbf{[Y]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\subsubparagraph{Flow Queue Proportional Integral controller Enhanced}$~$\\ +CONFIG\_DEFAULT\_FQ\_PIE [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\subsubparagraph{Stochastic Fair Queue}$~$\\ +CONFIG\_DEFAULT\_SFQ [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\subsubparagraph{Priority FIFO Fast}$~$\\ +CONFIG\_DEFAULT\_PFIFO\_FAST [=n] \textbf{[N]}\\* +Für diese Option ist keine Hilfe verfügbar. + +\paragraph*{*** Classification ***}$~$\\ +\textit{(Klassifizierung)} + +\paragraph{Elementary classification (BASIC)}$~$\\ +CONFIG\_NET\_CLS\_BASIC [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Pakete nur mit erweiterten Übereinstimmungen und Aktionen klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cls\_basic} heißen. + +\paragraph{Routing decision (ROUTE)}$~$\\ +CONFIG\_NET\_CLS\_ROUTE4 [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, können Sie die Pakete nach dem entsprechenden Eintrag in der +Routentabelle klassifizieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_route} heißen. + +\paragraph{Netfilter mark (FW)}$~$\\ +CONFIG\_NET\_CLS\_FW [=m] \textbf{[M]}\\* +Wenn Sie hier Y eingeben, können Sie Pakete nach Netzfilter-/Firewall-Marken klassifizieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cls\_fw} heißen. + +\paragraph{Universal 32bit comparisons w/ hashing (U32)}$~$\\ +CONFIG\_NET\_CLS\_U32 [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um Pakete mit einem universellen, auf 32-Bit-Stücken basierenden Vergleichsschema +klassifizieren zu können. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_u32} heißen. + +\subparagraph{Performance counters support}$~$\\ +CONFIG\_CLS\_U32\_PERF [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, damit u32 zusätzliche Statistiken sammelt, die für die Feinabstimmung +der u32-Klassifikatoren nützlich sind. + +\subparagraph{Netfilter marks support}$~$\\ +CONFIG\_CLS\_U32\_MARK [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, um Netfilter-Marken als u32-Schlüssel verwenden zu können. + +\paragraph{Flow classifier}$~$\\ +CONFIG\_NET\_CLS\_FLOW [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage einer konfigurierbaren +Kombination von Paketschlüsseln klassifizieren. Dies ist vor allem in Kombination +mit SFQ nützlich. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_flow} heißen. + +\paragraph{Control Group Classifier}$~$\\ +CONFIG\_NET\_CLS\_CGROUP [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage der Kontrollgruppe ihres Prozesses +klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_cgroup} genannt. + +\paragraph{BPF-based classifier}$~$\\ +CONFIG\_NET\_CLS\_BPF [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage von programmierbaren +BPF-Filtern (JIT'ed) als Alternative zu Ematches klassifizieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_bpf} genannt. + +\paragraph{Flower classifier}$~$\\ +CONFIG\_NET\_CLS\_FLOWER [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage einer konfigurierbaren +Kombination von Paketschlüsseln und Masken klassifizieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_flower} heißen. + +\paragraph{Match-all classifier}$~$\\ +CONFIG\_NET\_CLS\_MATCHALL [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, können Sie Pakete auf der Grundlage von nichts klassifizieren. +Jedes Paket wird übereinstimmen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cls\_matchall} heißen. + +\paragraph{Extended Matches}$~$\\ +CONFIG\_NET\_EMATCH [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, wenn Sie erweiterte Übereinstimmungen zusätzlich zu den +Klassifikatoren verwenden möchten, und wählen Sie die erweiterten Übereinstimmungen +unten aus. +Erweiterte Übereinstimmungen sind kleine Klassifikationshilfen, für die es sich +nicht lohnt, einen eigenen Klassifikator zu schreiben. Eine aktuelle Version des +Pakets iproute2 ist erforderlich, um erweiterte Übereinstimmungen zu verwenden. + +\subparagraph{Stack size}$~$\\ +CONFIG\_NET\_EMATCH\_STACK [=32] \textbf{[32]}\\* +Größe der lokalen Stack-Variablen, die bei der Auswertung des Ematch"=Baums +verwendet wird. Begrenzt die Tiefe des Baums, d.~h. die Anzahl der eingekapselten +Präzedenzfälle. Jede Ebene erfordert 4~Byte zusätzlichen Stack-Speicherplatz. + +\subparagraph{Simple packet data comparison}$~$\\ +CONFIG\_NET\_EMATCH\_CMP [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage einfacher Paketdatenvergleiche +für 8-, 16- und 32-Bit-Werte klassifizieren möchten. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_cmp} genannt. + +\subparagraph{Multi byte comparison}$~$\\ +CONFIG\_NET\_EMATCH\_NBYTE [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage von Vergleichen mehrerer +Bytes klassifizieren möchten, was vor allem für IPv6"=Adressvergleiche nützlich +ist. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_nbyte} heißen. + +\subparagraph{U32 key}$~$\\ +CONFIG\_NET\_EMATCH\_U32 [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Pakete mit dem berühmten u32-Schlüssel in Kombination +mit logischen Beziehungen klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_u32} heißen. + +\subparagraph{Metadata}$~$\\ +CONFIG\_NET\_EMATCH\_META [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie Pakete auf der Grundlage von Metadaten wie +Lastdurchschnitt, Netzfilterattributen, Socket-Attributen und Routing-Entscheidungen +klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_meta} heißen. + +\subparagraph{Textsearch}$~$\\ +CONFIG\_NET\_EMATCH\_TEXT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage von Textsuchvergleichen +klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_text} heißen. + +\subparagraph{CAN Identifier}$~$\\ +CONFIG\_NET\_EMATCH\_CANID [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie CAN-Frames anhand des CAN-Identifiers +klassifizieren möchten. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_canid} genannt. + +\subparagraph{IPset}$~$\\ +CONFIG\_NET\_EMATCH\_IPSET [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Pakete auf der Grundlage der ipset-Zugehörigkeit +klassifizieren wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_ipset} heißen. + +\subparagraph{IPtables Matches}$~$\\ +CONFIG\_NET\_EMATCH\_IPT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um Pakete anhand von iptables-Übereinstimmungen +klassifizieren zu können. +Die aktuell unterstützte Übereinstimmung ist \glqq policy\grqq{}, +die die Klassifizierung von Paketen auf der Grundlage der IPsec"=Richtlinie +erlaubt, die während der Entkapselung verwendet wurde. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{em\_ipt} heißen. + +\paragraph{Actions}$~$\\ +CONFIG\_NET\_CLS\_ACT [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, wenn Sie Aktionen zur Verkehrssteuerung verwenden möchten. +Aktionen werden an Klassifikatoren angehängt und nach einer erfolgreichen +Klassifizierung aufgerufen. Sie werden verwendet, um das +Klassifizierungsergebnis zu überschreiben, Pakete sofort zu verwerfen oder +umzuleiten, usw. +Eine aktuelle Version des iproute2-Pakets ist erforderlich, um erweiterte +Übereinstimmungen zu verwenden. + +\subparagraph{Traffic Policing}$~$\\ +CONFIG\_NET\_ACT\_POLICE [=m] \textbf{[M]}\\* +Geben Sie hier Y an, wenn Sie den Datenverkehr überwachen wollen, d.~h. eine strikte Bandbreitenbegrenzung. +Diese Aktion ersetzt das bestehende Policing-Modul. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_police} heißen. + +\subparagraph{Generic actions}$~$\\ +CONFIG\_NET\_ACT\_GACT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um allgemeine Aktionen wie das Verwerfen und Annehmen von Paketen durchzuführen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_gact} genannt. + +\subsubparagraph{Probability support}$~$\\ +CONFIG\_GACT\_PROB [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, um die generische Aktion zufällig oder deterministisch zu verwenden. + +\subparagraph{Redirecting and Mirroring}$~$\\ +CONFIG\_NET\_ACT\_MIRRED [=m] \textbf{[M]}\\* +Geben Sie hier Y ein, um zuzulassen, dass Pakete gespiegelt oder an andere Geräte umgeleitet werden. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_mirred} genannt. + +\subparagraph{Traffic Sampling}$~$\\ +CONFIG\_NET\_ACT\_SAMPLE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die Paketprobenahme tc Aktion zu erlauben. Bei der Aktion +\glqq Paketprobenahme\grqq{} werden Pakete statistisch ausgewählt und mit dem Modul +\texttt{psample} gesampelt. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_sample} genannt. + +\subparagraph{IPtables targets}$~$\\ +CONFIG\_NET\_ACT\_IPT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um nach erfolgreicher Klassifizierung iptables"=Ziele aufrufen zu können. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_ipt} genannt. + +\subparagraph{Stateless NAT}$~$\\ +CONFIG\_NET\_ACT\_NAT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um zustandsloses NAT für IPv4-Pakete durchzuführen. +Sie sollten netfilter für NAT verwenden, wenn Sie nicht wissen, was Sie tun. +Um diesen Code als Modul zu kompilieren, wähle hier M: +Das Modul wird \texttt{act\_nat} heißen. + +\subparagraph{Packet Editing}$~$\\ +CONFIG\_NET\_ACT\_PEDIT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie den Inhalt von Paketen verfälschen wollen. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_pedit} genannt. + +\subparagraph{Simple Example (Debug)}$~$\\ +CONFIG\_NET\_ACT\_SIMP [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um eine einfache Aktion zu Demonstrationszwecken hinzuzufügen. +Sie ist als Beispiel und zu Debugging"=Zwecken gedacht. Sie gibt eine konfigurierte +Richtlinienzeichenkette gefolgt von der Anzahl der Pakete auf der Konsole für jedes +Paket aus, das vorbeigeht. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_simple} genannt. + +\subparagraph{SKB Editing}$~$\\ +CONFIG\_NET\_ACT\_SKEDIT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die skb-Priorität oder die queue\_mapping"=Einstellungen zu ändern. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_skbedit} genannt. + +\subparagraph{Checksum Updating}$~$\\ +CONFIG\_NET\_ACT\_CSUM [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um eine allgemeine Prüfsumme nach einigen direkten Paketänderungen zu aktualisieren. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_csum} genannt. + +\subparagraph{MPLS manipulation}$~$\\ +CONFIG\_NET\_ACT\_MPLS [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um MPLS-Header zu schieben oder zu entfernen (push or pop). +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_mpls} genannt. + +\subparagraph{Vlan manipulation}$~$\\ +CONFIG\_NET\_ACT\_VLAN [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um vlan-Header zu verschieben oder zu löschen (push or pop). +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_vlan} genannt. + +\subparagraph{BPF based action}$~$\\ +CONFIG\_NET\_ACT\_BPF [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um den BPF-Code für die Pakete auszuführen. Der BPF-Code entscheidet, +ob das Paket verworfen werden soll oder nicht. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_bpf} genannt. + +\subparagraph{Netfilter Connection Mark Retriever}$~$\\ +CONFIG\_NET\_ACT\_CONNMARK [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um das Abrufen der Verbindungsmarkierung zu erlauben. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_connmark} genannt. + +\subparagraph{Netfilter Connection Mark Actions}$~$\\ +CONFIG\_NET\_ACT\_CTINFO [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die Übertragung einer gespeicherten Information zu erlauben. Aktuelle Aktionen +übertragen in connmark gespeicherte DSCP in ipv4/v6 diffserv und/oder übertragen connmark in +packet mark. Beides ist nützlich, um egress-basierte Markierungen wieder auf ingress-Verbindungen für +qdisc"=Prioritätszuordnungszwecke zu übertragen.\\ +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_ctinfo} genannt. + +\subparagraph{skb data modification action}$~$\\ +CONFIG\_NET\_ACT\_SKBMOD [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die Änderung von skb-Daten zu erlauben. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_skbmod} genannt. + +\subparagraph{Inter-FE action based on IETF ForCES interFE LFB}$~$\\ +CONFIG\_NET\_ACT\_IFE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die Beschaffung und Beendigung von Metadaten zu ermöglichen. +Einzelheiten finden Sie im netdev01-Dokument: +\glqq Verteilendes Linux-Verkehrskontroll-Klassifikator-Aktions-Subsystem\grqq{}\\ +Autoren: Jamal Hadi Salim und Damascene M. Joachimpillai\\ +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{act\_ife} heißen. + +\subparagraph{IP tunnel metadata manipulation}$~$\\ +CONFIG\_NET\_ACT\_TUNNEL\_KEY [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um ip-Tunnel-Metadaten zu setzen/freizugeben. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird +\texttt{act\_tunnel\_key} heißen. + +\subparagraph{connection tracking tc action}$~$\\ +CONFIG\_NET\_ACT\_CT [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um das Senden der Pakete an das Modul conntrack zu erlauben. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_ct} genannt. + +\subparagraph{Frame gate entry list control tc action}$~$\\ +CONFIG\_NET\_ACT\_GATE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um zu ermöglichen, dass der Eingangsstrom zu einem bestimmten Zeitschlitz +durchgelassen und zu einem anderen bestimmten Zeitschlitz durch die Gate-Eingangsliste fallen +gelassen wird. +Wenn Sie unsicher sind, sagen Sie N. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{act\_gate} genannt. + +\paragraph{Support to encoding decoding skb mark on IFE action}$~$\\ +CONFIG\_NET\_IFE\_SKBMARK [=m] \textbf{[M]}\\* +\textit{Unterstützung für die Kodierung und Dekodierung der skb-Markierung bei IFE-Aktionen}\\ +Für diese Option ist keine Hilfe verfügbar. + +\paragraph{Support to encoding decoding skb prio on IFE action}$~$\\ +CONFIG\_NET\_IFE\_SKBPRIO [=m] \textbf{[M]}\\* +\textit{Unterstützung für die Kodierung und Dekodierung von skb prio bei IFE-Aktionen} +Für diese Option ist keine Hilfe verfügbar. + +\paragraph{Support to encoding decoding skb tcindex on IFE action}$~$\\ +CONFIG\_NET\_IFE\_SKBTCINDEX [=m] \textbf{[M]}\\* +\textit{Unterstützung für die Kodierung und Dekodierung von skb tcindex bei IFE-Aktionen}\\ +Für diese Option ist keine Hilfe verfügbar. + +\paragraph{TC recirculation support}$~$\\ +CONFIG\_NET\_TC\_SBK\_EXT [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, damit tc-Kettenfehler im OvS-Datenpfad in der richtigen recirc\_id und +Hardware"=Kettenfehler in der richtigen Kette im tc"=Software"=Datenpfad fortgesetzt +werden können. +Sagen Sie hier N, wenn Sie +tc\texorpdfstring{$\leftrightarrow$}{<->}ovs +offload oder tc chains offload nicht verwenden wollen. + +\subsubsection{Data Center Bridging support} +CONFIG\_DCB [=y] \textbf{[Y]}\\* +Dies ermöglicht die Unterstützung für die Konfiguration von Data Center Bridging (DCB)"=Funktionen +auf DCB"=fähigen Ethernet"=Adaptern über rtnetlink. Sagen Sie Y, wenn Sie einen DCB"=fähigen +Ethernet"=Adapter haben, der diese Schnittstelle unterstützt, und Sie an einen DCB"=fähigen +Switch angeschlossen sind. DCB ist eine Sammlung von Ethernet"=Erweiterungen, die es DCB"=fähigen +NICs und Switches ermöglichen, Netzwerkverkehr mit unterschiedlichen Anforderungen (hochzuverlässig, +keine Ausfälle vs. Best Effort vs. niedrige Latenz) auf dem Ethernet nebeneinander zu unterstützen. +Zu den DCB-Funktionen gehören: +Enhanced Transmission Selection (auch bekannt als Priority Grouping) -- bietet einen Rahmen für die +Zuweisung von Bandbreitengarantien an Verkehrsklassen. +Prioritätsbasierte Flusssteuerung (PFC) -- ein MAC"=Kontrollpausenrahmen, der auf der Granularität +der 802.1p"=Priorität und nicht auf der der Verbindung (802.3x) arbeitet. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{DNS Resolver support} +CONFIG\_DNS\_RESOLVER [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, wird auch der Schlüsseltyp DNS Resolver unterstützt, der für Upcalls +verwendet werden kann, um DNS-Lookups im Userspace durchzuführen. +DNS Resolver wird verwendet, um DNS-Server nach Informationen zu fragen. Beispiele hierfür sind die +Auflösung eines UNC"=Hostnamen"=Elements in eine IP"=Adresse für CIFS oder die Durchführung einer +DNS"=Abfrage nach AFSDB"=Einträgen, damit AFS die Datenbankserver für den Speicherort einer Zelle +finden kann. +DNS Resolver wird von den Modulen CIFS und AFS verwendet und würde später auch SMB2 unterstützen. +DNS Resolver wird von der Userspace-Aufrufhilfe \texttt{/sbin/dns.resolver} über +/etc/request-key.conf unterstützt. +Siehe $<$file:Documentation/networking/dns\_resolver.rst$>$ für weitere Informationen. +Um dies als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{dnsresolver} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{B.A.T.M.A.N. Advanced Meshing Protocol} +CONFIG\_BATMAN\_ADV [=m] \textbf{[M]}\\* +B.A.T.M.A.N. (better approach to mobile ad-hoc networking) ist ein Routing"=Protokoll für +Multi"=Hop"=Ad"=hoc"=Mesh"=Netze. Die Netze können drahtgebunden oder drahtlos sein.\\ +Siehe \url{https://www.open-mesh.org/} für weitere Informationen und User Space Tools. + +\paragraph{B.A.T.M.A.N. V protocol}$~$\\ +CONFIG\_BATMAN\_ADV\_BATMAN\_V [=y] \textbf{[Y]}\\* +Diese Option aktiviert das B.A.T.M.A.N.-V"=Protokoll, den Nachfolger des derzeit verwendeten\\ +B.A.T.M.A.N."=IV"=Protokolls. Zu den wichtigsten Änderungen gehören die Aufteilung des +OGM"=Protokolls in ein Nachbarschaftserkennungsprotokoll (Echo Location Protocol, ELP) und ein +neues OGM"=Protokoll OGMv2 zum Fluten von Protokollinformationen durch das Netz sowie eine +durchsatzbasierte Metrik. +B.A.T.M.A.N. V gilt derzeit als experimentell und ist nicht mit B.A.T.M.A.N. IV"=Netzen kompatibel. + +\paragraph{Bridge Loop Avoidance}$~$\\ +CONFIG\_BATMAN\_ADV\_BLA [=y] \textbf{[Y]}\\* +Diese Option aktiviert BLA (Bridge Loop Avoidance), einen Mechanismus zur Vermeidung von +Ethernet"=Rahmenschleifen, wenn Mesh"=Knoten sowohl mit demselben LAN als auch mit demselben Mesh +verbunden sind. Wenn Sie nie mehr als einen Mesh"=Knoten im selben LAN verwenden werden, können Sie +diese Funktion getrost entfernen und etwas Platz sparen. + +\paragraph{Distributed ARP Table}$~$\\ +CONFIG\_BATMAN\_ADV\_DAT [=y] \textbf{[Y]}\\* +Diese Option aktiviert DAT (Distributed ARP Table), einen DHT"=basierten Mechanismus, der die +ARP"=Zuverlässigkeit in spärlichen drahtlosen Mesh"=Netzwerken erhöht. +Wenn Sie der Meinung sind, dass Ihr Netzwerk diese Option nicht benötigt, können Sie sie getrost +entfernen und etwas Platz sparen. + +\paragraph{Network Coding}$~$\\ +CONFIG\_BATMAN\_ADV\_NC [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Netzwerkcodierung aktiviert, ein Mechanismus, der darauf abzielt, den +Gesamtdurchsatz des Netzwerks zu erhöhen, indem mehrere Pakete in einer Übertragung zusammengefasst +werden. +Beachten Sie, dass Schnittstellen, die von batman-adv kontrolliert werden, manuell so konfiguriert +werden müssen, dass der promiscuous mode aktiviert ist, damit die Netzwerkcodierung funktioniert. +Wenn Sie der Meinung sind, dass Ihr Netzwerk diese Funktion nicht benötigt, können Sie sie getrost +deaktivieren und etwas Platz sparen. + +\paragraph{Multicast optimisation}$~$\\ +CONFIG\_BATMAN\_ADV\_MCAST [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Multicast-Optimierung aktiviert, die darauf abzielt, den Air"=Overhead +zu reduzieren und gleichzeitig die Zuverlässigkeit von Multicast"=Nachrichten zu verbessern. + +\paragraph{B.A.T.M.A.N. debugging}$~$\\ +CONFIG\_BATMAN\_ADV\_DEBUG [=n] \textbf{[N]}\\* +Dies ist eine Option für Entwickler; die meisten Leute sollten hier N angeben. Dies aktiviert die +Kompilierung der Unterstützung für die Ausgabe von Debugging"=Informationen in den +Tracing"=Puffer. Die Ausgabe wird über die batadv netdev"=spezifische log\_level"=Einstellung +gesteuert. + +\paragraph{B.A.T.M.A.N. tracing support}$~$\\ +CONFIG\_BATMAN\_ADV\_TRACING [=n] \textbf{[N]}\\* +Dies ist eine Option für Entwickler; die meisten Leute sollten hier N angeben. Wählen Sie diese +Option, um Traces wie die Debug"=Meldungen unter Verwendung der generischen Tracing"=Infrastruktur +des Kernels zu sammeln. +BATMAN\_ADV\_DEBUG muss ebenfalls ausgewählt werden, um Trace-Ereignisse für batadv\_dbg zu erhalten. + +\subsubsection{Open vSwitch} +CONFIG\_OPENVSWITCH [=m] \textbf{[M]}\\* +Open vSwitch ist ein Multilayer"=Ethernet"=Switch für virtualisierte Umgebungen. +Er unterstützt nicht nur eine Vielzahl von Funktionen, die von einem herkömmlichen Hardware"=Switch +erwartet werden, sondern ermöglicht auch eine feinkörnige programmatische Erweiterung und eine +flussbasierte Steuerung des Netzwerks. Diese Kontrolle ist in einer Vielzahl von Anwendungen nützlich, +aber besonders wichtig in Multi"=Server"=Virtualisierungsumgebungen, die oft durch hochdynamische +Endpunkte und die Notwendigkeit gekennzeichnet sind, logische Abstraktionen für mehrere Mandanten +aufrechtzuerhalten. Der \glqq Open vSwitch\grqq{}"=Datenpfad bietet einen schnellen Pfad für die +Paketweiterleitung im Kernel. Er wird durch einen Userspace"=Daemon, ovs-vswitchd, ergänzt, der in +der Lage ist, Konfigurationen aus einer Vielzahl von Quellen zu akzeptieren und sie in Regeln für +die Paketverarbeitung zu übersetzen. +Siehe \url{http://openvswitch.org} für weitere Informationen und Userspace"=Utilities. Um diesen +Code als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{openvswitch} heißen. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Open vSwitch GRE tunneling support}$~$\\ +CONFIG\_OPENVSWITCH\_GRE [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, kann der Open vSwitch GRE vport erstellen. +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Open vSwitch VXLAN tunneling support}$~$\\ +CONFIG\_OPENVSWITCH\_VXLAN [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, kann der Open vSwitch vxlan vport erstellen. Sagen Sie N, um diese +Unterstützung auszuschließen und die Binärgröße zu reduzieren. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Open vSwitch Geneve tunneling support}$~$\\ +CONFIG\_OPENVSWITCH\_GENEVE [=m] \textbf{[M]}\\* +Wenn Sie hier Y angeben, kann der Open vSwitch geneve vport erstellen. +Sagen Sie N, um diese Unterstützung auszuschließen und die Binärgröße zu reduzieren. + +\subsubsection{Virtual Socket protocol} +CONFIG\_VSOCKETS [=m] \textbf{[M]}\\* +Das Virtual Socket Protocol ist ein TCP/IP-ähnliches Socket"=Protokoll, das die Kommunikation zwischen +virtuellen Maschinen und Hypervisor oder Host ermöglicht. +Sie sollten auch einen oder mehrere der folgenden hypervisorspezifischen Transporte auswählen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{vsock} heißen. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Virtual Sockets monitoring interface}$~$\\ +CONFIG\_VSOCKETS\_DIAG [=m] \textbf{[M]}\\* +Unterstützung für die PF\_VSOCK-Socket"=Überwachungsschnittstelle, die vom ss"=Tool verwendet wird. +Wenn Sie unsicher sind, sagen Sie Y. +Aktivieren Sie dieses Modul, damit Userspace"=Anwendungen offene Sockets abfragen können. + +\paragraph{Virtual Sockets loopback transport}$~$\\ +CONFIG\_VSOCKETS\_LOOPBACK [=m] \textbf{[M]}\\* +Dieses Modul implementiert einen Loopback-Transport für Virtual Sockets unter Verwendung von\\ +vmw\_vsock\_virtio\_transport\_common. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{vsock\_loopback} genannt. Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{VMware VMCI transport for Virtual Sockets}$~$\\ +CONFIG\_VMWARE\_VMCI\_VSOCKETS [=m] \textbf{[M]}\\* +Dieses Modul implementiert einen VMCI-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, +wenn Ihre virtuelle Maschine auf einem VMware"=Hypervisor läuft. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird vmw\_vsock\_vmci\_transport heißen. Wenn Sie unsicher sind, wählen Sie N. + +\paragraph{virtio transport for Virtual Sockets}$~$\\ +CONFIG\_VIRTIO\_VSOCKETS [=m] \textbf{[M]}\\* +Dieses Modul implementiert einen Virtio-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, +wenn Ihr Virtual Machine-Host Virtual Sockets über virtio unterstützt. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird vmw\_vsock\_virtio\_transport heißen. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Hyper-V transport for Virtual Sockets} +CONFIG\_HYPERV\_VSOCKETS [=m] \textbf{[M]}\\* +Dieses Modul implementiert einen Hyper-V-Transport für virtuelle Sockets. Aktivieren Sie diesen Transport, +wenn Ihr Virtual Machine Host Virtual Sockets über Hyper-V VMBus unterstützt. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{hv\_sock} genannt. Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{NETLINK: socket monitoring interface} +CONFIG\_NETLINK\_DIAG [=m] \textbf{[M]}\\* +Unterstützung für die NETLINK"=Socket"=Überwachungsschnittstelle, die vom ss"=Tool verwendet wird. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{MultiProtocol Label Switching \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_MPLS [=y] \textbf{[Y]}\\* +MultiProtocol Label Switching leitet Pakete durch logische Schaltkreise. +Ursprünglich als Möglichkeit zur Weiterleitung von Paketen mit +Hardware-Geschwindigkeit konzipiert (bevor die Hardware in der Lage war, +ipv4-Pakete weiterzuleiten), ist MPLS nach wie vor ein einfaches Verfahren zur +Herstellung von Tunneln. +Wenn Sie noch nie etwas von MPLS gehört haben, sollten Sie hier N sagen. + +\paragraph{MPLS: GSO support}$~$\\ +CONFIG\_NET\_MPLS\_GSO [=m] \textbf{[M]}\\* +Dies ist ein Hilfsmodul, das die Segmentierung von Nicht-MPLS-GSO"=Paketen +ermöglicht, denen MPLS"=Stack"=Einträge hinzugefügt wurden, so dass sie zu +MPLS-GSO"=Paketen werden. + +\paragraph{MPLS: routing support}$~$\\ +CONFIG\_MPLS\_ROUTING [=m] \textbf{[M]}\\* +Hinzufügen von Unterstützung für die Weiterleitung von mpls"=Paketen. + +\subparagraph{MPLS: IP over MPLS tunnel support}$~$\\ +CONFIG\_MPLS\_IPTUNNEL [=m] \textbf{[M]}\\* +Unterstützung von mpls ip tunnel. + +\subsubsection{Network Service Header (NSH) protocol ---} +CONFIG\_NET\_NSH [=m] \textbf{[M]}\\* +Network Service Header ist eine Implementierung von Service Function Chaining +(RFC~7665). Die aktuelle Implementierung in Linux unterstützt nur MD~Typ~1 und +nur mit dem openvswitch"=Modul. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{High-availability Seamless Redundancy (HSR \& PRP)} +CONFIG\_HSR [=m] \textbf{[M]}\\* +Dies ermöglicht die in IEC~62439 definierte hochverfügbare nahtlose Redundanz +(HSR) und das Parallel Redundancy Protocol (PRP). +Wenn Sie hier Y angeben, kann Ihr Linux"=Rechner als DANH +(\glqq Doubly attached node implementing HSR\grqq{}) oder DANP (\glqq Doubly +attached node implementing PRP\grqq{}) fungieren. Damit dies funktioniert, +benötigt Ihr Linux"=Rechner (mindestens) zwei physische Ethernet"=Schnittstellen.\\ +Für DANH muss er als Knoten in einem Ringnetz zusammen mit anderen HSR-fähigen +Knoten angeschlossen sein. Alle über das HSR-Gerät gesendeten Ethernet"=Frames +werden in beide Richtungen auf dem Ring (über beide Slave-Ports) gesendet, +wodurch ein redundantes, sofort ausfallsicheres Netzwerk entsteht. +Jeder HSR"=Knoten im Ring verhält sich für HSR"=Rahmen wie eine Brücke, filtert +aber Rahmen, die bereits weitergeleitet wurden.\\ +Für DANP muss er als Knoten angeschlossen werden, der über die beiden +Slave"=Schnittstellen mit zwei getrennten Netzen verbunden ist. +Wie bei HSR werden Ethernet"=Rahmen, die über das PRP"=Gerät gesendet werden, +an beide Netze weitergeleitet, so dass ein redundantes, sofort ausfallsicheres +Netz entsteht. Im Gegensatz zu HSR können PRP-Netze über Singly +Attached Nodes (SAN) wie PC, Drucker, Brücken usw. verfügen und mit +DANP-Knoten kommunizieren.\\ +Dieser Code ist ein Versuch, die HSR-Norm, wie sie in IEC~62439-3:2010 (HSRv0) +und IEC~62439-3:2012 (HSRv1) beschrieben ist, und die PRP-Norm, wie sie +in IEC~62439-4:2012 (PRP) beschrieben ist, zu erfüllen, aber es wurden keine +Konformitätstests durchgeführt. Verwenden Sie iproute2, um das gewünschte +Protokoll auszuwählen.\\ +Sie müssen alle notwendigen Tests selbst durchführen, bevor Sie sich auf +diesen Code in einem sicherheitskritischen System verlassen!\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Switch (and switch-ish) device support} +CONFIG\_NET\_SWITCHDEV [=y] \textbf{[Y]}\\* +\textit{Unterstützung von Switches (und Switch-ähnlichen Geräten)}\\ +Dieses Modul stellt eine Verbindung zwischen dem Kern-Netzwerkcode und +den Gerätetreibern her, um Hardware-Switch-Chips im sehr allgemeinen +Sinne des Wortes \glqq Switch\grqq{} zu unterstützen. Dazu gehören Geräte, +die L2/L3 unterstützen, aber auch verschiedene Flow-Offloading-Chips, +einschließlich in SR-IOV-NICs eingebettete Switches. + +\subsubsection{L3 Master device support} +CONFIG\_NET\_L3\_MASTER\_DEV [=y] \textbf{[Y]}\\* +Dieses Modul stellt eine Verbindung zwischen dem Kernnetzcode und den +Gerätetreibern her, um L3"=Master"=Geräte wie VRF zu unterstützen. + +\subsubsection{Qualcomm IPC Router support} +CONFIG\_QRTR [=m] \textbf{[M]}\\* +Sagen Sie Y, wenn Sie das IPC-Routerprotokoll von Qualcomm verwenden möchten. +Das Protokoll wird für die Kommunikation mit Diensten verwendet, die +von anderen Hardware-Blöcken im System bereitgestellt werden. +Für die Suche nach Diensten ist ein Userspace"=Daemon erforderlich, +der eine Diensteliste führt. + +\paragraph{SMD IPC Router channels}$~$\\ +CONFIG\_QRTR\_SMD [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um SMD-basierte ipcrouter"=Kanäle zu unterstützen. +SMD ist der gebräuchlichste Transport für IPC"=Router. + +\paragraph{TUN device for Qualcomm IPC Router}$~$\\ +CONFIG\_QRTR\_TUN [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um ein Zeichengerät freizugeben, das es dem Userspace erlaubt, +Endpunkte von QRTR zu implementieren, um Daten zu anderen Hosts zu tunneln oder +zu testen. + +\paragraph{MHI IPC Router channels}$~$\\ +CONFIG\_QRTR\_MHI [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um MHI-basierte ipcrouter-Kanäle zu unterstützen. +MHI ist der Transport, der für die Kommunikation mit externen Modems verwendet wird. + +\subsubsection{NCSI interface support} +CONFIG\_NET\_NCSI [=y] \textbf{[Y]}\\* +Dieses Modul bietet NCSI-Unterstützung (Network Controller Sideband Interface). +Aktivieren Sie dies nur, wenn Ihr System eine Verbindung zu einem Netzwerkgerät +über NCSI herstellt und der verwendete Ethernet-Treiber das Protokoll +ausdrücklich unterstützt. + +\paragraph{Get NCSI OEM MAC Address}$~$\\ +CONFIG\_NCSI\_OEM\_CMD\_GET\_MAC [=y] \textbf{[Y]}\\* +Dies ermöglicht es, die MAC-Adresse von der NCSI-Firmware zu erhalten +und sie auf den Controller zurückzusetzen. + +\paragraph{Keep PHY Link up}$~$\\ +CONFIG\_NCSI\_OEM\_CMD\_KEEP\_PHY [=y] \textbf{[Y]}\\* +Dies ermöglicht es, die PHY-Verbindung aufrechtzuerhalten und verhindert ein +Zurücksetzen des Kanals während der Belastung durch den Host. + +\subsubsection{Use percpu variables to maintain network device refcount} +CONFIG\_PCPU\_DEV\_REFCNT [=y] \textbf{[Y]}\\* +Netzwerkgerät refcount verwenden pro CPU-Variablen, wenn diese Option gesetzt ist. +Dies kann auf N erzwungen werden, um Unterläufe zu erkennen (mit Leistungseinbußen). + +\subsubsection{Maximum number of fragments per skb\_shared\_info} +CONFIG\_MAX\_SKB\_FRAGS [=17] \textbf{[17]}\\* +Eine größere Anzahl von Fragmenten pro\ skb\_shared\_info kann die Effizienz von +GRO erhöhen. Dies hilft bei großen TCP"=Arbeitslasten, kann aber Fehler in +einigen älteren Treibern aufdecken.\\ +Dies erhöht auch den Speicher"=Overhead von kleinen Paketen und in Treibern, +die build\_skb() verwenden.\\ +Wenn Sie unsicher sind, sagen Sie 17. + +\subsubsection{Network priority cgroup} +CONFIG\_CGROUP\_NET\_PRIO [=y] \textbf{[Y]}\\* +Cgroup-Subsystem zur Verwendung bei der Zuweisung von Prozessen zu +Netzwerkprioritäten auf Schnittstellenbasis. + +\subsubsection{Network classid cgroup} +CONFIG\_CGROUP\_NET\_CLASSID [=y] \textbf{[Y]}\\* +Cgroup-Subsystem zur Verwendung als Allzweck-Socket-Classid-Marker, der in +cls\_cgroup und für den Netzfilterabgleich verwendet wird. + +\subsubsection{enable BPF STREAM\_PARSER} +CONFIG\_BPF\_STREAM\_PARSER [=y] \textbf{[Y]}\\* +Wenn Sie dies aktivieren, kann ein TCP"=Stream"=Parser mit +BPF\_MAP\_TYPE\_SOCKMAP verwendet werden. + +\subsubsection{Network testing \texorpdfstring{$\rightarrow$}{->}} +\textit{(Netzwerktests)} + +\paragraph{Packet Generator (USE WITH CAUTION)}$~$\\ +CONFIG\_NET\_PKTGEN [=m] \textbf{[M]}\\* +\textit{(Paketgenerator (mit Vorsicht zu verwenden))}\\ +Dieses Modul sendet vorkonfigurierte Pakete mit einer konfigurierbaren Rate über eine +bestimmte Schnitt"-stel"-le. Es wird für Belastungstests und Leistungsanalysen von +Netzwerk"-schnittstellen verwendet. Wenn Sie nicht verstehen, was gerade gesagt wurde, +dann benötigen Sie es nicht: Sagen Sie N. +Eine Dokumentation über die Verwendung des Paketgenerators finden Sie unter +$<$file:Documentation/networking/pktgen.rst$>$. +Um diesen Code als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{pktgen} genannt. + +\paragraph{Network packet drop alerting service}$~$\\ +CONFIG\_NET\_DROP\_MONITOR [=y] \textbf{[Y]}\\* +Diese Funktion bietet einen Alarmierungsdienst für den Userspace, wenn Pakete im +Netzwerkstapel verworfen werden. Warnungen werden über den Netlink"=Socket an jeden +zuhörenden Userspace"=Prozess gesendet.\\ +Wenn Sie keine Netzwerkwarnungen benötigen, oder wenn es Ihnen genügt, die +verschiedenen proc-Dateien und andere Dienstprogramme auf Verwerfungsstatistiken +zu überprüfen, sagen Sie hier N. + +\subsection{Amateur Radio support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_HAMRADIO [=y] \textbf{[Y]}\\* +Wenn Sie Ihre Linux-Box mit einem Amateurfunkgerät verbinden wollen, antworten Sie +hier mit Y. Lesen Sie \url{https://www.tapr.org/} und speziell über AX.25 +\url{https://linux-ax25.in-berlin.de} um weitere Informationen zu erhalten. +Beachten Sie, dass die Antwort auf diese Frage keine direkte Auswirkung +auf den Kernel hat: Wenn Sie N sagen, überspringt der Konfigurator einfach +alle Fragen zum Amateurfunk. + +\subsubsection*{*** Packet Radio protocols ***} +\textit{(Amateurfunkprotokolle)} + +\subsubsection{Amateur Radio AX.25 Level 2 protocol} +CONFIG\_AX25 [=m] \textbf{[M]}\\* +Dies ist das Protokoll, das für die Computerkommunikation über Amateurfunk verwendet +wird. Es wird entweder allein für Punkt"=zu"=Punkt"=Verbindungen verwendet oder um +andere Protokolle wie tcp/ip zu übertragen. Um es zu benutzen, brauchen Sie ein +Gerät, das Ihre Linux-Box mit Ihrem Amateurfunkgerät verbindet. Sie können entweder +einen langsamen TNC (ein Terminal Node Controller fungiert als eine Art Modem, +das den seriellen Anschluss Ihres Computers mit dem Mikrofoneingang und dem +Lautsprecherausgang Ihres Funkgeräts verbindet) verwenden, der das KISS"=Protokoll +unterstützt, oder eine der verschiedenen SCC-Karten, die vom generischen Z8530 +oder dem DMA SCC-Treiber unterstützt werden. Eine weitere Option sind die seriellen +und parallelen Baycom"=Modem"=Hacks oder das Soundkarten"=Modem (die von ihren +eigenen Treibern unterstützt werden). Wenn Sie hier Y für Ja sagen, müssen Sie +auch Y zu einem dieser Treiber sagen.\\ +Informationen darüber, wo man unterstützende Software für Linux"=Amateurfunk erhält, +sowie Informationen darüber, wie man einen AX.25"=Port konfiguriert, sind im +AX25-HOWTO enthalten, das unter \url{https://www.tldp.org/docs.html#howto} +erhältlich ist. Sie können auch einen Blick in die Datei +$<$file:Documentation/networking/ax25.rst$>$ im Kernel-Quellcode werfen. +Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im +WWW unter \url{https://www.tapr.org/}.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{ax25}. + +\paragraph{AX.25 DAMA Slave support}$~$\\ +CONFIG\_AX25\_DAMA\_SLAVE [=y] \textbf{[Y]}\\* +DAMA ist ein Mechanismus zur Vermeidung von Kollisionen bei AX.25"=Netzwerken. +Ein DAMA"=Server (genannt \glqq Master\grqq{}) nimmt eingehenden Verkehr von Clients +(genannt \glqq Slaves\grqq{}) entgegen und verteilt ihn an andere Slaves weiter. +Wenn Sie hier Y sagen, wird Ihr Linux-Rechner als DAMA-Slave fungieren; dies ist insofern +transparent, als Sie keine spezielle DAMA"=Konfiguration vornehmen müssen. Linux kann noch +nicht als DAMA"=Server fungieren. Diese Option kompiliert nur die DAMA"=Slave"=Unterstützung +in den Kernel. Sie muss immer noch zur Laufzeit aktiviert werden. Mehr über DAMA finden +Sie unter \url{https://linux-ax25.in-berlin.de}.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Amateur Radio NET/ROM protocol}$~$\\ +CONFIG\_NETROM [=m] \textbf{[M]}\\* +NET/ROM ist ein Netzschichtprotokoll, das auf AX.25 aufsetzt und für die Leitweglenkung +nützlich ist. Eine umfassende Auflistung aller Software für Linux-Amateurfunknutzer +sowie Informationen über die Konfiguration eines AX.25-Ports finden Sie im Linux Ham Wiki, +das unter \url{https://linux-ax25.in-berlin.de} verfügbar ist. Sie sollten auch einen +Blick in die Datei\\ +$<$file:Documentation/networking/ax25.rst$>$ werfen. +Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im WWW unter +\url{https://www.tapr.org/}. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{netrom}. + +\paragraph{Amateur Radio X.25 PLP (Rose)}$~$\\ +CONFIG\_ROSE [=m] \textbf{[M]}\\* +Das Packet Layer Protocol (PLP) ist eine Möglichkeit, Pakete über X.25"=Verbindungen +im Allgemeinen und Amateurfunk AX.25"=Verbindungen im Besonderen zu leiten, +im Wesentlichen eine Alternative zu NET/ROM. Eine umfassende Auflistung der gesamten +Software für Linux"=Amateurfunknutzer sowie Informationen über die Konfiguration +eines AX.25"=Ports finden Sie im Linux Ham Wiki, das unter +\url{https://linux-ax25.in-berlin.de} verfügbar ist. +Sie sollten auch einen Blick in die Datei $<$file:Documentation/networking/ax25.rst$>$ +werfen. Weitere Informationen über digitalen Amateurfunk im Allgemeinen finden Sie im +WWW unter \url{https://www.tapr.org/}. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{rose} heißen. + +\paragraph{AX.25 network device drivers \texorpdfstring{$\rightarrow$}{->}}$~$\\ +\textit{(AX.25-Netzwerktreiber)} + +\subparagraph{Serial port KISS driver}$~$\\ +CONFIG\_MKISS [=m] \textbf{M}\\* +KISS ist ein Protokoll für den Datenaustausch zwischen einem Computer und einem Terminal +Node Controller (ein kleines eingebettetes System, das häufig für die Vernetzung über +AX.25"=Amateurfunkverbindungen verwendet wird; es verbindet den seriellen Anschluss des +Computers mit dem Mikrofoneingang und dem Lautsprecherausgang des Funkgeräts).\\ +Obwohl KISS weniger fortschrittlich ist als das 6pack-Protokoll, hat es den Vorteil, +dass es bereits von den meisten modernen TNCs unterstützt wird, ohne dass ein +Firmware"=Upgrade erforderlich ist.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{mkiss}. + +\subparagraph{Serial port 6PACK driver}$~$\\ +CONFIG\_6PACK [=m] \textbf{M}\\* +6pack ist ein Übertragungsprotokoll für den Datenaustausch zwischen Ihrem PC und Ihrem +TNC (der Terminal Node Controller fungiert als eine Art Modem, das die serielle +Schnittstelle Ihres Computers mit dem Mikrofoneingang und dem Lautsprecherausgang +Ihres Radios verbindet). Dieses Protokoll kann als Alternative zu KISS für die +Vernetzung über AX.25"=Amateurfunkverbindungen verwendet werden, verfügt aber über +einige erweiterte Funktionen. +Beachten Sie, dass dieser Treiber noch experimentell ist und Probleme verursachen kann. +Für Details über die Funktionen und die Verwendung des Treibers lesen Sie +$<$file:Documentation/networking/6pack.rst$>$. Um diesen Treiber als Modul zu +kompilieren, wählen Sie hier M: +Das Modul wird \texttt{6pack} heißen. + +\subparagraph{BPQ Ethernet driver}$~$\\ +CONFIG\_BPQETHER [=m] \textbf{M}\\* +AX.25 ist das Protokoll, das für die Computerkommunikation über Amateurfunk verwendet wird. +Wenn Sie hier Y sagen, können Sie den AX.25"=Datenverkehr über Ethernet +(auch \glqq BPQ AX.25\grqq{} genannt) senden und empfangen, was nützlich sein kann, +wenn ein anderer Computer in Ihrem lokalen Netzwerk eine direkte Amateurfunkverbindung hat. + +\subparagraph{BAYCOM ser12 fullduplex driver for AX.25}$~$\\ +CONFIG\_BAYCOM\_SER\_FDX [=m] \textbf{M}\\* +Dies ist einer von zwei Treibern für einfache Amateurfunkmodems im Baycom"=Stil, die an eine +serielle Schnittstelle angeschlossen werden. Der Treiber unterstützt das ser12"=Design im +Vollduplex"=Modus. Darüber hinaus kann die Baudrate zwischen 300 und 4800~Baud eingestellt +werden (allerdings unterstützen nicht alle Modems alle Baudraten). Dies ist der bevorzugte +Treiber. Der nächste Treiber, \glqq BAYCOM ser12 half-duplex driver for AX.25\grqq{} ist +der alte Treiber und wird immer noch angeboten, falls dieser Treiber nicht mit Ihrem +seriellen Schnittstellenchip funktioniert. Um den Treiber zu konfigurieren, verwenden Sie +das Dienstprogramm sethdlc, das im Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ +Weitere Informationen zu den Modems finden Sie in\\ +$<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{baycom\_ser\_fdx} genannt. Dies wird empfohlen. + +\subparagraph{BAYCOM ser12 fullduplex driver for AX.25}$~$\\ +CONFIG\_BAYCOM\_SER\_HDX [=m] \textbf{M}\\* +Dies ist einer von zwei Treibern für einfache Amateurfunkmodems im Baycom"=Stil, die an eine +serielle Schnittstelle angeschlossen werden. Der Treiber unterstützt das ser12"=Design im +Halbduplex"=Modus. Dies ist der alte Treiber. Er ist noch vorhanden, falls Ihr serieller +Schnittstellenchip nicht mit dem Vollduplex"=Treiber funktioniert. Dieser Treiber ist +veraltet. Um den Treiber zu konfigurieren, verwenden Sie das Dienstprogramm +\texttt{sethdlc}, das im Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ +Weitere Informationen zu den Modems finden Sie in\\ + $<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: das Modul wird +\texttt{baycom\_ser\_hdx} heißen. Dies wird empfohlen. + +\subparagraph{BAYCOM picpar and par96 driver for AX.25}$~$\\ +CONFIG\_BAYCOM\_PAR [=m] \textbf{M}\\* +Dies ist ein Treiber für einfache Amateurfunkmodems im Baycom"=Stil, die an eine parallele +Schnittstelle angeschlossen werden. Der Treiber unterstützt die Designs picpar und par96. +Um den Treiber zu konfigurieren, verwenden Sie das Dienstprogramm sethdlc, das im +Standardpaket der ax25"=Dienstprogramme enthalten ist.\\ +Weitere Informationen zu den Modems finden Sie in\\ +$<$file:Documentation/networking/device\_drivers/hamradio/baycom.rst$>$.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{baycom\_par} genannt. Dies wird empfohlen. + +\subparagraph{YAM driver for AX.25}$~$\\ +CONFIG\_YAM [=m] \textbf{M}\\* +Das YAM ist ein Modem für Packet Radio, das an die serielle Schnittstelle angeschlossen +wird und einige der Funktionen eines Terminal Node Controllers enthält. Wenn Sie einen +solchen haben, geben Sie hier Y an.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{yam}. + +\subsection{CAN bus subsystem support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CAN [=m] \textbf{[M]}\\* +Das Controller Area Network (CAN) ist ein langsames (bis zu 1 Mbit/s) serielles +Kommunikationsprotokoll. Die Entwicklung des CAN-Busses begann 1983 bei der Robert +Bosch GmbH, und das Protokoll wurde 1986 offiziell freigegeben. Ursprünglich war der +CAN"=Bus hauptsächlich für Kraftfahrzeuge gedacht, wird aber inzwischen auch in der +Schifffahrt (NMEA2000), in der Industrie und in der Medizintechnik eingesetzt. +Weitere Informationen über die CAN-Netzwerkprotokollfamilie PF\_CAN sind in\\ +$<$Documentation/networking/can.rst$>$ enthalten. +Wenn Sie CAN"=Unterstützung wünschen, sollten Sie hier und auch bei dem +spezifischen Treiber für Ihr(e) Steuergerät(e) unter dem Abschnitt +Netzwerkgeräteunterstützung Y angeben. + +\subsubsection{Raw CAN Protocol (raw access with CAN-ID filtering)} +CONFIG\_CAN\_RAW [=m] \textbf{[M]}\\* +Die Option raw CAN-Protokoll bietet Zugriff auf den CAN-Bus über die BSD-Socket-API. +In den meisten Fällen, in denen kein höheres Protokoll verwendet wird, sollten Sie +das Raw-Socket verwenden. Der Raw-Socket verfügt über mehrere Filteroptionen, +z.~B. ID"=Maskierung/Fehlerrahmen. +Um rohe CAN-Nachrichten zu empfangen/senden, verwenden Sie AF\_CAN mit dem +Protokoll CAN\_RAW. + +\subsubsection{Broadcast Manager CAN Protocol (with content filtering)} +CONFIG\_CAN\_BCM [=m] \textbf{[M]}\\* +Der Broadcast Manager bietet Inhaltsfilterung, Timeout-Überwachung, Senden von +RTR"=Frames und zyklischen CAN"=Nachrichten ohne ständige Benutzerinteraktion. +Der BCM kann über die BSD"=Socket"=API \glqq programmiert\grqq{} werden und +informiert Sie bei Bedarf z.~B. nur bei Content"=Updates/Timeouts. +In den meisten Fällen, in denen zyklische CAN"=Nachrichten auf dem Bus verwendet +werden (z.~B. in der Automobilbranche), wird man wahrscheinlich den bcm"=Socket +verwenden wollen. Um den Broadcast Manager zu nutzen, verwenden Sie AF\_CAN mit +dem Protokoll CAN\_BCM. + +\subsubsection{CAN Gateway/Router (with netlink configuration)} +CONFIG\_CAN\_GW [=m] \textbf{[M]}\\* +Der CAN"=Gateway/Router wird zum Weiterleiten (und Modifizieren) von CAN"=Frames +verwendet. Er basiert auf der PF\_CAN"=Kerninfrastruktur für die Nachrichtenfilterung +und das Senden von Nachrichten und kann optional geroutete CAN"=Frames im laufenden +Betrieb ändern. CAN"=Frames können zwischen CAN"=Netzwerkschnittstellen geroutet +werden (ein Hop). Sie können mit AND/OR/XOR/SET"=Verknüpfungen modifiziert werden, +wie sie von der Netlink"=Konfigurationsschnittstelle konfiguriert werden, die +z.~B. von iptables bekannt ist. + +\subsubsection{SAE J1939} +CONFIG\_CAN\_J1939 [=m] \textbf{[M]}\\* +SAE J1939\\* +Sagen Sie Y, um eine In-Kernel"=Unterstützung für den Sockeltyp J1939 zu haben. +Dies ermöglicht die Kommunikation gemäß SAE j1939.\\ +Die relevanten Teile im Kernel sind +SAE j1939-21 (Datenverbindung \& Transportprotokoll) +\&\\ SAE j1939-81 (Netzwerkverwaltung). + +\subsubsection{ISO 15765-2:2016 CAN transport protocol} +CONFIG\_CAN\_ISOTP [=m] \textbf{[M]}\\* +CAN"=Transportprotokolle bieten Unterstützung für segmentierte +Punkt"=zu"=Punkt"=Kommunikation zwischen CAN"=Knoten über zwei definierte +CAN"=Identifier. Da CAN"=Frames nur eine geringe Anzahl von Datenbytes +transportieren können (max. 8~Bytes für \glqq klassisches\grqq{} CAN und +max. 64~Bytes für CAN FD), wird diese Segmentierung benötigt, um längere +Protocol Data Units (PDU) zu transportieren, wie sie z.~B. für die +Fahrzeugdiagnose (UDS, ISO~14229) oder IP"=over"=CAN"=Verkehr benötigt werden. +Dieser Protokolltreiber implementiert Datenübertragungen gemäß +ISO~15765-2:2016 für \glqq klassische\grqq{} CAN"= und CAN FD"=Frame"=Typen. +Wenn Sie Fahrzeugdiagnosedienste (UDS) durchführen möchten, sagen Sie Y. + +\subsection{Bluetooth subsystem support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_BT [=m] \textbf{[M]}\\* +Bluetooth ist eine kostengünstige drahtlose Technologie mit geringem Stromverbrauch +und kurzer Reichweite. Sie wurde als Ersatz für Kabel und andere +Kurzstreckentechnologien wie IrDA entwickelt. Bluetooth arbeitet in einem +persönlichen Bereich (personal area range), der in der Regel bis zu 10~Meter reicht. +Weitere Informationen über Bluetooth finden Sie unter \url{https://www.bluetooth.com/}. +Das Bluetooth-Subsystem von Linux besteht aus mehreren Schichten: +\begin{itemize} +\item Bluetooth-Kern +\begin{itemize} +\item HCI Geräte- und Verbindungsmanager, Scheduler +\item SCO audio links +\item L2CAP (Logical Link Control and Adaptation Protocol) +\item SMP (Security Manager Protocol) auf LE (Low Energy) Verbindungen +\item ISO isochrone Verbindungen +\end{itemize} +\item HCI Gerätetreiber (Schnittstelle zur Hardware) +\item RFCOMM Modul (RFCOMM Protokoll) +\item BNEP Modul (Bluetooth Netzwerkkapselungsprotokoll) +\item CMTP-Modul (CAPI Message Transport Protocol) +\item HIDP-Modul (Protokoll für menschliche Schnittstellengeräte) +\end{itemize} +Sagen Sie hier Y, um die Bluetooth-Unterstützung in den Kernel zu kompilieren oder +sagen Sie M, um dies als Modul (bluetooth) zu kompilieren. +Um das Linux-Bluetooth-Subsystem zu nutzen, benötigen Sie mehrere +Userspace-Dienstprogramme wie hciconfig und bluetoothd. +Diese Dienstprogramme und Aktualisierungen für Bluetooth"=Kernelmodule werden in +den BlueZ-Paketen bereitgestellt. Weitere Informationen finden Sie unter +\url{http://www.bluez.org/}. + +\subsubsection{Bluetooth Classic (BR/EDR) features} +CONFIG\_BT\_BREDR [=y] \textbf{[Y]}\\* +Bluetooth Classic bietet Unterstützung für Basic Rate (BR), die mit Bluetooth +Version~1.0b oder höher verfügbar ist, und Unterstützung für Enhanced Data Rate (EDR), +die mit Bluetooth Version~2.0 oder höher verfügbar ist. + +\paragraph{RFCOMM protocol support}$~$\\ +CONFIG\_BT\_RFCOMM [=m] \textbf{[M]}\\* +RFCOMM bietet einen verbindungsorientierten Stream-Transport. +Die RFCOMM"=Unterstützung ist für Dialup Networking, OBEX und andere +Bluetooth"=Anwendungen erforderlich. Sagen Sie hier Y, um die +RFCOMM"=Unterstützung in den Kernel zu kompilieren oder sagen Sie M, +um sie als Modul (rfcomm) zu kompilieren. + +\subparagraph{RFCOMM TTY support}$~$\\ +CONFIG\_BT\_RFCOMM\_TTY [=y] \textbf{[Y]}\\* +This option enables TTY emulation support for RFCOMM channels. + +\paragraph{BNEP protocol support}$~$\\ +CONFIG\_BT\_BNEP [=m] \textbf{[M]}\\* +BNEP (Bluetooth Network Encapsulation Protocol) ist eine Ethernet"=Emulationsschicht +über Bluetooth. BNEP ist für Bluetooth PAN (Personal Area Network) erforderlich. +Sagen Sie hier Y, um BNEP"=Unterstützung in den Kernel zu kompilieren, oder +sagen Sie M, um es als Modul (bnep) zu kompilieren. + +\subparagraph{Multicast filter support}$~$\\ +CONFIG\_BT\_BNEP\_MC\_FILTER [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Multicast"=Filterunterstützung für BNEP. + +\subparagraph{Protocol filter support}$~$\\ +CONFIG\_BT\_BNEP\_PROTO\_FILTER [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Protokollfilterunterstützung für BNEP aktiviert. + +\paragraph{CMTP protocol support}$~$\\ +CONFIG\_BT\_CMTP [=m] \textbf{[M]}\\* +CMTP (CAPI Message Transport Protocol) ist eine Transportschicht für CAPI-Nachrichten. +CMTP ist für das Bluetooth Common ISDN Access Profile erforderlich. +Sagen Sie hier Y, um CMTP"=Unterstützung in den Kernel zu kompilieren oder +sagen Sie M, um es als Modul (cmtp) zu kompilieren. + +\paragraph{HIDP protocol support}$~$\\ +CONFIG\_BT\_HIDP [=m] \textbf{[M]}\\* +HIDP (Human Interface Device Protocol) ist eine Transportschicht für HID-Meldungen. +HIDP ist für das Bluetooth Human Interface Device Profile erforderlich. +Sagen Sie hier Y, um HIDP-Unterstützung in den Kernel zu kompilieren, +oder sagen Sie M, um es als Modul (hidp) zu kompilieren. + +\paragraph{Bluetooth High Speed (HS) features}$~$\\ +CONFIG\_BT\_HS [=n] \textbf{[N]}\\* +Bluetooth High Speed unterstützt das Off-Loading von Bluetooth"=Verbindungen über +die physikalische Schicht 802.11 (wifi), die mit Bluetooth Version 3.0 oder höher +verfügbar ist. + +\subsubsection{Bluetooth Low Energy (LE) features} +CONFIG\_BT\_LE [=y] \textbf{[Y]}\\* +Bluetooth Low Energy unterstützt eine energiesparende physikalische Schicht, +die mit Bluetooth Version 4.0 oder höher verfügbar ist. + +\paragraph{Bluetooth L2CAP Enhanced Credit Flow Control}$~$\\ +CONFIG\_BT\_LE\_L2CAP\_ECRED [=y] \textbf{[Y]}\\* +Bluetooth Low Energy L2CAP Enhanced Credit Flow Control verfügbar mit +Bluetooth Version~5.2 oder höher. +Dies kann durch die Übergabe von \texttt{bluetooth.enable\_ecred=$[1|0]$} in der +Kernel"=Befehlszeile außer Kraft gesetzt werden. + +\paragraph{Bluetooth 6LoWPAN support}$~$\\ +CONFIG\_BT\_6LOWPAN [=m] \textbf{[M]}\\* +IPv6-Kompression über Bluetooth Low Energy. + +\subsubsection{Enable LED triggers} +CONFIG\_BT\_LEDS [=y] \textbf{[Y]}\\* +Mit dieser Option können Sie einige LED-Trigger für verschiedene +Bluetooth"=Ereignisse auswählen. + +\subsubsection{Enable Microsoft extensions} +CONFIG\_BT\_MSFTEXT [=y] \textbf{[Y]}\\* +Diese Option ermöglicht die Unterstützung der von Microsoft definierten +HCI"=Anbietererweiterungen. + +\subsubsection{Enable Android Open Source Project extensions} +CONFIG\_BT\_AOSPEXT [=y] \textbf{[Y]}\\* +Diese Option ermöglicht die Unterstützung für die vom Android Open Source +Project definierten HCI"=Herstellererweiterungen. + +\subsubsection{Enable Bluetooth internals in debugfs} +CONFIG\_BT\_DEBUGFS [=y] \textbf{[Y]}\\* +Umfassende Informationen über interne Bluetooth-Zustände in \texttt{debugfs} +bereitstellen. + +\subsubsection{Bluetooth self testing support} +CONFIG\_BT\_SELFTEST [=n] \textbf{[N]}\\* +Führen Sie bei der Initialisierung des Bluetooth"=Subsystems Selbsttests durch. +Dies ist eine Entwickleroption und kann zu erheblichen Verzögerungen beim Booten +des Systems führen. +Wenn das Bluetooth"=Subsystem als Modul gebaut wird, werden die Testfälle als +erstes beim Laden des Moduls ausgeführt. +Wenn das Bluetooth"=Subsystem in das Kernel"=Image kompiliert wird, werden die +Testfälle erst spät in der Aufrufhierarchie ausgeführt. + +\subsubsection{Bluetooth device drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(Bluetooth-Gerätetreiber)} + +\paragraph{HCI USB driver}$~$\\ +CONFIG\_BT\_HCIBTUSB [=m] \textbf{[M]}\\* +Bluetooth HCI USB-Treiber. +Dieser Treiber ist erforderlich, wenn Sie Bluetooth"=Geräte mit USB"=Schnittstelle +verwenden möchten. +Sagen Sie hier Y, um die Unterstützung für Bluetooth"=USB"=Geräte in den Kernel zu +kompilieren, oder sagen Sie M, um sie als Modul (btusb) zu kompilieren. + +\subparagraph{Enable USB autosuspend for Bluetooth USB devices by default}$~$\\ +CONFIG\_BT\_HCIBTUSB\_AUTOSUSPEND [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, um USB-Autosuspend für Bluetooth-USB-Geräte standardmäßig zu aktivieren. +Dies kann durch die Übergabe von \texttt{btusb.enable\_autosuspend=$[y|n]$} in der +Kernel"=Kommandozeile über"=schrieben werden. + +\subparagraph{Enable USB poll\_sync for Bluetooth USB devices by default}$~$\\ +CONFIG\_BT\_HCIBTUSB\_POLL\_SYNC [=y] \textbf{[Y]}\\* +poll\_sync synchronisiert die USB"=Daten"= und -Ereignis"=Endpunkte, indem es letzteren +Vorrang einräumt. +Sagen Sie hier Y, um USB poll\_sync für Bluetooth"=USB"=Geräte standardmäßig zu +aktivieren. + +\subparagraph{Broadcom protocol support}$~$\\ +CONFIG\_BT\_HCIBTUSB\_BCM [=y] \textbf{[Y]}\\* +Die Unterstützung des Broadcom-Protokolls ermöglicht den Download von Firmware +und Patchram für Broadcom"=Bluetooth"=Controller. +Sagen Sie hier Y, um Unterstützung für das Broadcom"=Protokoll zu kompilieren. + +\subparagraph{MediaTek protocol support}$~$\\ +CONFIG\_BT\_HCIBTUSB\_MTK [=y] \textbf{[Y]}\\* +Die Unterstützung des MediaTek-Protokolls ermöglicht den Firmware"=Download +und die Chip"=Initialisierung für MediaTek Bluetooth"=USB"=Controller. +Sagen Sie hier Y, um die Unterstützung für das MediaTek"=Protokoll zu kompilieren. + +\subparagraph{Realtek protocol support}$~$\\ +CONFIG\_BT\_HCIBTUSB\_RTL [=y] \textbf{[Y]}\\* +Die Unterstützung des Realtek"=Protokolls ermöglicht den Download von Firmware +und Konfiguration für Realtek"=Bluetooth"=Controller. +Sagen Sie hier Y, um Unterstützung für das Realtek"=Protokoll zu kompilieren. + +\paragraph{HCI SDIO driver}$~$\\ +CONFIG\_BT\_HCIBTSDIO [=m] \textbf{[M]}\\* +Bluetooth-HCI-SDIO-Treiber. +Dieser Treiber ist erforderlich, wenn Sie ein Bluetooth"=Gerät mit +SDIO"=Schnittstelle verwenden möchten. +Sagen Sie hier Y, um die Unterstützung für Bluetooth"=SDIO"=Geräte +in den Kernel zu kompilieren, oder sagen Sie M, um sie als Modul (btsdio) +zu kompilieren. + +\paragraph{HCI UART driver}$~$\\ +CONFIG\_BT\_HCIUART [=m] \textbf{[M]}\\* +Bluetooth HCI UART-Treiber. +Dieser Treiber ist erforderlich, wenn Sie Bluetooth"=Geräte mit serieller +Schnittstelle verwenden möchten. Sie benötigen diesen Treiber auch, wenn +Sie UART"=basierte Bluetooth PCMCIA- und CF"=Geräte wie Xircom Credit Card +Adapter und BrainBoxes Bluetooth PC Card verwenden. +Sagen Sie hier Y, um die Unterstützung für Bluetooth"=UART"=Geräte in den +Kernel zu kompilieren, oder sagen Sie M, um sie als Modul (hci\_uart) zu +kompilieren. + +\subparagraph{UART (H4) protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_H4 [=y] \textbf{[Y]}\\* +UART (H4) ist ein serielles Protokoll für die Kommunikation zwischen +Bluetooth"=Gerät und Host. Dieses Protokoll ist für die meisten +Bluetooth"=Geräte mit UART"=Schnittstelle erforderlich, einschließlich +PCMCIA- und CF"=Karten. +Sagen Sie hier Y, um Unterstützung für das HCI UART (H4) Protokoll zu kompilieren. + +\subparagraph{UART Nokia H4+ protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_NOKIA [=m] \textbf{[M]}\\* +Nokia H4+ ist ein serielles Protokoll für die Kommunikation zwischen +Bluetooth"=Gerät und Host. Dieses Protokoll ist für Bluetooth"=Geräte mit +UART"=Schnittstelle in Nokia"=Geräten erforderlich. +Sagen Sie hier Y, um Unterstützung für das H4+"=Protokoll von Nokia zu kompilieren. + +\subparagraph{BCSP protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_BCSP [=y] \textbf{[Y]}\\* +BCSP (BlueCore Serial Protocol) ist ein serielles Protokoll für die Kommunikation +zwischen Bluetooth"=Gerät und Host. Dieses Protokoll ist für Bluetooth"=Geräte +erforderlich, die nicht auf dem CSR BlueCore"=Chip basieren, einschließlich +PCMCIA- und CF"=Karten. +Sagen Sie hier Y, um Unterstützung für das HCI BCSP"=Protokoll zu kompilieren. + +\subparagraph{Atheros AR300x serial support}$~$\\ +CONFIG\_BT\_HCIUART\_ATH3K [=y] \textbf{[Y]}\\* +HCIATH3K (HCI Atheros AR300x) ist ein serielles Protokoll für die Kommunikation +zwischen Host und Atheros AR300x Bluetooth"=Geräten. Mit diesem Protokoll können +AR300x"=Chips mit Unterstützung für die Energieverwaltung aktiviert werden. +Aktivieren Sie dies, wenn Sie ein serielles Bluetooth"=Gerät vom +Typ Atheros AR300x besitzen. +Sagen Sie hier Y, um Unterstützung für das HCI UART ATH3K Protokoll zu kompilieren. + +\subparagraph{HCILL protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_LL [=y] \textbf{[Y]}\\* +HCILL (HCI Low Level) ist ein serielles Protokoll für die Kommunikation zwischen +Bluetooth"=Gerät und Host. Dieses Protokoll ist für serielle Bluetooth"=Geräte +erforderlich, die auf BRF"=Chips von Texas Instruments basieren. +Sagen Sie hier Y, um Unterstützung für das HCILL"=Protokoll zu kompilieren. + +\subparagraph{Three-wire UART (H5) protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_3WIRE [=y] \textbf{[Y]}\\* +Der HCI Three-wire UART Transport Layer ermöglicht es, die Bluetooth HCI über +eine serielle Schnittstelle zu nutzen. Der HCI Three"=wire UART Transport Layer +geht davon aus, dass die UART"=Kommunikation Bitfehler, Overrun"=Fehler oder +Burst"=Fehler aufweisen kann, wodurch CTS/RTS"=Leitungen überflüssig werden. +Sagen Sie hier Y, um Unterstützung für das Three"=wire UART"=Protokoll +zu kompilieren. + +\subparagraph{Intel protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_INTEL [=y] \textbf{[Y]}\\* +Die Unterstützung des Intel"=Protokolls ermöglicht Bluetooth HCI über die +serielle Schnittstelle für Intel"=Bluetooth"=Controller. +Sagen Sie hier Y, um die Unterstützung für das Intel"=Protokoll zu kompilieren. + +\subparagraph{Broadcom protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_BCM [=y] \textbf{[Y]}\\* +Die Unterstützung des Broadcom"=Protokolls ermöglicht Bluetooth HCI über die +serielle Schnittstelle für Broadcom Bluetooth"=Controller. +Sagen Sie hier Y, um Unterstützung für das Broadcom"=Protokoll zu kompilieren. + +\subparagraph{Realtek protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_RTL [=y] \textbf{[Y]}\\* +Die Unterstützung des Realtek-Protokolls ermöglicht Bluetooth HCI über eine +serielle 3-Draht"=Schnittstelle für Realtek Bluetooth"=Controller. +Sagen Sie hier Y, um Unterstützung für das Realtek"=Protokoll zu kompilieren. + +\subparagraph{Qualcomm Atheros protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_QCA [=y] \textbf{[Y]}\\* +Das Qualcomm Atheros-Protokoll unterstützt die HCI-In-Band"=Sleep"=Funktion +über die serielle Schnittstelle (H4) zwischen Controller und Host. +Dieses Protokoll ist für die UART-Taktsteuerung für QCA"=Bluetooth"=Geräte +erforderlich. +Sagen Sie hier Y, um Unterstützung für das QCA-Protokoll zu kompilieren. + +\subparagraph{Intel AG6XX protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_AG6XX [=y] \textbf{[Y]}\\* +Die Unterstützung des Intel/AG6XX"=Protokolls ermöglicht Bluetooth HCI über +die serielle Schnittstelle für Intel ibt 2.1 Bluetooth"=Controller. +Sagen Sie hier Y, um Unterstützung für das Intel AG6XX"=Protokoll +zu kompilieren. + +\subparagraph{Marvell protocol support}$~$\\ +CONFIG\_BT\_HCIUART\_MRVL [=y] \textbf{[Y]}\\* +Marvell ist ein serielles Protokoll für die Kommunikation zwischen +Bluetooth"=Gerät und Host. Dieses Protokoll ist für die meisten +Marvell"=Bluetooth"=Geräte mit UART"=Schnittstelle erforderlich. +Sagen Sie hier Y, um Unterstützung für das HCI MRVL"=Protokoll zu kompilieren. + +\subparagraph{HCI BCM203x USB driver}$~$\\ +CONFIG\_BT\_HCIBCM203X [=m] \textbf{[M]}\\* +Bluetooth HCI BCM203x USB-Treiber. +Dieser Treiber bietet den Mechanismus zum Laden der Firmware für die Broadcom +Blutonium"=basierten Geräte. +Sagen Sie hier Y, um die Unterstützung für HCI BCM203x"=Geräte in den Kernel zu +kompilieren oder sagen Sie M, um dies als Modul (bcm203x) zu kompilieren. + +\subparagraph{HCI BCM4377/4378/4387 PCIe driver}$~$\\ +CONFIG\_BT\_HCIBCM4377 [=m] \textbf{[M]}\\* +Unterstützung für Broadcom BCM4377/4378/4387 Bluetooth"=Chipsätze, die über +PCIe angeschlossen sind. Diese sind in der Regel in Apple"=Geräten zu finden. +Sagen Sie hier Y, um Unterstützung für Geräte der HCI BCM4377"=Familie in den +Kernel zu kompilieren, oder sagen Sie M, um dies als Modul (hci\_bcm4377) +zu kompilieren. + +\subparagraph{HCI BPA10x USB driver}$~$\\ +CONFIG\_BT\_HCIBPA10X [=m] \textbf{[M]}\\* +Bluetooth HCI BPA10x USB-Treiber.\\ +Dieser Treiber bietet die Unterstützung für die Digianswer +BPA~100/105 Blue"-tooth"=Schnüffelgeräte. +Sagen Sie hier Y, um die Unterstützung für HCI BPA10x-Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (bpa10x) zu kompilieren. + +\subparagraph{HCI BlueFRITZ! USB driver}$~$\\ +CONFIG\_BT\_HCIBFUSB [=m] \textbf{[M]}\\* +Bluetooth HCI BlueFRITZ! USB-Treiber.\\ +Dieser Treiber bietet Unterstützung für Bluetooth"=USB"=Geräte mit +AVM"=Schnittstelle: +\begin{itemize} + \item AVM BlueFRITZ! USB +\end{itemize} +Sagen Sie hier Y, um die Unterstützung für HCI BFUSB Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (bfusb) zu kompilieren. + +\subparagraph{HCI DTL1 (PC Card) driver}$~$\\ +CONFIG\_BT\_HCIDTL1 [=m] \textbf{[M]}\\* +Bluetooth HCI DTL1 (PC Card) Treiber.\\ +Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit +Nokia DTL1 Schnittstelle: +\begin{itemize} + \item Nokia Bluetooth-Karte + \item Sockel Bluetooth CF-Karte +\end{itemize} +Sagen Sie hier Y, um die Unterstützung für HCI DTL1 Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (dtl1\_cs) zu kompilieren. + +\subparagraph{HCI BT3C (PC Card) driver}$~$\\ +CONFIG\_BT\_HCIBT3C [=m] \textbf{[M]}\\* +Bluetooth HCI BT3C (PC Card) Treiber.\\ +Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit +3Com BT3C Schnittstelle: +\begin{itemize} + \item 3Com Bluetooth-Karte (3CRWB6096) + \item HP Bluetooth-Karte +\end{itemize} +Sagen Sie hier Y, um die Unterstützung für HCI BT3C Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (bt3c\_cs) zu kompilieren. + +\subparagraph{HCI BlueCard (PC Card) driver}$~$\\ +CONFIG\_BT\_HCIBLUECARD [=m] \textbf{[M]}\\* +Bluetooth HCI BlueCard (PC Card) Treiber.\\ +Dieser Treiber bietet Unterstützung für Bluetooth PCMCIA Geräte mit +Anycom BlueCard Schnittstelle: +\begin{itemize} + \item Anycom Bluetooth PC-Karte + \item Anycom Bluetooth CF-Karte +\end{itemize} +Sagen Sie hier Y, um die Unterstützung für HCI BlueCard"=Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (bluecard\_cs) zu kompilieren. + + +\subparagraph{HCI VHCI (Virtual HCI device) driver}$~$\\ +CONFIG\_BT\_HCIVHCI [=m] \textbf{[M]}\\* +Bluetooth Virtual HCI Gerätetreiber.\\ +Dieser Treiber ist erforderlich, wenn Sie die HCI"=Emulationssoftware +verwenden möchten. +Sagen Sie hier Y, um die Unterstützung für virtuelle HCI"=Geräte in den Kernel +zu kompilieren, oder sagen Sie M, um dies als Modul (hci\_vhci) zu kompilieren. + +\subparagraph{Marvell Bluetooth driver support}$~$\\ +CONFIG\_BT\_MRVL [=m] \textbf{[M]}\\* +Der Kerntreiber zur Unterstützung von Marvell"=Bluetooth"=Geräten. +Dieser Treiber ist erforderlich, wenn Sie Marvell-Bluetooth-Geräte wie +8688/8787/8797/8887/8897/8977/8987/8997 unterstützen möchten. +Sagen Sie hier Y, um den Marvell"=Bluetooth"=Treiber in den Kernel zu +kompilieren, oder sagen Sie M, um diesen als Modul zu kompilieren. + +\subsubparagraph{Marvell BT-over-SDIO driver}$~$\\ +CONFIG\_BT\_MRVL\_SDIO [=m] \textbf{[M]}\\* +Der Treiber für Marvell Bluetooth-Chipsätze mit SDIO-Schnittstelle.\\ +Dieser Treiber ist erforderlich, wenn Sie Marvell-Bluetooth-Geräte mit SDIO-Schnittstelle verwenden möchten. +Derzeit werden SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997 Chipsätze unterstützt. +Sagen Sie hier Y, um die Unterstützung für den Marvell BT-over-SDIO"=Treiber in den Kernel zu +kompilieren oder sagen Sie M, um dies als Modul zu kompilieren. + +\subparagraph{Atheros firmware download driver}$~$\\ +CONFIG\_BT\_ATH3K [=m] \textbf{[M]}\\* +Bluetooth-Firmware-Treiber zum Herunterladen.\\ +Dieser Treiber lädt die Firmware in den Atheros-Bluetooth-Chipsatz. +Sagen Sie hier Y, um die Unterstützung für den Atheros Firmware"=Download"=Treiber in den +Kernel zu kompilieren oder sagen Sie M, um dies als Modul (ath3k) zu kompilieren. + +\subparagraph{MediaTek HCI SDIO driver}$~$\\ +CONFIG\_BT\_MTKSDIO [=m] \textbf{[M]}\\* +MediaTek Bluetooth HCI SDIO-Treiber. +Dieser Treiber ist erforderlich, wenn Sie MediaTek Bluetooth mit SDIO-Schnittstelle +verwenden möchten. +Sagen Sie hier Y, um die Unterstützung für MediaTek Bluetooth SDIO"=Geräte in den Kernel +zu kompilieren oder sagen Sie M, um dies als Modul (btmtksdio) zu kompilieren. + +\subparagraph{MediaTek HCI UART driver}$~$\\ +CONFIG\_BT\_MTKUART [=m] \textbf{[M]}\\* +MediaTek Bluetooth HCI UART-Treiber. +Dieser Treiber wird benötigt, wenn Sie MediaTek Bluetooth mit serieller Schnittstelle verwenden möchten. +Sagen Sie hier Y, um die Unterstützung für MediaTek Bluetooth UART"=Geräte in den Kernel +zu kompilieren, oder sagen Sie M, um dies als Modul (btmtkuart) zu kompilieren. + +\subparagraph{Virtio Bluetooth driver}$~$\\ +CONFIG\_BT\_VIRTIO [=m] \textbf{[M]}\\* +Virtio Bluetooth-Unterstützungstreiber. +Dieser Treiber unterstützt Virtio Bluetooth"=Geräte. +Sagen Sie hier Y, um Unterstützung für HCI über Virtio in den Kernel zu kompilieren, +oder sagen Sie M, um dies als Modul zu kompilieren. + +\subparagraph{NXP protocol support}$~$\\ +CONFIG\_BT\_NXPUART [=m] \textbf{[M]}\\* +NXP ist ein serieller Treiber, der für NXP Bluetooth"=Geräte mit UART"=Schnittstelle benötigt wird. +Sagen Sie hier Y, um Unterstützung für NXP Bluetooth UART"=Geräte in den Kernel zu kompilieren, +oder sagen Sie hier M, um als Modul (btnxpuart) zu kompilieren. + +%14.5 +\subsection{RxRPC session sockets} +CONFIG\_AF\_RXRPC [=m] \textbf{[M]}\\* +Sagen Sie hier Y oder M, um die Unterstützung für RxRPC"=Session"=Sockets einzuschließen +(nur den Transportteil, nicht den Präsentationsteil: (un)marshalling wird der Anwendung überlassen). +Diese werden für das AFS"=Kernel"=Dateisystem und Userspace"=Dienstprogramme verwendet. +Dieses Modul unterstützt im Moment nur Client"=Operationen und ist derzeit unvollständig.\\ +Siehe Dokumentation/networking/rxrpc.rst. + +\subsubsection{IPv6 support for RxRPC} +CONFIG\_AF\_RXRPC\_IPV6 [=y] \textbf{[Y]}\\* +Geben Sie hier Y an, damit AF\_RXRPC sowohl IPV6 UDP als auch IPV4 UDP als +Netzwerktransport verwenden kann. + +\subsubsection{Inject packet loss into RxRPC packet stream} +CONFIG\_AF\_RXRPC\_INJECT\_LOSS [=n] \textbf{[~]}\\* +Sagen wir hier Y, um Paketverluste zu verursachen, indem einige empfangene und einige +gesendete Pakete verworfen werden. + +\subsubsection{Inject delay into packet reception} +CONFIG\_AF\_RXRPC\_INJECT\_RX\_DELAY [=n] \textbf{[~]}\\* +Sagen Sie hier Y, um eine Verzögerung in den Paketempfang einzubauen, so dass eine längere +RTT"=Zeit modelliert werden kann. Die Verzögerung kann mit +/proc/sys/net/rxrpc/rxrpc\_inject\_rx\_delay konfiguriert werden, wobei eine Anzahl von +Millisekunden bis zu 0,5~s eingestellt werden kann (beachten Sie, dass die Granularität +tatsächlich in Jiffies angegeben wird). + +\subsubsection{RxRPC dynamic debugging} +CONFIG\_AF\_RXRPC\_DEBUG [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, damit zur Laufzeit steuerbare Debugging"=Meldungen erscheinen. +Siehe Dokumentation/networking/rxrpc.rst. + +\subsubsection{RxRPC Kerberos security} +CONFIG\_RXKAD [=y] \textbf{[Y]}\\* +Bereitstellung von Kerberos-4- und AFS-Kaserver"=Sicherheitshandhabung für AF\_RXRPC durch +die Verwendung des Schlüsselaufbewahrungsdienstes. +Siehe Dokumentation/networking/rxrpc.rst. + +\subsubsection{RxRPC test service} +CONFIG\_RXPERF [=n] \textbf{[~]}\\* +Stellen Sie einen rxperf-Dienst-Tester bereit. Dieser lauscht am UDP"=Port 7009 auf +eingehende Anrufe des rxperf"=Programms (ein Beispiel dafür finden Sie in OpenAFS). + +\subsection{KCM sockets} +CONFIG\_AF\_KCM [=m] \textbf{[M]}\\* +KCM-Sockets (Kernel Connection Multiplexor) bieten eine Methode zum Multiplexen von +Nachrichten eines nachrichtenbasierten Anwendungsprotokolls über Kernel"=Verbindungen +(z.~B. TCP"=Verbindungen). + +\subsection{MCTP core protocol support} +CONFIG\_MCTP [=y] \textbf{[Y]}\\* +Das Management Component Transport Protocol (MCTP) ist ein systeminternes Protokoll +für die Kommunikation zwischen Verwaltungscontrollern und den von ihnen verwalteten +Geräten (Peripheriegeräte, Host"=Prozessoren usw.). Das Protokoll ist in der +DMTF"=Spezifikation DSP0236 definiert. +Mit dieser Option wird die MCTP"=Unterstützung im Kern aktiviert. Für die Kommunikation +mit anderen Geräten müssen Sie einen Treiber für einen bestimmten Hardwarekanal aktivieren. + +\subsection{Wireless \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_WIRELESS [=y] \textbf{[Y]}\\* +\textit{Für diese Option gibt es keine Hilfe.} + +\subsubsection{cfg80211 -- wireless configuration API} +CONFIG\_CFG80211 [=m] \textbf{[Y]}\\* +cfg80211 ist die Linux-API für die Konfiguration des drahtlosen LAN (802.11). +Aktivieren Sie dies, wenn Sie ein drahtloses Gerät haben. +Weitere Informationen finden Sie in der Dokumentation des Wireless-Wikis: +\url{https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211} +Wenn es als Modul gebaut wird, wird dies \texttt{cfg80211} genannt. + +\paragraph{nl80211 testmode command}$~$\\ +CONFIG\_NL80211\_TESTMODE [=n] \textbf{[~]}\\* +Der Befehl nl80211 testmode hilft bei der Implementierung von Dingen wie +Werkskalibrierung oder Validierungstools für Funkchips. +Wählen Sie diese Option NUR für Kernel, die speziell für solche Zwecke +entwickelt wurden. +Debugging"=Tools, die in den Händen der Benutzer landen sollen, sollten besser +mit debugfs implementiert werden.\\ +Sagen Sie N. + +\paragraph{enable developer warnings}$~$\\ +CONFIG\_CFG0211\_DEVELOPER\_WARNINGS [=n] \textbf{[~]}\\* +Diese Option aktiviert einige zusätzliche Warnungen, die cfg80211"=Entwicklern und +Treiberentwicklern helfen, aber Vorsicht, sie können auch durch Wettrennen mit dem +Userspace ausgelöst werden. +Wenn zum Beispiel ein Treiber meldet, dass er vom AP getrennt wurde, der Benutzer +aber gleichzeitig die Verbindung manuell trennt, kann die Warnung aufgrund von +Wettläufen fälschlicherweise ausgelöst werden. +Sagen Sie Y nur, wenn Sie cfg80211 oder einen darauf basierenden Treiber +(oder mac80211) entwickeln. + +\paragraph{enable powersave by default}$~$\\ +CONFIG\_CFG0211\_DEFAULT\_PS [=y] \textbf{[Y]}\\* +Mit dieser Option wird der Energiesparmodus standardmäßig aktiviert. +Wenn dies bei Ihren Anwendungen zu Fehlverhalten führt, sollten Sie stattdessen Ihre +Anwendungen korrigieren -- sie müssen ihre Anforderungen an die Netzwerklatenz registrieren, +siehe Documentation/power/pm\_qos\_interface.rst. + +\paragraph{cfg80211 DebugFS entries}$~$\\ +CONFIG\_CFG0211\_DEBUGFS [=y] \textbf{[Y]}\\* +Sie können dies aktivieren, wenn Sie debugfs-Einträge für cfg80211 wünschen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{lib80211 debugging messages} +CONFIG\_LIB80211\_DEBUG [=n] \textbf{[~]}\\* +Sie können dies aktivieren, wenn Sie ausführliche Debugging-Meldungen von lib80211 wünschen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Generic IEEEE~802.11 Networking Stack (mac80211)} +CONFIG\_MAC80211 [=m] \textbf{[M]}\\* +Diese Option aktiviert den hardwareunabhängigen IEEE 802.11"=Netzwerkstack. + +\subsubsection{Default rate control algorithm () \texorpdfstring{$\rightarrow$}{->}} +Diese Option wählt den Standard-Algorithmus für die Ratenkontrolle aus, den mac80211 verwenden soll. +Beachten Sie, dass dieser Standardwert immer noch durch den Modulparameter +ieee80211\_default\_rc\_algo überschrieben werden kann, wenn andere Algorithmen verfügbar sind. + +\paragraph{Minstrel}$~$\\ +CONFIG\_MAC80211\_RC\_DEFAULT\_MINSTREL [=y] \textbf{[Y]}\\* +Wählen Sie Minstrel als Standard"=Algorithmus für die Ratenkontrolle. + +\subsubsection{Enable mac80211 mesh networking support} +CONFIG\_MAC80211\_MESH [=y] \textbf{[Y]}\\* +Wählen Sie diese Option, um den 802.11-Mesh"=Betrieb in mac80211"=Treibern, die ihn unterstützen, +zu aktivieren. 802.11 Mesh verbindet mehrere Stationen über (möglicherweise Multi-Hop-) +Funkverbindungen zu einem einzigen logischen LAN. + +\subsubsection{Enable LED triggers} +CONFIG\_MAC80211\_LEDS [=y] \textbf{[Y]}\\* +Diese Option aktiviert einige LED"=Trigger für verschiedene Paket"=Empfangs-/Sende"-ereignisse. + +\subsubsection{Export mac80211 internals in DebugFS} +CONFIG\_MAC80211\_DEBUGFS [=y] \textbf{[Y]}\\* +Wählen Sie dies, um umfangreiche Informationen über den internen Zustand +von mac80211 in debugfs zu sehen. +Sagen Sie N, es sei denn, Sie wissen, dass Sie dies brauchen. + +\subsubsection{Trace all mac80211 debug messages} +CONFIG\_MAC80211\_MESSAGE\_TRACING [=n] \textbf{[N]}\\* +Wählen Sie diese Option, damit mac80211 das mac80211\_msg"=Trace"=Subsystem mit Tracepoints +registriert, um alle Debugging"=Meldungen zu sammeln, unabhängig davon, ob sie in das +Kernel"=Log gedruckt werden. +Der Mehraufwand bei dieser Option besteht darin, dass alle Meldungen in der Binärdatei +vorhanden sein müssen und zur Laufzeit für die Verfolgung formatiert werden müssen. + +\subsubsection{Select mac80211 debugging features} +CONFIG\_MAC80211\_DEBUG\_MENU [=n] \textbf{[N]}\\* +Diese Option sammelt verschiedene mac80211-Debug"=Einstellungen. + +\subsection{RF switch subsystem support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_RFKILL [=m] \textbf{[Y]}\\* +Sagen Sie hier Y, wenn Sie die Kontrolle über die RF-Schalter haben wollen, die auf vielen WiFi- +und Bluetooth"=Karten zu finden sind.\\ +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{rfkill} heißen. + +\subsubsection{GPIO RFKILL driver} +CONFIG\_RFKILL\_GPIO [=m] \textbf{[M]}\\* +Wenn Sie dies bejahen, erhalten Sie Unterstützung für einen generischen gpio RFKILL"=Treiber. + +\subsection{Plan 9 Resource Sharing Support (9P2000) \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NET\_9P [=m] \textbf{[Y]}\\* +Wenn Sie hier Y eingeben, erhalten Sie experimentelle Unterstützung für die gemeinsame Nutzung +von Plan 9"=Ressourcen über das 9P2000"=Protokoll. +Siehe \url{http://v9fs.sf.net} für weitere Informationen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{9P FD Transport} +CONFIG\_NET\_9P\_FD [=m] \textbf{[M]}\\* +Damit wird Unterstützung für Transporte über TCP, Unix"=Sockets und Dateiskriptoren geschaffen. + +\subsubsection{9P Virtio Transport} +CONFIG\_NET\_9P\_VIRTIO [=m] \textbf{[M]}\\* +Damit wird die Unterstützung für einen Transport zwischen Gastpartitionen +und einer Hostpartition geschaffen. + +\subsubsection{9P Xen Transport} +CONFIG\_NET\_9P\_XEN [=m] \textbf{[M]}\\* +Damit wird die Unterstützung für einen Transport für 9pfs zwischen zwei Xen"=Domänen geschaffen. + +\subsubsection{9P RDMA Transport (Experimental)} +CONFIG\_NET\_9P\_RDMA [=m] \textbf{[M]}\\* +Damit wird Unterstützung für einen RDMA-Transport geschaffen. + +\subsubsection{Debug information} +CONFIG\_NET\_9P\_DEBUG [=m] \textbf{[M]}\\* +Sagen Sie Y, wenn Sie möchten, dass das 9P-Subsystem Debug"=Informationen protokolliert. + +\subsection{CAIF support} +CONFIG\_CAIF [=n] \textbf{[~]}\\* +Das \glqq Communication CPU to Application CPU Interface\grqq{} (CAIF) ist ein paketbasiertes, +verbindungsorientiertes MUX"=Protokoll, das von ST-Ericsson zur Verwendung mit seinen Modems +entwickelt wurde. Der Zugriff erfolgt aus dem Userspace als Socket (PF\_CAIF).\\ +Geben Sie hier Y (oder M) an, wenn Sie für ein Telefonprodukt (z.~B. Android oder MeeGo) bauen, +das CAIF als Transport verwendet. Wenn Sie unsicher sind, sagen Sie N.\\ +Wenn Sie es als Modul bauen wollen, muss CAIF\_NETDEV auch als Modul gebaut werden. +Sie müssen auch Y (oder M) für alle physischen CAIF"=Geräte angeben, die Ihre Plattform benötigt. +Weitere Informationen zur Verwendung und Konfiguration von CAIF finden Sie unter +Documentation/networking/caif. + +\subsection{Ceph core library} +CONFIG\_CEPH\_LIB [=m] \textbf{[M]}\\* +Wählen Sie hier Y oder M, um cephlib einzubinden, die die gemeinsame Funktionalität sowohl für +das Ceph"=Dateisystem als auch für das rados block device (rbd) bereitstellt. +Weitere Informationen finden Sie unter \url{https://ceph.io/}. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Include file:line in ceph debug output} +CONFIG\_CEPH\_LIB\_PRETTYDEBUG [=y] \textbf{[Y]}\\* +Wenn Sie hier Y eingeben, wird die Debug"=Ausgabe einen Dateinamen und eine Zeile enthalten, +um die Fehlersuche zu erleichtern. Dies erhöht die Kernelgröße und verlangsamt die Ausführung +leicht, wenn Debug-Aufrufseiten aktiviert sind (z.~B. über CONFIG\_DYNAMIC\_DEBUG). +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Use in-kernel support for DNS lookup} +CONFIG\_CEPH\_LIB\_USE\_DNS\_RESOLVER [=y] \textbf{[Y]}\\* +Wenn Sie hier Y angeben, werden Hostnamen (z. B. Monitoradressen) mit der Funktion\\ +CONFIG\_DNS\_RESOLVER aufgelöst.\\ +Informationen über die Verwendung von CONFIG\_DNS\_RESOLVER finden Sie unter +Documentation/networking/dns\_resolver.rst\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{NFC subsystem support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_NFC [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie Unterstützung für NFC-Geräte (Near Field Communication) bauen wollen. +Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{nfc} genannt. + +\subsection{Packet-sampling netlink channel ---} +CONFIG\_PSAMPLE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um Unterstützung für den Netlink"=Kanal mit Paketsampling hinzuzufügen. +Dieser Netlink"=Kanal ermöglicht die Übertragung von Paketen zusammen mit einigen Metadaten in den Userspace. +Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: das Modul wird \texttt{psample} genannt. + +\subsection{Inter-FE based on IETF ForCES InterFE LFB ---} +CONFIG\_PSAMPLE [=m] \textbf{[M]}\\* +Sagen Sie hier Y, um die Unterstützung des IFE-Kapselungsprotokolls hinzuzufügen. +Einzelheiten finden Sie im netdev01-Dokument:\\ +\glqq Verteilendes Linux-Verkehrskontroll-Klassifizierungs-Aktions-Subsystem\grqq{}\\ +Autoren: Jamal Hadi Salim und Damascene M. Joachimpillai\\ +Um diese Unterstützung als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{ife} genannt. + +\subsection{Network light weight tunnels} +CONFIG\_LWTUNNEL [=y] \textbf{[Y]}\\* +Diese Funktion bietet eine Infrastruktur zur Unterstützung von leichtgewichtigen Tunneln wie mpls. +Einem Light-Weight"=Tunnel"=Endpunkt ist kein Netzgerät zugeordnet. Die Tunnelkapselungsparameter +werden zusammen mit dem Status von Light-Weight"=Tunneln gespeichert, die mit Fib"=Routen verbunden sind. + +\subsubsection{Execute BPF program as route nexthop action} +CONFIG\_LWTUNNEL\_BPF [=y] \textbf{[Y]}\\* +Ermöglicht die Ausführung von BPF"=Programmen als Nexthop"=Aktion nach einem Routensuchlauf für +eingehende und ausgehende Pakete. + +\subsection{Page pool stats} +CONFIG\_PAGE\_POOL\_STATS [=y] \textbf{[Y]}\\* +Aktivieren Sie die Seitenpoolstatistik, um die Seitenzuweisung und das +Recycling in Seitenpools zu verfolgen. Diese Option verursacht +zusätzliche CPU"=Kosten für die Zuweisungs- und Wiederverwendungspfade +und zusätzliche Speicherkosten für die Speicherung der Statistiken. +Diese Statistiken sind nur verfügbar, wenn diese Option aktiviert ist +und wenn der Treiber, der den Seitenpool verwendet, den Export dieser +Daten unterstützt. +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Generic failover module} +CONFIG\_FAILOVER [=m] \textbf{[M]}\\* +Das Failover-Modul bietet eine generische Schnittstelle für paravirtuelle Treiber, um ein Netdev und +einen Satz von Ops bei einer Failover"=Instanz zu registrieren. Die Ops werden als Event-Handler +verwendet, die aufgerufen werden, um Netdev"=Registrierungs-/Entregistrierungs-/Link-/Namensänderungs"=Ereignisse +auf Slave"=PCI"=Ethernet"=Geräten mit der gleichen MAC"=Adresse wie das Failover"=Netdev zu behandeln. +Dies ermöglicht es paravirtuellen Treibern, ein VF als beschleunigten Datenpfad mit niedriger Latenz +zu verwenden. Es ermöglicht auch die Live"=Migration von VMs mit direkt angeschlossenen VFs durch +Failover auf den paravirtuellen Datenpfad, wenn das VF ausgesteckt wird. + +\subsection{Netlink interface for ethtool} +CONFIG\_ETHTOOL\_NETLINK [=y] \textbf{[Y]}\\* +Eine alternative Benutzerschnittstelle für ethtool, die auf generischem Netlink basiert. +Sie bietet eine bessere Erweiterbarkeit und einige neue Funktionen, z.~B. Benachrichtigungsmeldungen. diff --git a/documentation/linux_configuration_15_device_drivers.tex b/documentation/linux_configuration_15_device_drivers.tex new file mode 100644 index 0000000..081bacc --- /dev/null +++ b/documentation/linux_configuration_15_device_drivers.tex @@ -0,0 +1,1500 @@ +% Device Drivers (15) + +\section{Device Drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(Gerätetreiber)} + +\subsection{EISA support ---} +CONFIG\_EISA [=n] \textbf{[~]}\\* +Der Extended Industry Standard Architecture (EISA)-Bus wurde als offene Alternative +zum IBM MicroChannel"=Bus entwickelt. +Der EISA-Bus bot einige der Funktionen des IBM"=MicroChannel"=Busses und war gleichzeitig +abwärtskompatibel mit Karten, die für den älteren ISA"=Bus hergestellt wurden. +Der EISA-Bus wurde zwischen 1988 und 1995 in begrenztem Umfang eingesetzt, +als er durch den PCI-Bus überflüssig wurde. +Geben Sie hier Y an, wenn Sie einen Kernel für einen EISA"=basierten Rechner erstellen. +Ansonsten sagen Sie N. + +\subsection{PCI support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_PCI [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für den lokalen PCI-Bus, einschließlich der +Unterstützung für PCI-X und die Grundlagen für die Unterstützung von PCI Express.\\ +Sagen Sie hier Y, wenn Sie nicht wissen, was Sie tun. + +\subsubsection{PCI Express Port Bus support} +CONFIG\_PCIEPORTBUS [=y] \textbf{[Y]}\\* +Dadurch wird die Unterstützung für den PCI Express Port Bus aktiviert. Benutzer können +dann die Unterstützung für Native Hot-Plug, Advanced Error Reporting, Power Management +Events und Downstream Port Containment aktivieren. + +\paragraph{PCI Express Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_PCIE [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, wenn Sie ein Motherboard haben, das natives PCIe"=Hotplug unterstützt. +Thunderbolt/USB4 PCIe-Tunneling hängt von nativem PCIe"=Hotplug ab. +Im Zweifelsfall sagen Sie N. + +\paragraph{PCI Express Advanced Error Reporting support}$~$\\ +CONFIG\_PCIEAER [=y] \textbf{[Y]}\\* +Dies ermöglicht die Unterstützung des PCI Express Root Port Advanced Error Reporting +(AER) Treibers. Die an den Root Port gesendeten Fehlermeldungen werden vom PCI Express +AER"=Treiber verarbeitet. + +\subparagraph{PCI Express error injection support}$~$\\ +CONFIG\_PCIEAER\_INJECT [=m] \textbf{[M]}\\* +Dies aktiviert den PCI Express Root Port Advanced Error Reporting (AER) Software-Fehlerinjektor. +Das Debuggen von AER-Code ist ziemlich schwierig, da es schwierig ist, verschiedene echte +Hardwarefehler auszulösen. Software"=basierte Fehlerinjektion kann fast alle Arten von Fehlern +mit Hilfe eines Userspace"=Hilfswerkzeugs \texttt{aer-inject} vortäuschen, +das unter folgender Adresse erhältlich ist +\url{https://git.kernel.org/cgit/linux/kernel/git/gong.chen/aer-inject.git/} + +\subparagraph{PCI Express CXL RAS support}$~$\\ +CONFIG\_PCIEAER\_CXL [=y] \textbf{[Y]}\\* +Aktiviert die CXL"=Fehlerbehandlung. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{PCI Express ECRC settings control}$~$\\ +CONFIG\_PCIE\_ECRC [=y] \textbf{[Y]}\\* +Wird verwendet, um Firmware-/Bios-Einstellungen für PCI Express ECRC +(Transaction Layer End-to-End CRC Checking) außer Kraft zu setzen. +Im Zweifelsfall sagen Sie N. + +\subsubsection{PCI Express ASPM control} +CONFIG\_PCIEASPM [=y] \textbf{[Y]}\\* +Dies ermöglicht dem Betriebssystem die Kontrolle über PCI Express ASPM +(Active State Power Management) und Clock Power Management. +ASPM unterstützt den Zustand L0/L0s/L1.\\ +ASPM wird zunächst von der Firmware eingerichtet. Wenn diese Option aktiviert ist, kann Linux +diesen Status ändern, um ASPM bei bekanntermaßen schlechter Hardware oder Konfigurationen zu +deaktivieren und bei bekanntermaßen sicherer Hardware zu aktivieren. +ASPM kann zur Laufzeit über \texttt{/sys/module/pcie\_aspm/parameters/policy} +deaktiviert oder aktiviert werden. +Im Zweifelsfall sagen Sie Y. + + +\paragraph{Default ASPM policy (BIOS default) \texorpdfstring{$\rightarrow$}{->}}$~$\\ +\textit{Für diese Option gibt es keine Hilfe.} + +\subparagraph{BIOS default}$~$\\ +CONFIG\_PCIEASPM\_DEFAULT [=y] \textbf{[Y]}\\* +Verwenden Sie die BIOS"=Standardeinstellungen für PCI Express ASPM. + +\subparagraph{Powersave}$~$\\ +CONFIG\_PCIEASPM\_POWERSAVE [=n] \textbf{[~]}\\* +Aktiviert PCI Express ASPM L0s und L1 wo möglich, auch wenn das BIOS dies nicht getan hat. + +\subparagraph{Power Supersave}$~$\\ +CONFIG\_PCIEASPM\_POWER\_SUPERSAVE [=n] \textbf{[~]}\\* +Wie PCIEASPM\_POWERSAVE, nur dass auch L1-Substates aktiviert werden, wo dies möglich ist. +Dies würde zu höheren Energieeinsparungen führen, während man in L1 bleibt, +wo die Komponenten dies unterstützen. + +\subparagraph{Performance}$~$\\ +CONFIG\_PCIEASPM\_POWER\_PERFORMANCE [=n] \textbf{[~]}\\* +Deaktivieren Sie PCI Express ASPM L0s und L1, auch wenn das BIOS sie aktiviert hat. + +%15.2.3 +\subsubsection{PCI Express Downstream Port Containment support} +CONFIG\_PCIE\_DPC [=y] \textbf{[Y]}\\* +Dies ermöglicht die Unterstützung von PCI Express Downstream Port Containment (DPC) Treibern. +DPC"=Ereignisse von Root- und Downstream"=Ports werden durch den DPC"=Treiber verarbeitet. +Wenn Ihr System nicht über diese Fähigkeit verfügt oder Sie diese Funktion nicht nutzen möchten, +können Sie mit N antworten. + +%15.2.4 +\subsubsection{PCI Express Precision Time Measurement support} +CONFIG\_PCIE\_PTM [=y] \textbf{[Y]}\\* +Dies ermöglicht die Unterstützung von PCI Express Precision Time Measurement (PTM). +Dies ist nur sinnvoll, wenn Sie Geräte haben, die PTM unterstützen, aber es ist sicher, +sie zu aktivieren, auch wenn Sie sie nicht haben. + +%15.2.5 +\subsubsection{PCI Express Error Disconnect Recover support} +CONFIG\_PCIE\_EDR [=y] \textbf{[Y]}\\* +Diese Option fügt die Unterstützung für Error Disconnect Recover hinzu, wie in der +Downstream Port Containment Related Enhancements ECN der PCI Firmware Specification r3.2 beschrieben. +Aktivieren Sie diese Option, wenn Sie ein hybrides DPC-Modell unterstützen möchten, das sowohl +Firmware als auch Betriebssystem zur Implementierung von DPC verwendet. + +\subsubsection{Message Signaled Interrupts (MSI and MSI-X)} +CONFIG\_PCI\_MSI [=y] \textbf{[Y]}\\* +Damit können Gerätetreiber MSI (Message Signaled Interrupts) aktivieren. +Message Signaled Interrupts ermöglichen es einem Gerät, einen Interrupt zu erzeugen, indem es ein +eingehendes Memory Write auf seinem PCI-Bus verwendet, anstatt einen Geräte"=IRQ-Pin zu aktivieren. +Die Verwendung von PCI MSI"=Interrupts kann beim Booten des Kernels mit der Option +\texttt{pci=nomsi} deaktiviert werden. Dadurch wird MSI für das gesamte System deaktiviert. +Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie Y. + +\subsubsection{PCI Debugging} +CONFIG\_PCI\_DEBUG [=n] \textbf{[~]}\\* +Geben Sie hier Y an, wenn Sie möchten, dass der PCI-Kern eine Reihe von Debug"=Meldungen in +das Systemprotokoll schreibt. Wählen Sie dies, wenn Sie ein Problem mit der +PCI"=Unterstützung haben und mehr über die Vorgänge erfahren möchten. +Im Zweifelsfall sagen Sie N. + +\subsubsection{Enable PCI resource re-allocation detection} +CONFIG\_PCI\_REALLOC\_ENABLE\_AUTO [=n] \textbf{[~]}\\* +Geben Sie hier Y an, wenn Sie möchten, dass der PCI-Kern erkennt, ob die Neuzuweisung von +PCI"=Ressourcen aktiviert werden muss. Sie können jederzeit +\texttt{pci=realloc=on} oder \texttt{pci=realloc=off} verwenden, um dies zu überschreiben. +Es werden automatisch PCI"=Ressourcen neu zugewiesen, wenn SR-IOV BARs nicht vom BIOS +zugewiesen wurden. +Im Zweifelsfall sagen Sie N. + +\subsubsection{PCI Stub driver} +CONFIG\_PCI\_STUB [=y] \textbf{[Y]}\\* +Sagen Sie hier Y oder M, wenn Sie ein PCI-Gerät reservieren wollen, wenn es einem +Gastbetriebssystem zugewiesen werden soll. +Im Zweifelsfall sagen Sie N. + +%15.2.10 +\subsubsection{PCI PF Stub driver} +CONFIG\_PCI\_\_PF\_STUB [=m] \textbf{[M]}\\* +Geben Sie hier Y oder M an, wenn Sie die Unterstützung für Geräte, die SR-IOV"=Unterstützung +benötigen, aktivieren möchten, während die PF (Physical Function) selbst keine eigentlichen +Dienste auf dem Host selbst, wie z.~B. Speicher oder Netzwerke, bereitstellt. +Im Zweifelsfall sagen Sie N. + +\subsubsection{Xen PCI Frontend} +CONFIG\_XEN\_PCIDEV\_FRONTEND [=m] \textbf{[M]}\\* +Der PCI-Geräte"=Frontend"=Treiber ermöglicht es dem Kernel, beliebige PCI"=Geräte aus +einem PCI"=Back"-end zu importieren, um PCI"=Treiber"=Domänen zu unterstützen. + +\subsubsection{PCI IOV support} +CONFIG\_PCI\_IOV [=y] \textbf{[Y]}\\* +E/A-Virtualisierung ist eine PCI"=Funktion, die von einigen Geräten unterstützt wird und +es ihnen ermöglicht, virtuelle Geräte zu erstellen, die ihre physischen Ressourcen gemeinsam nutzen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{PCI PRI support} +CONFIG\_PCI\_PRI [=y] \textbf{[Y]}\\* +PRI ist das PCI Page Request Interface. Es ermöglicht PCI"=Geräten, die sich hinter einer +IOMMU befinden, sich von Seitenfehlern zu erholen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{PCI PASID support} +CONFIG\_PCI\_PASID [=y] \textbf{[Y]}\\* +Process Address Space Identifiers (PASIDs) können von PCI"=Geräten für den gleichzeitigen Zugriff +auf mehr als einen IO"=Adressraum verwendet werden. Um diese Funktion nutzen zu können, ist eine +IOMMU erforderlich, die auch PASIDs unterstützt. +Wählen Sie diese Option, wenn Sie eine solche IOMMU haben und den Treiber dafür in Ihren Kernel +kompilieren wollen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{PCI peer-to-peer transfer support} +CONFIG\_PCI\_P2PDMA [=y] \textbf{[Y]}\\* +Ermöglicht Treibern die Durchführung von PCI-Peer-to-Peer"=Transaktionen zu und von BARs, die in +anderen Geräten exponiert sind, die den Teil der Hierarchie darstellen, in dem Peer-to-Peer-DMA +von der PCI"=Spezifikation garantiert wird (d.~h. alles unterhalb einer einzelnen PCI"=Bridge). +Viele PCIe"=Root"=Komplexe unterstützen keine P2P"=Transaktionen, und es ist schwer zu sagen, +welche sie überhaupt unterstützen. Daher müssen P2P-DMA"=Transaktionen derzeit zwischen Geräten +hinter demselben Root-Port erfolgen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Hyper-V PCI Frontend} +CONFIG\_PCI\_HYPERV [=m] \textbf{[M]}\\* +Der PCI-Geräte-Frontend-Treiber ermöglicht es dem Kernel, beliebige PCI"=Geräte aus einem +PCI"=Back"-end zu importieren, um PCI"=Treiber"=Domänen zu unterstützen. + +\subsubsection{VGA Arbitration} +CONFIG\_VGA\_ARB [=y] \textbf{[Y]}\\* +Einige \glqq alte\grqq{} VGA"=Geräte, die auf PCI implementiert sind, haben in der Regel die +gleichen hart dekodierten Adressen wie auf ISA. Wenn auf mehrere PCI"=Geräte gleichzeitig +zugegriffen wird, müssen diese irgendwie koordiniert werden. Weitere Einzelheiten finden Sie +unter Documentation/gpu/vgaarbiter.rst. Wählen Sie dies, um VGA"=Arbiter zu aktivieren. + +\paragraph{Maximum number of GPUs}$~$\\ +CONFIG\_VGA\_ARB\_MAX\_GPUS [=10] \textbf{[10]}\\* +Reserviert Platz im Kernel, um die Ressourcensperre für mehrere GPUS aufrechtzuerhalten. +Der Overhead für jede GPU ist sehr gering.\\ +Typ: Ganzzahl (integer) + +\subsubsection{Support for PCI Hotplug \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_HOTPLUG\_PCI [=y] \textbf{[Y]}\\* +Geben Sie hier Y ein, wenn Sie ein Motherboard mit einem PCI-Hotplug-Controller haben. +Damit können Sie PCI-Karten hinzufügen und entfernen, während der Rechner eingeschaltet ist und läuft. +Thunderbolt/USB4 PCIe-Tunneling hängt vom nativen PCIe-Hotplug ab. +Im Zweifelsfall sagen Sie N. + +%15.2.18.1 +\paragraph{ACPI PCI Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_ACPI [=y] \textbf{[Y]}\\* +Geben Sie hier Y ein, wenn Sie ein System haben, das PCI Hotplug mit ACPI unterstützt. +Im Zweifelsfall sagen Sie N. +%15.2.18.1.1 +\subparagraph{ACPI PCI Hotplug driver IBM extensions}$~$\\ +CONFIG\_HOTPLUG\_PCI\_ACPI\_IBM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Geben Sie hier Y ein, wenn Sie ein IBM-System haben, das PCI-Hotplug über ACPI unterstützt. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird +\texttt{acpiphp\_ibm} heißen. +Im Zweifelsfall sagen Sie N. +\\\begin{scriptsize} +Der Laptop ist kein IBM-System. +\end{scriptsize} + +\paragraph{CompactPCI Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_CPCI \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Geben Sie hier Y ein, wenn Sie eine CompactPCI"=Systemkarte mit CompactPCI"=Hotswap"=Unterstützung +gemäß der PICMG~2.1"=Spezifikation besitzen. +Im Zweifelsfall sagen Sie N. +\\\begin{scriptsize} +Im Laptop ist diese CompactPCI-Karte nicht verbaut. +\end{scriptsize} + +\subparagraph{Ziatech ZT5550 CompactPCI Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_CPCI\_ZT5550 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie eine Ziatech ZT5550 CompactPCI-Systemkarte von Performance Technologies +(früher Intel, früher nur Ziatech) besitzen. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul heißt dann \texttt{cpcihp\_zt5550}. +Im Zweifelsfall sagen Sie N. +\\\begin{scriptsize} +Im Laptop ist diese CompactPCI-Karte nicht verbaut. +\end{scriptsize} + +\subparagraph{Generic port I/O CompactPCI Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_CPCI\_GENERIC \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie eine CompactPCI"=Systemkarte haben, die das \#ENUM-Hotswap-Signal als +ein Bit in einem Systemregister ausgibt, das über Standard"=Port-I/O gelesen werden kann. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{cpcihp\_generic} genannt. +Im Zweifelsfall sagen Sie N. +\\\begin{scriptsize} +Im Laptop ist diese CompactPCI-Karte nicht verbaut. +\end{scriptsize} + +\paragraph{SHPC PCI Hotplug driver}$~$\\ +CONFIG\_HOTPLUG\_PCI\_SHPC \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Geben Sie hier Y ein, wenn Sie ein Motherboard mit einem SHPC PCI Hotplug Controller haben. +Im Zweifelsfall sagen Sie N. + +\subsubsection{PCI controller drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(PCI-Controller-Treiber)} + +\paragraph{Intel Volume Management Device Driver}$~$\\ +CONFIG\_VMD \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Fügt Unterstützung für das Intel Volume Management Device (VMD) hinzu. VMD ist eine sekundäre +PCI-Host"=Brücke, die es ermöglicht, PCI-Express-Root-Ports und daran angeschlossene Geräte aus +der Standard-PCI-Domäne zu entfernen und in die VMD-Domäne zu verschieben. Dadurch stehen mehr +Bus"=Ressourcen zur Verfügung, als dies bei einer einzelnen Domäne möglich wäre. +Wenn Sie wissen, dass Ihr System über einen dieser Ports verfügt und Geräte daran angeschlossen +sind, sagen Sie Y; wenn Sie sich nicht sicher sind, sagen Sie N. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{vmd} genannt. + +\paragraph{Microsoft Hyper-V PCI Interface}$~$\\ +CONFIG\_PCI\_HYPERV\_INTERFACE \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Das Hyper-V PCI Interface ist ein Hilfstreiber, der es anderen +Treibern ermöglicht, eine gemeinsame Schnittstelle mit dem Hyper-V +PCI Frontend-Treiber zu haben. + +\paragraph{Cadence-based PCIe controllers ---}$~$\\ +\textit{Cadence-basierte PCIe-Steuerungen, keine Auswahl} + +\paragraph{DesignWare-based PCIe controllers \texorpdfstring{$\rightarrow$}{->}}$~$\\ +\textit{DesignWare-basierte PCIe-Steuerungen} + +%15.2.19.4.1 +\subparagraph{Amlogic Meson PCIe controller}$~$\\ +CONFIG\_PCI\_MESON \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie die Unterstützung des PCI-Controllers +auf Amlogic-SoCs aktivieren wollen. Der PCI-Controller auf Amlogic +basiert auf DesignWare"=Hardware und daher verwendet der Treiber die +DesignWare"=Kernfunktionen zur Implementierung des Treibers. + +\subparagraph{Platform bus based DesignWare PCIe controller (host mode)}$~$\\ +CONFIG\_PCIe\_DW\_PLAT\_HOST \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Ermöglicht die Unterstützung des PCIe-Controllers in der Designware-IP +für den Betrieb im Host-Modus. Es gibt zwei Instanzen des PCIe-Controllers +in Designware IP. Dieser Controller kann entweder als EP oder RC arbeiten. +Um hostspezifische Funktionen zu aktivieren, muss PCIE\_DW\_PLAT\_HOST +ausgewählt werden und um gerätespezifische Funktionen zu aktivieren, +muss PCI\_DW\_PLAT\_EP ausgewählt werden. + +\paragraph{Mobiveil-based PCIe controllers ---}$~$\\ +\textit{Mobiveil-basierte PCIe-Steuerungen, keine Auswahl} + +\subsubsection{PCI Endpoint \texorpdfstring{$\rightarrow$}{->}} +\textit{(PCI-Endgerät} + +\paragraph{PCI Endpoint Support}$~$\\ +CONFIG\_PCI\_ENDPOINT [=n] \textbf{[~]}\\* +Aktivieren Sie diese Konfigurationsoption, um einen konfigurierbaren PCI"=Endpunkt +zu unterstützen. Dies sollte aktiviert werden, wenn die Plattform über einen +PCI"=Controller verfügt, der im Endpunktmodus arbeiten kann.\\ +Durch die Aktivierung dieser Option wird die Endpunkt"=Bibliothek erstellt, die +eine Endpunkt"=Controller"=Bibliothek und eine Endpunkt"=Funktionsbibliothek +enthält. +Im Zweifelsfall sollten Sie N angeben, um die Endpunktunterstützung zu +deaktivieren. + +\subsubsection{PCI switch controller drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(PCI-Switch-Controller-Treiber} + +\paragraph{MicroSemi Switchtec PCIe Switch Management Driver}$~$\\ +CONFIG\_PCI\_SW\_SWITCHTEC \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Ermöglicht die Unterstützung der Management"=Schnittstelle für die MicroSemi +Switchtec"=Serie von PCIe"=Switches. Unterstützt den Userspace"=Zugriff, um +MRPC"=Befehle über /dev/switchtecX-Geräte an den Switch zu senden. +Siehe $<$file:Documentation/driver-api/switchtec.rst$>$ für weitere Informationen. + +\subsubsection{CXL (Compute Express Link) Devices Support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CXL\_BUS \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +CXL ist ein Bus, der elektrisch mit PCI Express kompatibel ist, aber drei Protokolle +auf diese Signalisierung aufbaut (CXL.io, CXL.cache und CXL.mem). +Das CXL.cache"=Protokoll ermöglicht es Geräten, Cachelines lokal zu halten, das +CXL.mem"=Protokoll ermöglicht es Geräten, vollständig kohärente Speicherziele zu +sein, das CXL.io"=Protokoll entspricht PCI Express. Sagen Sie Y, um die Unterstützung +für die Konfiguration und Verwaltung von Geräten zu aktivieren, die diese Protokolle +unterstützen. + +\paragraph{PCI manageability}$~$\\ +CONFIG\_CXL\_PCI \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Die CXL-Spezifikation definiert eine Unterklasse \glqq CXL"=Speichergerät\grqq{} +in der PCI"=Basisklasse der \glqq Speicher"=Controller\grqq{}. +Geräte, die mit diesem Klassencode gekennzeichnet sind, bieten Unterstützung +für flüchtigen und/oder dauerhaften Speicher, der in die Systemadresszuordnung +(Host-managed Device Memory (HDM)) eingeordnet werden kann. +Sagen Sie \glqq y/m\grqq{}, um einen Treiber zu aktivieren, der sich +an CXL"=Speichererweiterungsgeräte anschließt, die durch den Klassencode +des Speichergeräts für die Konfiguration und Verwaltung hauptsächlich über +die Mailbox"=Schnittstelle aufgezählt werden. +Siehe Kapitel~2.3 Typ~3 CXL Gerät in der CXL~2.0 Spezifikation für weitere Details. +Wenn Sie unsicher sind, sagen Sie M. + +\subparagraph{RAW Command Interface for Memory Devices}$~$\\ +CONFIG\_CXL\_MEM\_RAW\_COMMANDS [=n] \textbf{[~]}\\* +Aktivieren Sie die CXL RAW-Befehlsschnittstelle.\\ +Die ioctl"=Schnittstelle des CXL"=Treibers kann für jeden spezifizierten Opcode +eine Kernel"=ioctl"=Befehlsnummer zuweisen. Zu jedem beliebigen Zeitpunkt kann +die Anzahl der in der Spezifikation definierten Opcodes, die ein Gerät +implementieren kann, die Anzahl der zugehörigen ioctl"=Funktionsnummern des +Kernels übersteigen. Die Diskrepanz entsteht entweder durch Auslassung, weil die +Spezifikation zu neu ist, oder durch das Design. Beim Prototyping neuer Hardware +oder bei der Entwicklung/Debugging des Treibers ist es nützlich, alle möglichen +Befehle an die Hardware übermitteln zu können, sogar Befehle, die den Kernel zum +Absturz bringen könnten, da sie sich auf den vom Kernel verwendeten Speicher +auswirken könnten.\\ +Wenn Sie CXL"=Hardware oder den Treiber entwickeln, sagen Sie Y, andernfalls +sagen Sie N. + +\paragraph{CXL ACPI: Platform Support}$~$\\ +CONFIG\_CXL\_ACPI \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Aktiviert die Unterstützung von HDM"=Ressourcen (Host Managed Device Memory), die +von der ACPI"=CXL"=Speicherlayoutbeschreibung einer Plattform veröffentlicht werden. +Siehe Kapitel~9.14.1 CXL Early Discovery Table (CEDT) in der CXL~2.0 Spezifikation +und CXL Fixed Memory Window Structures (CEDT.CFMWS) +(\url{https://www.computeexpresslink.org/spec-landing}). +Der CXL-Kern nutzt diese Ressourcen, um die Wurzel einer cxl\_port"=Decodierungshierarchie +zu veröffentlichen, um Regionen abzubilden, die System"=RAM oder von LIBNVDIMM zu +verwaltende Festspeicherregionen darstellen. +Wenn Sie unsicher sind, sagen Sie M. + +\paragraph{CXL PMEM: Persistent Memory Support}$~$\\ +CONFIG\_CXL\_PMEM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Zusätzlich zu den typischen Speicherressourcen kann eine Plattform auch die Unterstützung +von über CXL angeschlossenem persistenten Speicher ankündigen. Diese Unterstützung wird +über einen Brückentreiber zwischen CXL und dem LIBNVDIMM"=System"=Subsystem verwaltet. +Sagen Sie \glqq Y/M\grqq{}, um die Unterstützung für die Aufzählung und Bereitstellung der +Kapazität des persistenten Speichers von CXL"=Speichererweiterungen zu aktivieren. +Wenn Sie unsicher sind, sagen Sie M. + +\paragraph{CXL: Memory Expansion}$~$\\ +CONFIG\_CXL\_MEM \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Das CXL.mem-Protokoll ermöglicht es einem Gerät, als Anbieter von \glqq System-RAM\grqq{} +und/oder \glqq persistentem Speicher\grqq{} zu fungieren, der vollständig kohärent ist, +als wäre der Speicher an den typischen CPU"=Speicher"=Controllern angeschlossen. +Dies wird als HDM \glqq Host-managed Device Memory\grqq{} bezeichnet. +Sagen Sie Y/M, um einen Treiber zu aktivieren, der sich an CXL.mem"=Geräte zur +Speichererweiterung und Steuerung von HDM anschließt. +Eine detaillierte Beschreibung von HDM finden Sie in Kapitel~9.13 der CXL~2.0"=Spezifikation. +Wenn Sie unsicher sind, sagen Sie M. + +\paragraph{CXL: Region Support}$~$\\ +CONFIG\_CXL\_REGION \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Ermöglicht dem CXL-Kern die Aufzählung und Bereitstellung von CXL"=Regionen. Eine CXL"=Region +wird durch einen oder mehrere CXL"=Expander definiert, die einen bestimmten +systemphysikalischen Adressbereich dekodieren. Für CXL"=Regionen, die von der +Plattform"=Firmware eingerichtet wurden, ermöglicht diese Option die Behandlung von +Speicherfehlern, um die Geräte zu identifizieren, die an einem bestimmten verschachtelten +Speicherbereich teilnehmen. Andernfalls wird das von der Plattform-Firmware verwaltete CXL +durch Aufnahme in die Systemadresskarte aktiviert und benötigt keinen Treiber. +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{CXL: Region Cache Management Bypass (TEST)}$~$\\ +CONFIG\_CXL\_REGION\_INVALIDATION\_TEST [=n] \textbf{[~]}\\* +Die Verwaltungs- und Sicherheitsoperationen von CXL Region machen möglicherweise den Inhalt +von CPU"=Caches ungültig, ohne diese Caches zu benachrichtigen, damit sie die betroffenen +Cachelines ungültig machen. Der CXL"=Region"=Treiber versucht, Caches zu invalidieren, wenn +diese Ereignisse eintreten. Wenn diese Invalidierung fehlschlägt, kann die Region nicht +aktiviert werden. Die Gründe für das Scheitern der Cache"=Invalidierung liegen darin, dass +die CPU keinen Cache"=Invalidierungsmechanismus bereitstellt. Zum Beispiel ist die Verwendung +von wbinvd auf Bare Metal x86 beschränkt. Zu Testzwecken kann das Umschalten dieser Option +jedoch die Datenintegritätssicherheit deaktivieren und mit der Aktivierung von Regionen +fortfahren, wenn im CPU"=Cache widersprüchliche Inhalte vorhanden sind.// +Wenn Sie unsicher sind oder wenn dieser Kernel für Produktionsumgebungen gedacht ist, +wählen Sie N. + +\paragraph{CXL Performance Monitoring Unit}$~$\\ +CONFIG\_CXL\_PMU \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Support performance monitoring as defined in CXL rev~3.0 section~13.2: Performance Monitoring. +CXL components may have one or more CXL Performance Monitoring Units (CPMUs).\\ +Say Y/M to enable a driver that will attach to performance monitoring units and provide +standard perf based interfaces. +If unsure say M. + +\subsection{PCCard (PCMCIA/Cardbus) support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_PCCARD [=m] \textbf{[M]}\\* +Sagen Sie hier Y, wenn Sie PCMCIA- oder PC"=Karten an Ihren Linux"=Computer anschließen wollen. +Das sind kreditkartengroße Geräte wie Netzwerkkarten, Modems oder Festplatten, die oft in +Laptops verwendet werden. Es gibt eigentlich zwei Arten dieser Karten: 16-Bit-PCMCIA- und +32-Bit"=CardBus"=Karten. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird pcmcia\_core heißen. + +\subsubsection{16-bit PCMCIA support} +CONFIG\_PCMCIA \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Diese Option ermöglicht die Unterstützung von 16-Bit-PCMCIA"=Karten. Die meisten älteren +PC"=Karten sind solche 16-Bit PCMCIA"=Karten. Wenn Sie also nicht wissen, dass Sie nur +32"=Bit CardBus"=Karten verwenden, geben Sie hier Y oder M an. +Um 16-Bit PCMCIA"=Karten zu verwenden, benötigen Sie in den meisten Fällen unterstützende +Software. (siehe die Datei $<$file:Documentation/Changes$>$ für Ort und Details). +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{pcmcia} heißen. +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Load CIS updates from userspace}$~$\\ +CONFIG\_PCMCIA\_LOAD\_CIS \colorbox{yellow!80}{[=y] \textbf{[~]}}\\* +Einige PCMCIA"=Karten benötigen eine aktualisierte Karteninformationsstruktur (CIS), die aus +dem Userspace geladen werden muss, um korrekt zu funktionieren. Wenn Sie hier Y angeben und +Ihr Userspace korrekt eingerichtet ist, wird diese automatisch mit dem +In-Kernel"=Firmware"=Loader und dem Hotplug"=Subsystem geladen, anstatt sich auf cardmgr von +pcmcia-cs zu verlassen. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{32-bit CardBus support} +CONFIG\_CARDBUS \colorbox{yellow!80}{[=y] \textbf{[M]}}\\* +CardBus ist eine Bus-Mastering-Architektur für PC-Karten, die 32-Bit-PC-Karten ermöglicht +(der ursprüngliche PCMCIA"=Standard sieht nur einen 16-Bit breiten Bus vor). +Viele neuere PC-Karten sind eigentlich CardBus-Karten. +Um 32-Bit-PC-Karten zu verwenden, benötigen Sie auch eine CardBus"=kompatible Host"=Bridge. +Praktisch alle modernen PCMCIA"=Bridges sind dazu in der Lage, und die meisten von ihnen +sind \glqq Yenta-kompatibel\grqq{}, d.~h. sie sagen auch Y oder M. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection*{*** PC-card bridges ***} + +\subsubsection{CardBus yenta-compatible bridge support} +CONFIG\_YENTA \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Diese Option ermöglicht die Unterstützung von CardBus-Host-Bridges. Praktisch alle modernen +PCMCIA"=Bridges sind CardBus-kompatibel. Eine \glqq Brücke\grqq{} ist die Hardware in Ihrem +Computer, in die PCMCIA-Karten eingesteckt werden. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{yenta\_socket} heißen. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Cirrus PD6729 compatible bridge support} +CONFIG\_PD6729 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Dies bietet Unterstützung für das Cirrus PD6729 PCI-zu-PCMCIA"=Bridge"=Gerät, das in einigen +älteren Laptops und PCMCIA-Kartenlesern zu finden ist. + +\subsubsection{i82092 compatible bridge support} +CONFIG\_I82092 \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Dies bietet Unterstützung für das Intel I82092AA PCI-zu-PCMCIA"=Brückengerät, das in einigen +älteren Laptops und häufiger in Evaluierungsboards für den Chip zu finden ist. + +\subsection{RapidIO support ---}% \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_PCCARD [=n] \textbf{[~]}\\* +Wenn Sie hier Y angeben, wird der Kernel Treiber und Infrastrukturcode zur Unterstützung von +RapidIO"=Verbindungsgeräten enthalten. + +\subsection{Generic Driver Options \texorpdfstring{$\rightarrow$}{->}} +\textit{Allgemeine Treiberoptionen} + +\subsubsection{Support for uevent helper} +CONFIG\_UEVENT\_HELPER [=n] \textbf{[~]}\\* +Das uevent"=Hilfsprogramm wird vom Kernel für jedes uevent gegabelt. +Vor der Umstellung auf die netlink"=basierte uevent"=Quelle wurde es verwendet, um +Hotplug"=Skripte mit Kernel"=Geräteereignissen zu verbinden. Es zeigte normalerweise auf ein +Shell"=Skript unter /sbin/hotplug. +Dies sollte heute nicht mehr verwendet werden, da übliche Systeme beim Booten oder bei der +Geräteerkennung viele Ereignisse in einem sehr kurzen Zeitrahmen erzeugen. Ein geforkter +Prozess pro Ereignis kann so viele Prozesse erzeugen, dass es zu einer hohen Systembelastung +kommt, oder auf kleineren Systemen ist bekannt, dass es zu Out"=of"=Memory"=Situationen +während des Bootvorgangs kommt. + +\subsubsection{Maintain a devtmpfs filesystem to mount at /dev} +CONFIG\_DEVTMPFS [=y] \textbf{[Y]}\\* +Dadurch wird eine tmpfs/ramfs"=Dateisysteminstanz bereits beim Booten erzeugt. In diesem +Dateisystem verwaltet der Kernel"=Treiberkern Geräteknoten mit ihren Standardnamen und +Berechtigungen für alle registrierten Geräte mit einer zugewiesenen Major/Minor"=Nummer. +Der Userspace kann den Inhalt des Dateisystems nach Bedarf ändern, Symlinks hinzufügen und +die erforderlichen Berechtigungen vergeben. +Er stellt ein voll funktionsfähiges /dev"=Verzeichnis zur Verfügung, auf dem normalerweise +udev läuft, das die Berechtigungen verwaltet und sinnvolle Symlinks hinzufügt. +In sehr begrenzten Umgebungen kann es ein ausreichend funktionierendes /dev ohne weitere +Hilfe bereitstellen. Es erlaubt auch einfache Rettungssysteme und geht zuverlässig mit +dynamischen Major/Minor"=Nummern um. +Hinweis: Wenn CONFIG\_TMPFS nicht aktiviert ist, wird stattdessen das einfachere +ramfs"=Dateisystem verwendet. + +\paragraph{Automount devtmpfs at /dev, after the kernel mounted the rootfs}$~$\\ +CONFIG\_DEVTMPFS\_MOUNT %\colorbox{yellow!80}% +{[=y] \textbf{[Y]}}\\* +Dies weist den Kernel an, das Dateisystem devtmpfs automatisch unter /dev einzuhängen, +direkt nachdem der Kernel das Root"=Dateisystem eingehängt hat. Das Verhalten kann mit +dem Kommandozeilenparameter: \texttt{devtmpfs.mount=$0|1$} überschrieben werden. +Diese Option hat keinen Einfluss auf initramfs"=basiertes Booten, hier muss das +devtmpfs"=Dateisystem immer manuell eingehängt werden, nachdem das rootfs eingehängt +wurde.\\ +Wenn diese Option aktiviert ist, kann ein System im Rettungsmodus mit +\texttt{init=/bin/sh} gebootet werden, auch wenn das /dev"=Verzeichnis auf dem rootfs +komplett leer ist. + +\paragraph{Use nosuid,noexec mount options on devtmpfs}$~$\\ +CONFIG\_DEVTMPFS\_SAFE [=y] \textbf{[Y]}\\* +Dies weist den Kernel an, die Einhängeflags MS\_NOEXEC und MS\_NOSUID beim Einhängen +von devtmpfs zu berücksichtigen.\\ +Beachten Sie: Wenn dies aktiviert ist, können Dinge wie /dev/mem nicht mit dem +PROT\_EXEC"=Flag gemappt werden. Dies kann z.~B. Nicht"=KMS"=Grafiktreiber beschädigen. + +\subsubsection{Select only drivers that don't need compile-time external firmware} +CONFIG\_STANDALONE [=y] \textbf{[Y]}\\* +Wählen Sie diese Option, wenn Sie keine magische Firmware für Treiber haben, +die diese benötigen.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Disable drivers features which enable custom firmware building} +CONFIG\_PREVENT\_FIRMWARE\_BUILD [=y] \textbf{[Y]}\\* +Sagen Sie ja, um Treiberfunktionen zu deaktivieren, die es ermöglichen, eine +benutzerdefinierte Treiber"=Firmware zur Kernel"=Erstellungszeit zu erstellen. +Diese Treiber verwenden nicht die Kernel"=Firmware"=API zum Laden der Firmware +(CONFIG\_FW\_LOADER), sondern ihren eigenen benutzerdefinierten Lademechanismus. +Die benötigte Firmware wird in der Regel mit dem Treiber ausgeliefert, das +Erstellen der Treiber"=Firmware sollte nur notwendig sein, wenn Sie eine +aktualisierte Firmware"=Quelle haben.\\ +Firmware sollte nicht als Teil des Kernels gebaut werden. +Heutzutage sollte man dies immer verhindern und hier Y sagen. +Es gibt nur zwei alte Treiber, die die Erstellung ihrer Firmware zur +Kernel"=Erstellungszeit ermöglichen: +\begin{itemize} + \item CONFIG\_WANXL durch CONFIG\_WANXL\_BUILD\_FIRMWARE + \item CONFIG\_SCSI\_AIC79XX durch CONFIG\_AIC79XX\_BUILD\_FIRMWARE +\end{itemize} + +\subsubsection{Firmware loader \texorpdfstring{$\rightarrow$}{->}} +\textit{(Firmware-Ladeprogramm)} + +\paragraph{Firmware loading facility}$~$\\ +CONFIG\_FW\_LOADER [=y] \textbf{[Y]}\\* +Damit wird die Möglichkeit zum Laden der Firmware im Kernel aktiviert. +Der Kernel sucht zunächst nach eingebauter Firmware, wenn er welche hat. +Anschließend sucht er in einer Reihe von Dateisystempfaden nach der gewünschten +Firmware: +\begin{itemize} + \item firmware\_class Pfad-Modulparameter oder Kernel-Boot-Parameter + \item /lib/firmware/updates/UTS\_RELEASE + \item /lib/firmware/updates + \item /lib/firmware/UTS\_RELEASE + \item /lib/firmware +\end{itemize} +Die Aktivierung dieser Funktion vergrößert Ihr Kernel"=Image nur um etwa 828~Bytes. +Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass Sie keine Firmware +benötigen. +Normalerweise wollen Sie diese Funktion eingebaut haben (=y), aber Sie können sie +auch als Modul aktivieren, in diesem Fall wird das Modul \texttt{firmware\_class} +gebaut. +Sie sollten auch sicherstellen, dass Sie diese integrierte Funktion aktivieren, +wenn Sie die integrierte Firmware (CONFIG\_EXTRA\_FIRMWARE) aktivieren wollen. + +\subparagraph{Log filenames and checksums for loaded firmware}$~$\\ +CONFIG\_FW\_LOADER\_DEBUG [=y] \textbf{[Y]}\\* +Wählen Sie diese Option, um mit dynamischem Debugging die Dateinamen der Firmware +und SHA256"=Prüfsummen für jede geladene Firmware"=Datei im Kernel-Protokoll zu +protokollieren. + +\subparagraph{Build named firmware blobs into the kernel binary}$~$\\ +CONFIG\_EXTRA\_FIRMWARE [=] \textbf{[~]}\\* +Gerätetreiber, die Firmware benötigen, können normalerweise damit umgehen, dass +der Kernel Firmware aus den verschiedenen unterstützten +\texttt{/lib/firmware/}"=Pfaden +lädt. Diese Option ermöglicht es Ihnen, Firmware"=Dateien in den Kernel +einzubauen. Eingebaute Firmware"=Suchen haben Vorrang vor Firmware"=Suchvorgängen +unter Verwendung Ihres Dateisystems über die unterstützten +\texttt{/lib/firmware}"=Pfade, +die unter CONFIG\_FW\_LOADER dokumentiert sind. +Dies kann zu Testzwecken nützlich sein oder wenn die Firmware zu einem frühen +Zeitpunkt beim Booten benötigt wird und man sich nicht darauf verlassen kann, +dass die Firmware in einer initrd oder initramfs abgelegt ist. +Diese Option ist eine Zeichenkette und nimmt die (durch Leerzeichen getrennten) +Namen der Firmware"=Dateien auf -- die gleichen Namen, die in MODULE\_FIRMWARE() +und request\_firmware() im Quelltext erscheinen. Diese Dateien sollten in dem +Verzeichnis vorhanden sein, das mit der Option EXTRA\_FIRMWARE\_DIR angegeben +wurde, was standardmäßig /lib/firmware ist. +Sie könnten zum Beispiel \texttt{CONFIG\_EXTRA\_FIRMWARE=\dq usb8388.bin\dq} setzen, +die Datei usb8388.bin nach /lib/firmware kopieren und den Kernel bauen. +Dann wird jede request\_firmware(\glqq usb8388.bin\grqq{}) intern im Kernel +befriedigt, ohne dass das Dateisystem zur Laufzeit eingesehen werden muss. +WARNUNG: Wenn Sie zusätzliche Firmware"=Dateien in Ihr binäres Kernel"=Image +einbinden, die nicht unter den Bedingungen der GPL verfügbar sind, dann kann es +eine Verletzung der GPL sein, das resultierende Image zu verteilen, da es +sowohl GPL- als auch Nicht"=GPL"=Arbeiten kombiniert. Sie sollten einen eigenen +Anwalt konsultieren, bevor Sie ein solches Image weitergeben.\\ +HINWEIS: Komprimierte Dateien werden in EXTRA\_FIRMWARE nicht unterstützt. + +\subparagraph{Enable the firmware sysfs fallback mechanism}$~$\\ +CONFIG\_FW\_LOADER\_USER\_HELPER [=n] \textbf{[~]}\\* +Mit dieser Option wird eine sysfs"=Lademöglichkeit aktiviert, um das Laden von +Firmware in den Kernel über den Userspace als Fallback"=Mechanismus zu +ermöglichen, und zwar nur dann, wenn die direkte Dateisystem"=Suche des Kernels +nach der Firmware unter Verwendung der verschiedenen +\texttt{/lib/firmware/}"=Pfade oder des im Modulparameter \texttt{firmware\_class} +path angegebenen Pfades oder des Kernel"=Boot"=Parameters \texttt{firmware\_class} +path fehlgeschlagen ist, wenn die firmware\_class eingebaut ist. +Einzelheiten zur Arbeit mit dem sysfs"=Fallback"=Mechanismus finden Sie in +Documentation/driver-api/firmware/fallback-mechanisms.rst.\\ +Die direkte Dateisystem"=Suche nach Firmware wird nun immer zuerst verwendet. +Wenn die direkte Dateisystem"=Suche des Kernels nach Firmware die angeforderte +Firmware nicht findet, wird eine sysfs"=Fallback"=Lademöglichkeit zur Verfügung +gestellt, und der Userspace wird durch uevents darüber informiert. Das uevent +kann unterdrückt werden, wenn der Treiber es explizit anfordert. Wenn der +benutzerdefinierte Fallback"=Mechanismus verwendet wird, muss der Userspace +immer bestätigen, dass die Firmware nicht gefunden wurde, da die +Zeitüberschreitung für den Fallback"=Mechanismus deaktiviert ist und +fehlgeschlagene Anfragen für immer verweilen. +Dies war früher die Standard"=Firmware"=Lademöglichkeit, und udev lauschte +auf uvents, um Firmware für den Kernel zu laden. Die Funktionalität der +Firmware"=Lademöglichkeit in udev wurde entfernt, so dass sie nicht mehr als +Ausweichmechanismus verwendet werden kann. Linux verlässt sich nicht mehr auf +einen Fallback"=Mechanismus im Userspace und verwendet diesen auch nicht mehr. +Wenn Sie sich auf einen solchen Mechanismus verlassen müssen, wenden Sie sich +an die freizügig lizenzierte Firmwared: +\url{https://github.com/teg/firmwared}\\ +Da dies früher die Standardfunktion zum Laden von Firmware war, kann es sein, +dass ein alter Userspace existiert, der sich darauf verlässt, und daher kann +dieser Mechanismus niemals aus dem Kernel entfernt werden. +Sie sollten diese Funktionalität nur aktivieren, wenn Sie sicher sind, dass +Sie einen Ausweichmechanismus benötigen und einen Userspace"=Mechanismus +bereithalten, um Firmware zu laden, falls diese nicht gefunden wird. Ein +Hauptgrund dafür kann sein, dass Sie Treiber haben, die eine eingebaute +Firmware benötigen und aus irgendeinem Grund die benötigte Firmware nicht in +initramfs unterbringen können. +Ein weiterer Grund, warum Kernel diese Funktion aktiviert haben können, ist +die Unterstützung eines Treibers, der explizit auf diesen Fallback"=Mechanismus +angewiesen ist. Derzeit benötigen nur zwei Treiber diese Funktion: +\begin{itemize} + \item CONFIG\_LEDS\_LP55XX\_COMMON + \item CONFIG\_DELL\_RBU +\end{itemize} +Abgesehen von der Unterstützung der oben genannten Treiber kann ein weiterer +Grund dafür sein, dass Ihre Firmware außerhalb der Pfade liegt, nach denen der +Kernel sucht, und nicht mit dem Modulparameter firmware\_class path oder dem +Boot"=Parameter firmware\_class path des Kernels angegeben werden kann, wenn +firmware\_class eingebaut ist. +Ein moderner Anwendungsfall könnte darin bestehen, während der Bereitstellung +vorübergehend eine benutzerdefinierte Partition einzuhängen, auf die nur der +Userspace Zugriff hat, und diese dann zu verwenden, um nach der benötigten +Firmware zu suchen und sie zu holen. Eine solche Art von Treiberfunktionalität +wird von den Herstellern möglicherweise nicht einmal gewünscht, so dass sie +nur als Schnittstelle für die Bereitstellung unterstützt werden muss. +Da die Firmware"=Lademöglichkeit von udev entfernt wurde, können Sie +firmwared oder einen Fork davon verwenden, um die Art und Weise, wie Sie +Firmware auf der Grundlage von ausgegebenen uevents laden wollen, anzupassen. +Wenn Sie diese Option aktivieren, erhöht sich die Größe Ihres Kernel"=Images +um etwa 13436~Bytes.\\ +Wenn Sie sich unsicher sind, sagen Sie hier N, es sei denn, Sie sind eine +Linux"=Distribution und müssen die beiden oben genannten Treiber unterstützen +oder Sie sind sich sicher, dass Sie eine wirklich benutzerdefinierte +Firmware"=Lademöglichkeit im Userspace unterstützen müssen. + +\subparagraph{Enable compressed firmware support}$~$\\ +CONFIG\_FW\_LOADER\_COMPRESS [=y] \textbf{[Y]}\\* +Diese Option aktiviert die Unterstützung für das Laden komprimierter +Firmware"=Dateien. Der Aufrufer der Firmware"=API erhält den dekomprimierten +Dateiinhalt. Die komprimierte Datei wird nur dann als Fallback geladen, wenn +das Laden der Rohdatei zunächst fehlgeschlagen ist.\\ +Die Unterstützung für komprimierte Firmware gilt nicht für Firmware-Images, +die in das Kernel-Image eingebaut sind (CONFIG\_EXTRA\_FIRMWARE). + +\subsubparagraph{Enable XZ-compressed firmware support}$~$\\ +CONFIG\_FW\_LOADER\_COMPRESS\_XZ [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Unterstützung für XZ"=komprimierte Dateien +hinzugefügt. Die Dateien müssen entweder mit dem Integritätsprüfungstyp +\texttt{none} oder \texttt{crc32} komprimiert sein (übergeben Sie die Option +\texttt{\dq -C crc32\dq} an den Befehl \texttt{xz}). + +\subsubparagraph{Enable ZSTD-compressed firmware support}$~$\\ +CONFIG\_FW\_LOADER\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\* +Mit dieser Option wird die Unterstützung für ZSTD"=komprimierte Dateien +hinzugefügt. + +\subparagraph{Enable firmware caching during suspend}$~$\\ +CONFIG\_FW\_CACHE [=y] \textbf{[Y]}\\* +Da die Firmware"=Zwischenspeicherung uevent"=Meldungen erzeugt, die über +einen Netlink"=Socket gesendet werden, kann sie auf vielen Plattformen ein +Suspendieren verhindern. Es ist auch nicht immer nützlich, daher haben wir +auf solchen Plattformen die Option.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\subparagraph{Enable users to initiate firmware updates using sysfs}$~$\\ +CONFIG\_FW\_UPLOAD [=y] \textbf{[Y]}\\* +Durch die Aktivierung dieser Option können Gerätetreiber eine persistente +\texttt{sysfs}"=Schnittstelle bereitstellen, über die Firmware"=Updates aus +dem Userspace initiiert werden können. Beispielsweise laden FPGA"=basierte +PCIe"=Karten beim Booten der Karte Firmware und FPGA"=Images aus dem lokalen +FLASH. Die Images im FLASH können durch neue, vom Benutzer bereitgestellte +Images aktualisiert werden. Aktivieren Sie dieses Gerät, um Karten zu +unterstützen, die auf vom Benutzer initiierte Updates für Firmware"=Dateien +angewiesen sind. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Driver Core verbose debug message} +CONFIG\_DEBUG\_DRIVER [=n] \textbf{[~]}\\* +Geben Sie hier Y an, wenn Sie möchten, dass der Treiberkern eine Reihe von +Debugmeldungen in das Systemprotokoll schreibt. Wählen Sie dies, wenn Sie ein +Problem mit dem Treiberkern haben und mehr über die Vorgänge erfahren möchten. +Wenn Sie sich nicht sicher sind, wählen Sie hier N. + +\subsubsection{Managed device resources verbose debug messages} +CONFIG\_DEBUG\_DEVRES [=n] \textbf{[~]}\\* +Diese Option aktiviert den Kernelparameter devres.log. Wenn sie auf einen Wert +ungleich Null gesetzt ist, werden Devres"=Debug"=Meldungen gedruckt. Wählen +Sie diese Option, wenn Sie ein Problem mit devres haben oder die +Ressourcenverwaltung für ein verwaltetes Gerät debuggen wollen. +\texttt{devres.log} +kann vom sysfs"=Knoten aus ein- und ausgeschaltet werden.\\ +Wenn Sie sich diesbezüglich unsicher sind, sagen Sie hier N. + +\subsubsection{Test driver remove calls during probe (UNSTABLE)} +CONFIG\_DEBUG\_TEST\_DRIVER\_REMOVE [=n] \textbf{[~]}\\* +Geben Sie hier Y an, wenn Sie möchten, +dass der Treiberkern die Funktionen zum Entfernen von Treibern durch den +Aufruf von probe, remove, probe testet. Dadurch wird der Entfernungspfad +getestet, ohne dass der Treiber entbunden oder das Treibermodul entladen +werden muss. +Es wird erwartet, dass diese Option Fehler findet und Ihr System unbrauchbar +machen kann. Sie sollten hier N angeben, es sei denn, Sie wollen diese +Funktion ausdrücklich testen. + +\subsubsection{Build kernel module to test asynchronous driver probing} +CONFIG\_TEST\_ASYNC\_DRIVER\_PROBE [=n] \textbf{[~]}\\* +Die Aktivierung dieser Option erzeugt ein Kernelmodul, mit dem die asynchrone +Treiberprüfung durch den Gerätekern getestet werden kann. +Der Modulname lautet \texttt{test\_async\_driver\_probe.ko}\\ +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Enable verbose DMA\_FENCE\_TRACE messages} +CONFIG\_DMA\_FENCE\_TRACE [=n] \textbf{[~]}\\* +Aktivieren Sie die Druckfunktion DMA\_FENCE\_TRACE. Dies fügt dem +Konsolenprotokoll zusätzlichen Spam hinzu, erleichtert aber die Diagnose +von Problemen im Zusammenhang mit Blockierungen bei DMA"=Puffern, die von +mehreren Geräten gemeinsam genutzt werden. + +\subsubsection{sync\_state() behavior defaults to timeout instead of strict} +CONFIG\_FW\_DEVLINK\_SYNC\_STATE\_TIMEOUT [=n] \textbf{[~]}\\* +Dies entspricht dem Hinzufügen des Kernel"=Kommandozeilenparameters\\ +\texttt{\dq fw\_devlink.sync\_state=timeout\dq}.\\ +Geben Sie das Warten auf Verbraucher auf und rufen Sie sync\_state() auf +allen Geräten auf, die ihre sync\_state()"=Aufrufe noch nicht erhalten haben, +nachdem deferred\_probe\_timeout abgelaufen ist oder durch late\_initcall(), +wenn !CONFIG\_MODULES. Sie sollten hier fast immer N auswählen, es sei denn, +Sie haben bereits erfolgreich mit der Kommandozeilenoption auf jedem +System/Board getestet, auf dem Ihr Kernel voraussichtlich funktionieren wird. + +\subsection{Bus devices \texorpdfstring{$\rightarrow$}{->}} +\textit{(Bus-Geräte)} + +\subsubsection{Modem Host Interface (MHI) bus} +CONFIG\_MHI\_BUS [=m] \textbf{[M]}\\* +Bustreiber für das MHI"=Protokoll. Modem Host Interface (MHI) ist ein +Kommunikationsprotokoll, das von den Host"=Prozessoren zur Steuerung und +Kommunikation mit Modemgeräten über einen Hochgeschwindigkeits"=Peripheriebus +oder gemeinsamen Speicher verwendet wird. + +\paragraph{Debugfs support for the MHI bus}$~$\\ +CONFIG\_MHI\_BUS\_DEBUG [=n] \textbf{[~]}\\* +Aktiviert die Unterstützung von debugfs für die Verwendung mit dem MHI-Transport. +Ermöglicht das Lesen und/oder Ändern einiger Werte innerhalb des MHI"=Controllers +zu Debug- und Testzwecken. + +\paragraph{MHI PCI controller driver}$~$\\ +CONFIG\_MHI\_BUS\_PCI\_GENERIC [=m] \textbf{[M]}\\* +Dieser Treiber bietet einen MHI PCI"=Controller"=Treiber für Geräte wie Qualcomm +SDX55"=basierte PCIe"=Modems. + +\subsubsection{Modem Host Interface (MHI) bus Endpoint implementation} +CONFIG\_MHI\_BUS\_EP [=m] \textbf{[M]}\\* +Bustreiber für das MHI-Protokoll. Modem Host Interface (MHI) ist ein +Kommunikationsprotokoll, das von einem Host"=Prozessor zur Steuerung und +Kommunikation eines Modemgeräts über einen Hochgeschwindigkeits"=Peripheriebus +oder einen gemeinsamen Speicher verwendet wird. +MHI\_BUS\_EP implementiert das MHI"=Protokoll für die Endpunktgeräte, wie z.~B. +das SDX55"=Modem, das über PCIe mit dem Host"=Rechner verbunden ist. + +%15.7 +\subsection{Cache Drivers ---} +\textit{(Pufferspeicher-Treiber)} + +\subsection{Connector -- unified userspace +\texorpdfstring{$\leftrightarrow$}{<->} kernelspace linker +\texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CONNECTOR [=y] \textbf{[Y]}\\* +Dies ist ein vereinheitlichter Userspace $\leftrightarrow$ +Kernelspace"=Anschluss, +der auf dem Netlink"=Socket"=Protokoll aufbaut. +Connector"=Unterstützung kann auch als Modul gebaut werden. +Wenn dies der Fall ist, wird das Modul \texttt{cn} genannt. + +\subsubsection{Report process events to userspace} +CONFIG\_PROC\_EVENTS [=y] \textbf{[Y]}\\* +Einen Konnektor bereitstellen, der Prozessereignisse an den Userspace meldet. +Senden Sie Ereignisse wie fork, exec, id-Änderung (uid, gid, suid, etc.) +und exit. + +%15.9 +\subsection{Firmware Drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(Firmware-Treiber)} + +\subsubsection{ARM System Control and Management Interface Protocol ---} +\textit{(ARM-Systemsteuerungs- und Verwaltungsschnittstellenprotokoll)} + +\subsubsection{BIOS Enhanced Disk Drive calls determine boot disk} +CONFIG\_EDD [=m] \textbf{[M]}\\* +Geben Sie hier Y oder M an, wenn Sie die BIOS Enhanced Disk Drive Services +aktivieren wollen, die das BIOS im realen Modus aufruft, um festzustellen, +von welcher Festplatte das BIOS zu booten versucht. Diese Information wird +dann über sysfs exportiert. +Diese Option ist experimentell und es ist bekannt, dass sie bei einigen +obskuren Konfigurationen nicht bootet. Die meisten BIOS"=Hersteller von +Festplattencontrollern implementieren diese Funktion noch nicht. + +\paragraph{Sets default behavior for EDD detection to off}$~$\\ +CONFIG\_EDD\_OFF [=n] \textbf{[~]}\\* +Sagen Sie Y, wenn Sie EDD standardmäßig deaktivieren wollen, obwohl es in +den Kernel einkompiliert ist. Sagen Sie N, wenn Sie EDD standardmäßig +aktivieren wollen. EDD kann mit dem Kernelparameter +\texttt{edd=$\{$on|skipmbr|off$\}$} dynamisch eingestellt werden. + +%15.9.3 +\subsubsection{Export DMI identification via sysfs to userspace} +CONFIG\_DMIID [=y] \textbf{[Y]}\\* +Geben Sie hier Y an, wenn Sie SMBIOS/DMI"=Systemidentifikationsinformationen +aus dem Userspace über \texttt{/sys/class/dmi/id/} abfragen wollen oder +wenn Sie +DMI"=basiertes automatisches Laden von Modulen wünschen. + +%15.9.4 +\subsubsection{DMI table support in sysfs} +CONFIG\_DMI\_SYSFS [=y] \textbf{[Y]}\\* +Geben Sie hier Y oder M ein, um den Export der Rohdaten der DMI"=Tabelle +über sysfs zu aktivieren. Dies ist nützlich, um die Daten zu konsumieren, +ohne überhaupt Zugriff auf \texttt{/dev/mem} zu benötigen. +Die Tabellen befinden sich unter \texttt{/sys/firmware/dmi}, wenn diese +Option aktiviert und geladen ist. + +\subsubsection{iSCSI Boot Firmware Table Attributes} +CONFIG\_ISCSI\_IBFT\_FIND [=y] \textbf{[Y]}\\* +Mit dieser Option kann der Kernel den Speicherbereich finden, in dem sich +die ISCSI Boot Firmware Table (iBFT) befindet. Dies ist notwendig, damit das +Modul iSCSI Boot Firmware Table Attributes richtig funktioniert. + +\subsubsection{iSCSI Boot Firmware Table Attributes module} +CONFIG\_ISCSI\_IBFT [=m] \textbf{[M]}\\* +Diese Option aktiviert die Unterstützung für die Erkennung und Offenlegung +der iSCSI Boot Firmware Table (iBFT) über sysfs im Userspace. Wenn Sie die +iSCSI"=Boot"=Parameter während des Systemstarts dynamisch erkennen möchten, +geben Sie Y an. +Andernfalls sagen Sie N. + +\subsubsection{QEMU fw\_cfg device support in sysfs} +CONFIG\_FW\_CFG\_SYSFS [=m] \textbf{[M]}\\* +Geben Sie hier Y oder M ein, um den Export der QEMU"=Firmware"=Konfigurationsdatei +(fw\_cfg) über sysfs zu aktivieren. Die Einträge befinden sich unter +\texttt{/sys/firmware/fw\_cfg}, wenn diese Option aktiviert und geladen ist. + +\paragraph{QEMU fw\_cfg device parameter parsing}$~$\\ +CONFIG\_FW\_CFG\_SYSFS\_CMDLINE [=n] \textbf{[~]}\\* +Ermöglicht die Initialisierung des Geräts \texttt{qemu\_fw\_cfg} über die +Kernel"=Befehlszeile oder über einen Modulparameter.\\ +WARNUNG: Die Verwendung falscher Parameter (insbesondere der Basisadresse) +kann Ihr System zum Absturz bringen. + +\subsubsection{Mark VGA/VBE/EFI FB as generic system framebuffer} +CONFIG\_SYSFB\_SIMPLEFB [=y] \textbf{[Y]}\\* +Firmwares stellen oft anfängliche Grafik"=Framebuffer zur Verfügung, so dass +das BIOS, der Bootloader oder der Kernel die grundlegende Videoausgabe während +des Bootens zur Benutzerführung und Fehlersuche anzeigen kann. In der +Vergangenheit wurden hierfür die VESA-BIOS"=Erweiterungen und EFI"=Framebuffer +verwendet, die meist auf x86"=BIOS oder EFI"=Systeme beschränkt sind.\\ +Wenn diese Option aktiviert ist, werden VGA/VBE/EFI"=Framebuffer als +generische Framebuffer markiert, so dass stattdessen die neuen generischen +System"=Framebuffer"=Treiber verwendet werden können. Wenn der Framebuffer +nicht mit den generischen Modi kompatibel ist, wird er als +Fallback"=Plattform"=Framebuffer angezeigt, so dass Legacy"=Treiber wie +efifb, vesafb und uvesafb ihn verwenden können. +Wenn diese Option nicht ausgewählt ist, werden alle System"=Framebuffer wie +üblich als Fallbac"=-Plattform"=Framebuffer gekennzeichnet. +Hinweis: Ältere fbdev"=Treiber, einschließlich vesafb, efifb und uvesafb, +sind nicht in der Lage, generische System"=Framebuffer zu erkennen, wenn +diese Option aktiviert ist. Es wird dringend empfohlen, simplefb als Ersatz +zu aktivieren, wenn Sie diese Option wählen. simplefb kann korrekt mit +generischen System"=Framebuffern umgehen. Sie sollten jedoch vesafb und +andere als Ersatz aktivieren, wenn ein System"=Framebuffer nicht mit +simplefb kompatibel ist. +Wenn Sie unsicher sind, sagen Sie Y. + +\subsubsection{Google Firmware Drivers \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_GOOGLE\_FIRMWARE [=y] \textbf{[Y]}\\* +Diese Firmware-Treiber werden von Google"=Servern, Chromebooks und anderen +Geräten mit Coreboot"=Firmware verwendet. +Im Zweifelsfall sagen Sie N. + +\paragraph{SMI interface for Google platforms}$~$\\ +CONFIG\_GOOGLE\_SMI [=n] \textbf{[~]}\\* +Sagen Sie hier Y, wenn Sie SMI-Callbacks für Google"=Plattformen aktivieren +wollen. Dies bietet eine Schnittstelle zum Schreiben und Löschen des +Ereignisprotokolls. Wenn CONFIG\_EFI ebenfalls aktiviert ist, bietet dieser +Treiber eine Schnittstelle zum Lesen und Schreiben von NVRAM"=Variablen. + +\paragraph{CBMEM entries in sysfs}$~$\\ +CONFIG\_GOOGLE\_CBMEM [=m] \textbf{[M]}\\* +CBMEM ist ein nach unten wachsender Speicherbereich, der vom Coreboot-BIOS +erstellt wird und mit Tags versehene Datenstrukturen des BIOS enthält. +Diese Datenstrukturen stellen Dinge wie die verifizierten Boot"=Firmware"=Variablen, +das Flash"=Layout, das Firmware"=Ereignisprotokoll und mehr dar. +Diese Option aktiviert das cbmem"=Modul, das den Kernel veranlasst, nach +Coreboot"=CBMEM"=Einträgen zu suchen und den Speicher für jeden Eintrag in +sysfs unter \texttt{/sys/bus/coreboot/devices/cbmem-$<$id$>$} freizugeben. + +\paragraph{Coreboot Table Access}$~$\\ +CONFIG\_GOOGLE\_COREBOOT\_TABLE [=m] \textbf{[M]}\\* +Diese Option aktiviert das Modul coreboot\_table, das anderen Firmware"=Modulen +den Zugriff auf die coreboot"=Tabelle ermöglicht. Der Zugriff auf den Zeiger +der coreboot"=Tabelle erfolgt über das ACPI"=Objekt "GOOGCB00" oder den +Gerätebaumknoten /firmware/coreboot. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Firmware Memory Console -- X86 Legacy support}$~$\\ +CONFIG\_GOOGLE\_MEMCONSOLE\_X86\_LEGACY [=n] \textbf{[~]}\\* +Diese Option ermöglicht es dem Kernel, in der EBDA auf Google-Servern nach +einem Firmware"=Protokoll zu suchen. Wenn es gefunden wird, wird dieses +Protokoll in der Datei \texttt{/sys/firmware/log} in das +Benutzerland (userland) exportiert. + +\paragraph{Coreboot Framebuffer}$~$\\ +CONFIG\_GOOGLE\_FRAMEBUFFER\_COREBOOT [=m] \textbf{[M]}\\* +Diese Option ermöglicht es dem Kernel, in der Coreboot-Tabelle nach einem Framebuffer +zu suchen. Wird er gefunden, wird er mit \texttt{simplefb} registriert. + +\paragraph{Firmware Memory Console}$~$\\ +CONFIG\_GOOGLE\_MEMCONSOLE\_COREBOOT [=m] \textbf{[M]}\\* +Diese Option ermöglicht es dem Kernel, in der coreboot"=Tabelle nach einem +Firmware"=Protokoll zu suchen. Wenn es gefunden wird, wird dieses Protokoll +in der Datei \texttt{/sys/firmware/log} in das Benutzerland (userland) +exportiert. + +\paragraph{Vital Product Data}$~$\\ +CONFIG\_GOOGLE\_VPD [=m] \textbf{[M]}\\* +Diese Option ermöglicht es dem Kernel, den Inhalt von Google VPD unter +\texttt{/sys/firmware/vpd} zu veröffentlichen. + +\subsubsection{EFI (Extensible Firmware Interface) Support \texorpdfstring{$\rightarrow$}{->}} +\textit{(EFI-Unterstützung (Erweiterbare Firmware-Schnittstelle))} + +\paragraph{Register efivars backend for pstore}$~$\\ +CONFIG\_EFI\_VARS\_PSTORE [=y] \textbf{[Y]}\\* +Sagen Sie hier Y, um die Verwendung von \texttt{efivars} als Backend für +\texttt{pstore} zu aktivieren. Dies ermöglicht das Schreiben von +Konsolenmeldungen, Crash"=Dumps oder anderen von pstore unterstützten Daten +in EFI"=Variablen. + +\subparagraph{Disable using efivars as a pstore backend by default}$~$\\ +CONFIG\_EFI\_VARS\_PSTORE\_DEFAULT\_DISABLE [=y] \textbf{[Y]}\\* +Wenn Sie hier Y angeben, wird die Verwendung von efivars als Speicher-Backend für +pstore standardmäßig deaktiviert. Diese Einstellung kann mit dem Parameter +\texttt{pstore\_disable} des \texttt{efivars}-Moduls außer Kraft gesetzt werden. + +\paragraph{Reserve EFI Specific Purpose Memory}$~$\\ +CONFIG\_EFI\_SOFT\_RESERVE [=y] \textbf{[Y]}\\* +Auf Systemen mit gemischten Leistungsklassen des Speichers kann EFI mit einem Attribut +einen bestimmten Zweck des Speichers angeben (siehe EFI\_MEMORY\_SP in UEFI~2.8). +Ein mit diesem Attribut gekennzeichneter Speicherbereich kann im Vergleich zum allgemeinen +\glqq System"=RAM\grqq{}"=Pool des Systems einzigartige Leistungsmerkmale aufweisen. In der Erwartung, +dass ein solcher Speicher anwendungsspezifisch genutzt wird und sein EFI"=Basistyp +\glqq konventionell\grqq{} ist, antwortet Y, damit der Kernel ihn als +\glqq Soft Reserved\grqq{}-Ressource reserviert und standardmäßig für den Direktzugriff +(device-dax) reserviert. Der Speicherbereich kann später optional dem Page Allocator durch +die Systemadministrator"=Policy über die device"=dax kmem"=Funktion zugewiesen werden. +Sagen Sie N, damit der Kernel diesen Speicher standardmäßig als \glqq System-RAM\grqq{} +behandelt.\\ +Wenn Sie unsicher sind, sagen Sie Y. + +\paragraph{Adjust memory attributes in EFISTUB}$~$\\ +CONFIG\_EFI\_DXE\_MEM\_ATTRIBUTES [=y] \textbf{[Y]}\\* +Die UEFI-Spezifikation garantiert nicht, dass der gesamte Speicher sowohl zum Schreiben +als auch zum Ausführen zugänglich ist, wie es der Kernel erwartet.\\ +Verwenden Sie DXE-Dienste, um Speicherschutzattribute während des Bootens über EFISTUB +zu prüfen und zu ändern, um sicherzustellen, dass die vom Kernel verwendeten +Speicherbereiche beschreibbar und ausführbar sind. + +\paragraph{EFI Bootloader Control}$~$\\ +CONFIG\_EFI\_BOOTLOADER\_CONTROL [=m] \textbf{[M]}\\* +Dieses Modul installiert einen Reboot-Hook, so dass, wenn reboot() mit einem +String-Argument NNN aufgerufen wird, \glqq NNN\grqq{} in die EFI"=Variable +\glqq LoaderEntryOneShot\grqq{} kopiert wird, um vom Bootloader gelesen zu werden.\\ +Wenn die Zeichenkette mit einem der in seiner Konfiguration definierten Boot-Labels +übereinstimmt, bootet der Bootloader einmal mit diesem Label. +Die EFI"=Variable +\glqq LoaderEntryRebootReason\grqq{} wird mit dem Reboot"=Grund gesetzt: +\glqq reboot\grqq{} oder \glqq shutdown\grqq{}. Der Bootloader liest diesen +Reboot"=Grund ein und ergreift bestimmte Maßnahmen entsprechend seiner Richtlinie. + +\paragraph{EFI capsule loader}$~$\\ +CONFIG\_EFI\_CAPSULE\_LOADER [=m] \textbf{[M]}\\* +Diese Option stellt eine Laderschnittstelle \texttt{/dev/efi\_capsule\_loader} zur Verfügung, +über die Benutzer EFI"=Kapseln laden können. Dieser Treiber erfordert eine funktionierende +Runtime"=Kapselunterstützung in der Firmware, die viele OEMs nicht bieten.\\ +Die meisten Benutzer sollten N sagen. + +\paragraph{EFI Runtime Service Tests Support}$~$\\ +CONFIG\_EFI\_TEST [=n] \textbf{[~]}\\* +Dieser Treiber verwendet die \texttt{efi.$<$service$>$}"=Funktionszeiger direkt, anstatt über die +efivar"=API zu gehen, da er nicht versucht, das Kernel"=Subsystem zu testen, sondern nur +die UEFI"=Laufzeitdienstschnittstellen, die von der Firmware bereitgestellt werden. +Dieser Treiber wird von der Firmware Test Suite (FWTS) zum Testen der +UEFI"=Laufzeitschnittstellen der Firmware verwendet. +Details zur FWTS sind verfügbar unter: +\url{https://wiki.ubuntu.com/FirmwareTestSuite} +Sagen Sie hier Y, um die Unterstützung der Laufzeitdienste über \texttt{/dev/efi\_test} +zu aktivieren. +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{Apple Device Properties}$~$\\ +CONFIG\_APPLE\_PROPERTIES [=y] \textbf{[Y]}\\* +Rufen Sie Eigenschaften von EFI auf Apple Macs ab und weisen Sie sie Geräten zu, was eine +verbesserte Unterstützung von Apple"=Hardware ermöglicht. Zu den Eigenschaften, die sonst +fehlen würden, gehören das Thunderbolt"=Geräte"=ROM und die GPU"=Konfigurationsdaten. +Wenn Sie unsicher sind, sagen Sie Y, wenn Sie einen Mac haben. Andernfalls N. + +\paragraph{Reset memory attack mitigation}$~$\\ +CONFIG\_RESET\_ATTACK\_MITIGATION [=n] \textbf{[~]}\\* +Verlangen Sie, dass die Firmware den Inhalt des RAM nach einem Neustart unter Verwendung +der TCG Platform Reset Attack Mitigation Spezifikation löscht. Dies schützt davor, dass ein +Angreifer das System gewaltsam neu startet, während es noch Geheimnisse im RAM enthält, ein +anderes Betriebssystem startet und die Geheimnisse extrahiert. Diese Funktion sollte nur +aktiviert werden, wenn Userland so konfiguriert ist, dass das MemoryOverwriteRequest"=Flag +beim sauberen Herunterfahren gelöscht wird, nachdem die Geheimnisse entfernt wurden, da sie +sonst auch bei sauberen Neustarts ausgelöst wird. + +\paragraph{EFI Runtime Configuration Interface Table Version 2 Support}$~$\\ +CONFIG\_EFI\_RCI2\_TABLE [=y] \textbf{[Y]}\\* +Zeigt den Inhalt der Runtime Configuration Interface Table Version~2 auf +Dell EMC PowerEdge"=Systemen als binäres Attribut \glqq rci2\grqq{} im +Verzeichnis \texttt{/sys/firmware/efi/tables} an. +Die RCI2"=Tabelle enthält BIOS HII im XML"=Format und wird zum Auffüllen der +BIOS"=Setup"=Seite im Dell EMC OpenManage Server Administrator"=Tool verwendet. +Die BIOS"=Setup"=Seite enthält BIOS"=Tokens, die konfiguriert werden können. +Geben Sie hier Y für Dell EMC PowerEdge"=Systeme an. + +\paragraph{Clear Busmaster bit on PCI bridges during ExitBootServices()}$~$\\ +CONFIG\_EFI\_DISABLE\_PCI\_DMA [=n] \textbf{[~]}\\* +Deaktivieren Sie das Busmaster"=Bit im Kontrollregister auf allen PCI"=Brücken, während Sie +ExitBootServices() aufrufen und die Kontrolle an den Laufzeitkernel übergeben. Die +System"=Firmware kann die IOMMU so konfigurieren, dass böswillige PCI"=Geräte nicht in der +Lage sind, das Betriebssystem über DMA anzugreifen. Da die Firmware jedoch nicht garantieren +kann, dass das Betriebssystem IOMMU"=fähig ist, wird sie die IOMMU"=Konfiguration abbauen, +wenn ExitBootServices() aufgerufen wird. Dadurch bleibt ein Zeitfenster, in dem ein +feindliches Gerät noch Schaden anrichten kann, bevor Linux die IOMMU erneut konfiguriert. +Wenn Sie hier Y angeben, wird der EFI"=Stub das Busmaster"=Bit auf allen PCI"=Brücken +löschen, bevor ExitBootServices() aufgerufen wird. Dadurch wird verhindert, dass böswillige +PCI"=Geräte DMA durchführen können, bis der Kernel das Busmastering nach der Konfiguration +der IOMMU wieder aktiviert. +Diese Option kann bei einigen Geräten mit schlechtem Verhalten zu Fehlern führen und sollte +nicht ohne Test aktiviert werden. Die Kernel"=Befehlszeilenoptionen +\texttt{efi=disable\_early\_pci\_dma} oder \texttt{efi=no\_disable\_early\_pci\_dma} können +verwendet werden, um diese Option außer Kraft zu setzen. + +\paragraph{Load custom ACPI SSDT overlay from an EFI variable}$~$\\ +CONFIG\_EFI\_CUSTOM\_SSDT\_OVERLAYS [=y] \textbf{[Y]}\\* +Ermöglicht das Laden eines ACPI-SSDT-Overlays aus einer EFI"=Variablen, die durch eine +Kernel"=Befehlszeilenoption angegeben wird. +Siehe Documentation/admin-guide/acpi/ssdt-overlays.rst für weitere Informationen. + +\paragraph{Disable EFI runtime services support by default}$~$\\ +CONFIG\_EFI\_DISABLE\_RUNTIME [=n] \textbf{[N]}\\* +Erlaubt es, die Unterstützung der EFI-Laufzeitdienste standardmäßig zu deaktivieren. +Dies kann bereits durch die Verwendung der Option \texttt{efi=noruntime} erreicht werden, +aber es könnte nützlich sein, diese Voreinstellung ohne einen Kernel"=Befehlszeilenparameter zu haben. +Die EFI"=Laufzeitdienste sind standardmäßig deaktiviert, wenn PREEMPT\_RT aktiviert ist, da Messungen +gezeigt haben, dass einige EFI"=Funktionsaufrufe zu viel Zeit benötigen, um abgeschlossen zu werden, +was zu großen Latenzen führen kann, was ein Problem für Echtzeit"=Kernel darstellt. +Diese Voreinstellung kann mit der Option \texttt{efi=runtime} außer Kraft gesetzt werden. + +\paragraph{EFI Confidential Computing Secret Area Support}$~$\\ +CONFIG\_EFI\_COCO\_SECRET [=y] \textbf{[Y]}\\* +Confidential Computing"=Plattformen (z.~B. AMD SEV) ermöglichen es dem Gastbesitzer, während +des Starts der Gast"=VM auf sichere Weise Geheimnisse einzubringen. Die Geheimnisse werden in +einem bestimmten reservierten EFI"=Speicherbereich abgelegt. +Um die Geheimnisse im Kernel verwenden zu können, muss der Ort des geheimen Bereichs (wie in +der EFI"=Konfigurationstabelle veröffentlicht) beibehalten werden. +Wenn Sie hier Y angeben, wird die Adresse des EFI"=Geheimbereichs für die Verwendung im Kernel +beibehalten. Dadurch kann das Modul \texttt{virt/coco/efi\_secret} auf die Secrets zugreifen, +was wiederum Userspace"=Programmen den Zugriff auf die injizierten Secrets ermöglicht. + +\subsubsection{Qualcomm firmware drivers ---} +\textit{(Qualcomm-Firmware-Treiber)} + +\subsubsection{Tegra firmware drivers ---} +\textit{(Tegra-Firmware-Treiber)} + +\subsection{GNSS receiver support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_GNSS \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie einen GNSS"=Empfänger (z.~B. einen GPS"=Empfänger) haben. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{gnss} genannt. + +\subsubsection{Mediatek GNSS receiver support} +CONFIG\_GNSS\_MTK\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie einen Mediatek"=basierten GNSS"=Empfänger haben, der eine +serielle Schnittstelle verwendet. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird +\texttt{gnss-mtk} genannt. +Wenn Sie unsicher sind, wählen Sie N. + +\subsubsection{SiRFstar GNSS receiver support} +CONFIG\_GNSS\_SIRF\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie einen SiRFstar"=basierten GNSS"=Empfänger haben, der eine +serielle Schnittstelle verwendet. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul +wird \texttt{gnss-sirf} genannt. +Wenn Sie unsicher sind, wählen Sie N. + +\subsubsection{u-blox GNSS receiver support} +CONFIG\_GNSS\_UBX\_SERIAL \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Sagen Sie hier Y, wenn Sie einen GNSS-Empfänger von u-blox haben, der eine serielle +Schnittstelle verwendet. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{gnss-ubx} genannt. +Wenn Sie unsicher sind, wählen Sie N. + +\subsubsection{USB GNSS receiver support} +CONFIG\_GNSS\_USB \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Geben Sie hier Y ein, wenn Sie einen GNSS-Empfänger haben, der eine +USB-Schnittstelle verwendet. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: +Das Modul wird \texttt{gnss-usb} genannt. +Wenn Sie unsicher sind, sagen Sie N. + +\subsection{Memory Technology Devices (MTD) support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_MTD \colorbox{yellow!80}{[=m] \textbf{[~]}}\\* +Memory Technology Devices sind Flash-, RAM- und ähnliche Chips, die häufig für +Solid"=State"=Dateisysteme auf eingebetteten Geräten verwendet werden. Diese Option +bietet die allgemeine Unterstützung für MTD"=Treiber, um sich beim Kernel zu registrieren, +und für potenzielle Benutzer von MTD"=Geräten, um die vorhandenen Geräte aufzulisten und +einen Zugriff auf sie zu erhalten. Sie ermöglicht es Ihnen auch, individuelle Treiber für +bestimmte Hardware und Benutzer von MTD"=Geräten auszuwählen. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{MTD test support (DANGEROUS)} +CONFIG\_MTD\_TESTS [=n] \textbf{[~]}\\* +Mit dieser Option werden verschiedene MTD-Tests in die Kompilierung einbezogen. Die Tests +sollten normalerweise als Kernelmodule kompiliert werden. Die Module führen verschiedene +Prüfungen und Verifizierungen durch, wenn sie geladen werden.\\ +WARNUNG: Einige der Tests werden das gesamte MTD"=Gerät, das sie testen, LÖSCHEN. +Verwenden Sie diese Tests nicht, wenn Sie nicht wirklich wissen, was Sie tun. + +\subsubsection{Partition parsers \texorpdfstring{$\rightarrow$}{->}} +\textit{(Partitionsparser)} + +\paragraph{Command line partition table parsing}$~$\\ +CONFIG\_MTD\_CMDLINE\_PARTS [=n] \textbf{[~]}\\* +Ermöglicht die generische Konfiguration der MTD"=Partitionstabellen über die Kernel"=Befehlszeile. +Mehrere Flash"=Ressourcen werden für Hardware unterstützt, bei der verschiedene Arten von +Flash"=Speicher verfügbar sind. +Die Parsing"=Funktionen müssen immer noch vom Treiber für Ihr spezielles Gerät aufgerufen werden. +Das wird nicht automatisch geschehen. Der SA1100"=Map"=Treiber (CONFIG\_MTD\_SA1100) verfügt zum +Beispiel über eine entsprechende Option. +Das Format für die Befehlszeile ist wie folgt:\\[0.5em] +\texttt{mtdparts=$<$mtddef$>$[;$<$mtddef]\\ +$<$mtddef$>$ := $<$mtd-id$>$:$<$partdef$>$[,$<$partdef$>$]\\ +$<$partdef$>$ := $<$size$>$[@offset][$<$name$>$][ro]\\ +%$<$mtd-id$>$ := eindeutige Kennung, die bei der Zuordnung von Treiber/Gerät verwendet wird\\ +$<$mtd-id$>$ := eindeutige Kennung für die Zuordnung von Treiber/Gerät\\ +$<$size$>$ := Standard-Linux-Memsize ODER \dq{}-\dq{}, um den verbleibenden Platz zu kennzeichnen\\ +$<$name$>$ := (NAME)}\\[0.5em] +Aufgrund der Art und Weise, wie Linux mit der Kommandozeile umgeht, sind in der Partitionsdefinition +keine Leerzeichen erlaubt, auch nicht in den mtd"=id's und Partitionsnamen.\\ +Beispiele:\\ +1 Flash-Ressource (mtd-id \glqq sa1100\grqq{}), mit 1 einzigen beschreibbaren Partition:\\ +\texttt{mtdparts=sa1100:-}\\ +Gleiches Flash, aber 2 benannte Partitionen, von denen die erste schreibgeschützt ist:\\ +\texttt{mtdparts=sa1100:256k(ARMboot)ro,-(root)}\\ +Wenn Sie unsicher sind, sagen Sie N. + +\paragraph{RedBoot partition table parsing}$~$\\ +CONFIG\_MTD\_REDBOOT\_PARTS [=n] \textbf{[~]}\\* +RedBoot ist ein ROM"=Monitor und Bootloader, der mit mehreren \glqq Images\grqq{} in +Flash"=Geräten umgeht, indem er eine Tabelle in einen der Löschblöcke auf dem Gerät +einfügt, ähnlich einer Partitionstabelle, die die Offsets, Längen und Namen aller im +Flash gespeicherten Images enthält. +Wenn Sie einen Code benötigen, der diese Tabelle erkennt und analysiert und +MTD"=\glqq{}Partitionen\grqq{} entsprechend jedem Bild in der Tabelle registriert, +aktivieren Sie diese Option. +Die Parsing"=Funktionen müssen weiterhin vom Treiber für Ihr spezielles Gerät +aufgerufen werden. Das wird nicht automatisch geschehen. +Der SA1100"=Kartentreiber (CONFIG\_MTD\_SA1100) verfügt beispielsweise über eine +Option für diese Funktion. + +\subsubsection{*** User Modules And Translation Layers ***} +\textit{(Benutzermodule und Übersetzungsschichten)} + +\subsubsection{Caching block device access to MTD devices} +CONFIG\_MTD\_BLOCK [=m] \textbf{[M]}\\* +Obwohl die meisten Flash"=Chips eine zu große Löschgröße haben, um als Blockbausteine nützlich zu sein, +ist es möglich, MTD"=Bausteine, die auf RAM"=Chips basieren, auf diese Weise zu verwenden. +Dieses Blockgerät ist ein Benutzer von MTD"=Geräten, die diese Funktion erfüllen. +Beachten Sie, dass das Mounten eines JFFS2"=Dateisystems nicht die Verwendung von mtdblock erfordert. +Es ist möglich, ein rootfs unter Verwendung des MTD"=Geräts in den \texttt{root=}"=Bootargs als +\texttt{root=mtd2} oder \texttt{root=mtd:name\_of\_device} zu mounten.\\ +Später kann es erweitert werden, um Lese-/Lösch-/Modifizierungs-/Schreibzyklen auf Flash"=Chips +durchzuführen, um eine kleinere Blockgröße zu emulieren. Dies ist natürlich sehr unsicher, könnte aber +für Dateisysteme nützlich sein, auf die fast nie geschrieben wird. +Für die Verwendung mit DiskOnChip"=Geräten benötigen Sie diese Option nicht. Aktivieren Sie für diese +Geräte stattdessen die NFTL"=Unterstützung (CONFIG\_NFTL). + +\paragraph{Readonly block device access to MTD devices}$~$\\ +CONFIG\_MTD\_BLOCK\_RO [=n] \textbf{[~]}\\* +Damit können Sie schreibgeschützte Dateisysteme (wie cramfs) von einem MTD"=Gerät einhängen, ohne den +Overhead (und die Gefahr) des Caching"=Treibers.\\ +Sie benötigen diese Option nicht für die Verwendung mit DiskOnChip"=Geräten. Aktivieren Sie für diese +stattdessen die NFTL"=Unterstützung (CONFIG\_NFTL). + +\subsubsection{*** Note that in some cases UBI block is preferred. See MTD\_UBI\_BLOCK. ***} +\textit{(Beachten Sie, dass in einigen Fällen der UBI"=Block vorzuziehen ist. Siehe MTD\_UBI\_BLOCK.)} + +\subsubsection{FTL (Flash Translation Layer) support} +CONFIG\_FTL [=n] \textbf{[~]}\\* +Dies bietet Unterstützung für den ursprünglichen Flash Translation Layer, der Teil der PCMCIA"=Spezifikation ist. +Es verwendet eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät, um ein Blockgerät mit 512-Byte"=Sektoren zu +emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird.\\ +Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der +freien Welt, in der Softwarepatente nicht legal sind -- in den USA ist es nur erlaubt, diesen Code auf +PCMCIA"=Hardware zu verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den +Code nach Belieben zu kopieren, zu verändern und zu verbreiten. Verwenden Sie ihn einfach nicht. + +\subsubsection{NFTL (NAND Flash Translation Layer) support} +CONFIG\_NFTL [=n] \textbf{[~]}\\* +Dies bietet Unterstützung für den NAND Flash Translation Layer, der auf den DiskOnChip"=Geräten von M"=Systems +verwendet wird. Es verwendet eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät, um ein Blockgerät mit +512-Byte"=Sektoren zu emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird. +Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der +freien Welt, wo Softwarepatente nicht legal sind -- in den USA dürfen Sie diesen Code nur auf +DiskOnChip"=Hardware verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den +Code nach Belieben zu kopieren, zu verändern und zu verteilen. Verwenden Sie ihn einfach nicht. + +\subsubsection{INFTL (Inverse NAND Flash Translation Layer) support} +CONFIG\_INFTL [=n] \textbf{[~]}\\* +Dies bietet Unterstützung für den Inverse NAND Flash Translation Layer, der auf den neueren DiskOnChip"=Geräten +von M"=Systems verwendet wird. Dabei wird eine Art Pseudo"=Dateisystem auf einem Flash"=Gerät verwendet, +um ein Blockgerät mit 512-Byte"=Sektoren zu emulieren, auf das ein \glqq normales\grqq{} Dateisystem gelegt wird. +Es kann sein, dass die in diesem Code verwendeten Algorithmen patentiert sind, es sei denn, Sie leben in der +freien Welt, wo Softwarepatente nicht legal sind -- in den USA dürfen Sie diesen Code nur auf +DiskOnChip"=Hardware verwenden, obwohl es Ihnen unter den Bedingungen der GPL natürlich erlaubt ist, den Code +nach Belieben zu kopieren, zu verändern und zu verteilen. Verwenden Sie ihn einfach nicht. + +\subsubsection{Resident Flash Disk (Flash Translation Layer) support} +CONFIG\_RFD\_FTL [=n] \textbf{[~]}\\* +Dies bietet Unterstützung für die Flash"=Übersetzungsschicht, bekannt als Resident Flash Disk (RFD), +wie sie vom Embedded BIOS von General Software verwendet wird. Es gibt einen Hinweis unter:\\ +\url{http://www.gensw.com/pages/prod/bios/rfd.htm} + +\subsubsection{NAND SSFDC (SmartMedia) read only translation layer} +CONFIG\_SSFDC [=n] \textbf{[~]}\\* +Dies ermöglicht den Nur-Lese-Zugriff auf SmartMedia"=formatierten NAND"=Flash. +Sie können es mit dem FAT"=Dateisystem mounten. + +\subsubsection{SmartMedia/xD new translation layer} +CONFIG\_SM\_FTL [=n] \textbf{[~]}\\* +Dies ermöglicht EXPERIMENTAL R/W Unterstützung für SmartMedia/xD FTL (Flash translation layer). +Die Schreibunterstützung ist nur leicht getestet, daher wird dieser Treiber nicht für die Verwendung +mit wertvollen Daten empfohlen (wenn Sie wertvolle Daten haben, machen Sie auf jeden Fall Backups, +egal welche Software/Hardware Sie verwenden, denn man weiß nie, was Ihre Daten frisst...) +Wenn Sie nur R/O-Zugriff benötigen, können Sie einen älteren R/O-Treiber verwenden (CONFIG\_SSFDC) + +\subsubsection{Log panic/oops to an MTD buffer} +CONFIG\_MTD\_OOPS [=n] \textbf{[~]}\\* +Dadurch können Panic- und Oops-Meldungen in einem Ringspeicher in einer Flash"=Partition protokolliert +werden, wo sie zu einem späteren Zeitpunkt wieder gelesen werden können. + +\subsubsection{Log panic/oops to an MTD buffer based on pstore} +CONFIG\_MTD\_PSTORE [=m] \textbf{[M]}\\* +Dadurch können Panic- und Oops-Meldungen in einem Ringspeicher in einer Flash"=Partition protokolliert +werden, wo sie nach dem Mounten des pstore"=Dateisystems als Dateien zurückgelesen werden können. +Wenn Sie unsicher sind, sagen Sie N. + +\subsubsection{Swap on MTD device support} +CONFIG\_MTD\_SWAP [=n] \textbf{[~]}\\* +Bietet einen flüchtigen Block"=Gerätetreiber auf der mtd"=Partition, der für Swapping geeignet ist. +Die Zuordnung der geschriebenen Blöcke wird nicht gespeichert. +Der Treiber bietet Verschleißausgleich durch Speicherung des Löschzählers im OOB. + +\subsubsection{Retain master device when partitioned} +CONFIG\_MTD\_PARTITIONED\_MASTER [=y] \textbf{[Y]}\\* +Aus historischen Gründen ist standardmäßig entweder ein Master vorhanden oder mehrere Partitionen, +aber nicht beides. Die Befürchtung war, dass Daten, die in mehreren Partitionen aufgelistet sind, +gefährlich sind; SCSI tut dies jedoch, und es ist häufig für Anwendungen nützlich. Diese Konfigurationsoption +lässt den Master bestehen, auch wenn das Gerät partitioniert ist. Sie macht außerdem das übergeordnete Gerät +der Partition zum Master"=Gerät und nicht das, was hinter dem Master"=Gerät liegt. + +\subsubsection{RAM/ROM/Flash chip drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(RAM/ROM/Flash-Chip-Treiber)} + +\paragraph{Detect flash chips by Common Flash Interface (CFI) probe}$~$\\ +CONFIG\_MTD\_CFI [=n] \textbf{[~]}\\* +Die Common Flash Interface-Spezifikation wurde von Intel, AMD und anderen Flash"=Herstellern entwickelt und +bietet eine universelle Methode zum Testen der Fähigkeiten von Flash"=Geräten. Wenn Sie ein CFI"=kompatibles +Gerät unterstützen möchten, müssen Sie diese Option aktivieren. Weitere Informationen über CFI finden Sie unter +\url{https://www.amd.com/products/nvd/overview/cfi.html}. + +\paragraph{Detect non-CFI AMD/JEDEC-compatible flash chips}$~$\\ +CONFIG\_MTD\_JEDECPROBE [=n] \textbf{[~]}\\* +Diese Option ermöglicht das Sondieren von Flash-Chips im JEDEC-Stil, die nicht mit dem Common Flash Interface +kompatibel sind, verwendet aber für alle identifizierten Chips, die tatsächlich in allen Bereichen außer der +Sondierungsmethode kompatibel sind, die gemeinsamen CFI"=konformen Flash"=Treiber. Dies deckt die meisten +AMD/Fujitsu"=kompatiblen Chips und auch nicht"=CFI"=Intel"=Chips ab. + +\paragraph{Support for RAM chips in bus mapping}$~$\\ +CONFIG\_MTD\_RAM [=n] \textbf{[~]}\\* +Diese Option ermöglicht die grundlegende Unterstützung von RAM"=Chips, auf die über einen +Bus"=Mapping"=Treiber zugegriffen wird. + +\paragraph{Support for ROM chips in bus mapping}$~$\\ +CONFIG\_MTD\_ROM [=m] \textbf{[M]}\\* +Diese Option ermöglicht die grundlegende Unterstützung von ROM"=Chips, auf die über einen +Bus"=Mapping"=Treiber zugegriffen wird. + +\paragraph{Support for absent chips in bus mapping}$~$\\ +CONFIG\_MTD\_ABSENT [=n] \textbf{[~]}\\* +Diese Option aktiviert die Unterstützung für einen Dummy"=Treiber, der zur Zuweisung von +Platzhalter"=MTD"=Geräten auf Systemen mit gesockelten oder austauschbaren Medien verwendet wird. +Die Verwendung dieses Treibers als Fallback"=Chip"=Sonde bewahrt die erwartete +Registrierungsreihenfolge der MTD"=Geräteknoten auf dem System unabhängig vom Vorhandensein von +Medien. Geräteknoten, die mit diesem Treiber erstellt werden, geben beim Zugriff -ENODEV zurück. + +\subsubsection{Mapping drivers for chip access \texorpdfstring{$\rightarrow$}{->}} +\textit{(Abbildung von Treibern für den Chipzugriff)} + +\paragraph{Support non-linear mappings of flash chips}$~$\\ +CONFIG\_MTD\_COMPLEX\_MAPPINGS [=n] \textbf{[~]}\\* +Dies führt dazu, dass die Chiptreiber komplizierte Paged"=Mappings von Flash"=Chips ermöglichen. + +\paragraph{Flash device in physical memory map}$~$\\ +CONFIG\_MTD\_PHYSMAP [=n] \textbf{[~]}\\* +Damit steht ein \glqq Mapping\grqq{}-Treiber zur Verfügung, der es dem NOR"=Flash- und +ROM"=Treibercode ermöglicht, mit Chips zu kommunizieren, die physisch im Speicher der CPU abgebildet sind. +Sie müssen die physikalische Adresse und Größe der Flash"=Chips auf Ihrer speziellen Karte sowie die +Busbreite konfigurieren, entweder statisch mit Konfigurationsoptionen oder zur Laufzeit. +Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{physmap} heißen. + +\paragraph{NOR flash on Intel Vermilion Range Expansion Bus CS0}$~$\\ +CONFIG\_MTD\_INTEL\_VR\_NOR [=n] \textbf{[~]}\\* +Kartentreiber für eine NOR-Flash-Bank, die sich auf dem Erweiterungsbus des Intel Vermilion Range Chipsatzes befindet. + +\paragraph{Map driver for platform device RAM (mtd-ram)}$~$\\ +CONFIG\_MTD\_PLATRAM [=n] \textbf{[~]}\\* +Kartentreiber für RAM-Bereiche, die über das Gerätesystem der Plattform beschrieben werden. +Mit dieser Auswahl wird automatisch der \texttt{map\_ram}-Treiber ausgewählt. + +\subsubsection{Self-contained MTD device drivers \texorpdfstring{$\rightarrow$}{->}} +\textit{(Eigenständige MTD-Gerätetreiber)} + +\paragraph{Ramix PMC551 PCI Mezzanine RAM card support)}$~$\\ +CONFIG\_MTD\_PMC551 [=n] \textbf{[~]}\\* +Dies bietet einen MTD"=Gerätetreiber für die Ramix PMC551 RAM PCI"=Karte von Ramix Inc. +\url{http://www.ramix.com/products/memory/pmc551.html}. +Diese Geräte gibt es in Speicherkonfigurationen von $\qtyrange{32}{1000}{\mebi\byte}$. +Wenn Sie ein solches Gerät haben, sollten Sie dies aktivieren. +Wenn dieser Treiber als Modul kompiliert wird, erhalten Sie die Möglichkeit, die Größe des Blendenfensters, +das in den Speicher des Geräts zeigt, zu wählen. Das bedeutet, dass der Kernel bei einer 1G"=Karte normalerweise +eine 1G"=Speicherabbildung als Ansicht des Geräts verwenden wird. +Als Modul können Sie ein 1M"=Fenster in den Speicher wählen, und der Treiber wird das Fenster um den Speicher +des PMC551 \glqq herumschieben\grqq{}. Dies war besonders bei den 2.2"=Kerneln auf PPC"=Architekturen nützlich, +da der Kernel nur begrenzten Speicherplatz zur Verfügung hatte. + +\paragraph{Support for AT45xxx DataFlash}$~$\\ +CONFIG\_MTD\_DATAFLASH [=n] \textbf{[~]}\\* +Dies ermöglicht den Zugriff auf AT45xxx DataFlash"=Chips über SPI. Manchmal sind DataFlash"=Chips in Karten +im MMC"=Format verpackt; zu diesem Zeitpunkt kann der MMC"=Stack diese nicht verarbeiten. + +\paragraph{Microchip 23K256 SRAM}$~$\\ +CONFIG\_MTD\_MCHP23K256 [=n] \textbf{[~]}\\* +Dies ermöglicht den Zugriff auf Microchip 23K256 SRAM"=Chips über SPI. +Richten Sie Ihre spi"=Geräte mit den richtigen plattenspezifischen Plattformdaten oder einer +Gerätebaumbeschreibung ein, wenn Sie eine Gerätepartitionierung angeben möchten. + +\paragraph{Microchip 48L640 EERAM}$~$\\ +CONFIG\_MTD\_MCHP48L640 [=n] \textbf{[~]}\\* +Dies ermöglicht den Zugriff auf Microchip 48L640 EERAM-Chips über SPI. + +\paragraph{Support SST25L (non JEDEC) SPI Flash chips}$~$\\ +CONFIG\_MTD\_SST25L [=n] \textbf{[~]}\\* +Dies ermöglicht den Zugriff auf die nicht-JEDEC SST25L SPI-Flash-Chips, die für die Programm- und +Datenspeicherung verwendet werden. +Richten Sie Ihre spi-Geräte mit den richtigen plattformspezifischen Daten ein, wenn Sie eine +Gerätepartitionierung festlegen möchten. + +\paragraph{Uncached system RAM}$~$\\ +CONFIG\_MTD\_SLRAM [=n] \textbf{[~]}\\* +Wenn Ihre CPU nicht den gesamten physischen Speicher Ihres Rechners zwischenspeichern kann, können +Sie ihn dennoch als Speicher oder Swap verwenden, indem Sie diesen Treiber verwenden, um ihn dem +System als Memory Technology Device vorzustellen. + +\paragraph{Physical system RAM}$~$\\ +CONFIG\_MTD\_PHRAM [=m] \textbf{[M]}\\* +Dies ist eine Neuimplementierung des obigen \texttt{slram}-Treibers. +Verwenden Sie diesen Treiber, um auf physischen Speicher zuzugreifen, auf den der Kernel selbst +keinen Zugriff hat, also auf Speicher jenseits der \texttt{mem=xxx}-Grenze, nvram, Speicher auf +der Grafikkarte usw... + +\paragraph{Test driver using RAM}$~$\\ +CONFIG\_MTD\_MTDRAM [=m] \textbf{[M]}\\* +Dies aktiviert einen Test"=MTD"=Gerätetreiber, der vmalloc() zur Bereitstellung von Speicher verwendet. +Sie wollen wahrscheinlich N sagen, es sei denn, Sie testen etwas. + +\paragraph{MTDRAM device size in KiB}$~$\\ +CONFIG\_MTDRAM\_TOTAL\_SIZE [=4096] \textbf{[4096]}\\* +Damit können Sie die Gesamtgröße des vom MTDRAM"=Treiber emulierten MTD"=Geräts konfigurieren. +Wenn der MTDRAM"=Treiber als Modul gebaut wurde, ist es auch möglich, dies als Parameter beim +Laden des Moduls anzugeben. + +\paragraph{MTDRAM erase block size in KiB}$~$\\ +CONFIG\_MTDRAM\_ERASE\_SIZE [=128] \textbf{[128]}\\* +Damit können Sie die Größe der Löschblöcke in dem vom MTDRAM"=Treiber emulierten Gerät konfigurieren. +Wenn der MTDRAM"=Treiber als Modul gebaut ist, ist es auch möglich, dies als Parameter beim +Laden des Moduls anzugeben. + +\paragraph{MTD using block device}$~$\\ +CONFIG\_MTD\_BLOCK2MTD [=m] \textbf{[M]}\\* +Mit diesem Treiber kann ein Blockgerät als MTD erscheinen. Er wird im Allgemeinen in den folgenden +Fällen verwendet:\\ +Wenn Sie Compact Flash als MTD verwenden, erscheinen diese dem System normalerweise als ATA"=Laufwerk. +Testen von MTD"=Benutzern (z.~B. JFFS2) auf großen Medien und Medien, die während eines Schreibvorgangs +entfernt werden könnten (Verwendung des Diskettenlaufwerks). + +\paragraph{*** Disk-On-Chip Device Drivers ***}$~$\\ +\textit{Disk-On-Chip-Gerätetreiber} + +\paragraph{M-Systems Disk-On-Chip G3}$~$\\ +CONFIG\_MTD\_DOCG3 [=n] \textbf{[~]}\\* +Dies ist ein MTD"=Gerätetreiber für die M"=Systems DiskOnChip G3"=Geräte. +Der Treiber bietet Zugriff auf G3 DiskOnChip, vertrieben von M"=Systems und jetzt Sandisk. +Die Unterstützung ist sehr experimentell und bietet keinen Zugriff auf Schreiboperationen. + +\subsubsection{NAND \texorpdfstring{$\rightarrow$}{->}} +\textit{(Not AND)} + +\paragraph{OneNAND Device Support ---}$~$\\ +CONFIG\_MTD\_ONENAND [=n] \textbf{[~]}\\* +Dies ermöglicht die Unterstützung des Zugriffs auf alle Arten von OneNAND"=Flash"=Geräten. +%% +%% \texorpdfstring{$\rightarrow$}{->} +%% \textit{Für diese Option gibt es keine Hilfe.} \ No newline at end of file