UPD general setup docu

This commit is contained in:
2025-12-24 11:35:02 +01:00
parent c8a4cf2c66
commit 067771bd71
3 changed files with 91 additions and 18 deletions

Binary file not shown.

View File

@@ -9,9 +9,9 @@
% pacman -S hyphen hyphen-de
% pacman -S texlive-mathscience
%\includeonly{
%linux_configuration_01_general_setup,
%linux_configuration_02_64-bit_kernel,
\includeonly{
linux_configuration_01_general_setup,
linux_configuration_02_64-bit_kernel,
%linux_configuration_03_processor_type_and_features,
%linux_configuration_04_mitigations_for_cpu_vulnerabilities,
%linux_configuration_05_power_management_and_acpi_options,
@@ -28,7 +28,7 @@
%linux_configuration_16_file_systems,
%linux_configuration_17_security_options,
%linux_configuration_18_cryptographic_API
%}%
}
\documentclass[10pt,a4paper]{article}
%\documentclass[12pt,a4paper]{report}

View File

@@ -1,5 +1,5 @@
% linux_configuration_01_general_setup.tex
% since Linux 6.16
% since Linux 6.19
\section{General setup \texorpdfstring{$\rightarrow$}{->}}
%1.1
@@ -320,7 +320,7 @@ Die wichtigste Voraussetzung für das Funktionieren von Full-Dynticks ist die Un
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.
RCU-Userspace-erweiterter Ruhezustand und taktlose CPU-Zeitabrechnung.
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.
@@ -362,6 +362,12 @@ Bereich (Range): 50 -- 1000
The default is based on a half-second clocksource watchdog interval and NTP's maximum frequency drift of 500 parts per million.
If the clocksource is good enough for NTP, it is good enough for the clocksource watchdog!}
\subsubsection{Enable auxiliary POSIX clocks}
CONFIG\_POSIX\_AUX\_CLOCKS [=n] \textbf{[N]}\\
Hilfs-POSIX-Uhren sind Uhren, die unabhängig vom Kernzeitgeber gesteuert werden können, der die MONOTONIC-, REALTIME-, BOOTTIME- und TAI-Uhren steuert.
Sie sind nützlich, um beispielsweise lockless time accessors für unabhängige PTP-Uhren und andere Uhrdomänen bereitzustellen, die nicht mit dem TAI/NTP-Zeitbegriff korrelieren.
\english{Auxiliary POSIX clocks are clocks which can be steered independently of the core timekeeper, which controls the MONOTONIC, REALTIME, BOOTTIME and TAI clocks. They are useful to provide e.g. lockless time accessors to independent PTP clocks and other clock domains, which are not correlated to the TAI/NTP notion of time.}
%1.16 BPF subsystem
\subsection{BPF subsystem \texorpdfstring{$\rightarrow$}{->}}
Berkeley Packet Filter, Firewall-Filtertechnik im Kernel
@@ -408,10 +414,17 @@ Unprivileged BPF could be used to exploit certain potential speculative executio
If you are unsure how to answer this question, answer Y.}
\subsubsection{Preload BPF file system with kernel specific program and map iterators \texorpdfstring{$\rightarrow$}{->}}
BPF\_PRELOAD [=n] \textbf{[N]}\\
CONFIG\_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.
\english{This builds kernel module with several embedded BPF programs that are pinned into BPF FS mount point as human readable files that are useful in debugging and introspection of BPF programs and maps.}
\subsubsection{Enable BPF LSM Instrumentation}
CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\
Ermöglicht die Instrumentierung der Sicherheits-Hooks mit BPF-Programmen zur Implementierung dynamischer MAC- und Audit-Richtlinien.
Wenn Sie sich bei der Beantwortung dieser Frage unsicher sind, antworten Sie mit N.
\english{Enables instrumentation of the security hooks with BPF programs for implementing dynamic MAC and Audit Policies.
If you are unsure how to answer this question, answer N.}
\paragraph{bpf\_preload kernel module\\}$~$\\
\textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\
CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[M]}\\*
@@ -478,6 +491,22 @@ Wählen Sie dies, wenn Sie einen Kernel für Systeme erstellen, die Echtzeitgara
This makes the kernel, except for very low level and critical code paths (entry code, scheduler, low level interrupt handling) fully preemptible and brings most execution contexts under scheduler control.\\
Select this if you are building a kernel for systems which require real-time guarantees.}
\subsubsection{Enforce softirq synchronisation on PREEMPT\_RT {\tiny seit 6.18}}
CONFIG\_PREEMPT\_RT\_NEEDS\_BH\_LOCK [=n] \textbf{[N]}\\
Erzwingt die Synchronisation über den Softirqs-Kontext hinweg.
Bei PREEMPT\_RT ist der Softirq präemptiv.
Dadurch wird dieselbe BLK-Semantik pro CPU erzwungen, die auch in Nicht-PREEMPT\_RT-Builds vorhanden ist.
Dies sollte nicht erforderlich sein, da Sperren pro CPU hinzugefügt wurden, um die BKL pro CPU zu vermeiden.
Dieser Schalter bietet das alte Verhalten zu Testzwecken.
Wählen Sie diese Option, wenn Sie einen Fehler bei vorrangigen Softirqs vermuten und das alte synchronisierte Verhalten testen möchten.
\english{Enforce synchronisation across the softirqs context.
On PREEMPT\_RT the softirq is preemptible.
This enforces the same per-CPU BLK semantic non-PREEMPT\_RT builds have.
This should not be needed because per-CPU locks were added to avoid the per-CPU BKL.\\
This switch provides the old behaviour for testing reasons.
Select this if you suspect an error with preemptible softirq and want test the old synchronized behaviour.}
%1.19 Preemption behaviour defined on boot
\subsection{Preemtion behaviour defined on boot}
CONFIG\_PREEMPT\_DYNAMIC \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
@@ -549,6 +578,7 @@ Dies ist die grundlegende tick-basierte Rechenzeitabrechnung, die Statistiken ü
Wenn Sie unsicher sind, sagen Sie Y.
\english{This is the basic tick based cputime accounting that maintains statistics about user, system and idle time spent on per jiffies granularity.\\
If unsure, say Y.}
\note{Diese Auswahl erscheint nur dann, wenn CONFIG\_S390 sowie CONFIG\_NO\_HZ\_FULL abgewählt sind (=N).}
\paragraph{Full dynticks CPU time accounting} $~$\\
CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN \colorbox{yellow!0}{[=y] \textbf{[Y]}}\\*
@@ -1898,7 +1928,7 @@ Diese Option macht die Überprüfung der Kernelsignatur für den Syscall \texttt
\english{This option makes kernel signature verification mandatory for the kexec\_file\_load() syscall.}
\subparagraph{Enable bzImage signature verification support}$~$\\
CONFIG\_KEXEC\_BZIMAGE\_VERIFY\_SIG [=n] \textbf{[N]}\\
CONFIG\_KEXEC\_BZIMAGE\_VERIFY\_SIG [=y] \textbf{[Y]}\\
Aktivierung der Unterstützung von bzImage für die Signaturprüfung.
\english{Enable bzImage signature verification support.}
@@ -1907,14 +1937,20 @@ CONFIG\_KEXEC\_JUMP [=y] \textbf{[Y]}\\
Sprung zwischen Original-Kernel und \texttt{kexec}-Kernel und Aufruf von Code im physikalischen Adressmodus über KEXEC
\english{Jump between original kernel and kexeced kernel and invoke code in physical address mode via KEXEC}
\subsubsection{kexec handover}
CONFIG\_KEXEC\_HANDOVER [=Y] \textbf{[Y]}\\
Ermöglichen Sie kexec die Übergabe des Status zwischen Kerneln, indem Sie zusätzliche Metadaten generieren und an den Zielkernel übergeben.
Dies ist nützlich, um Daten oder den Status über kexec hinweg aufrechtzuerhalten.
Damit dies funktioniert, muss diese Option sowohl im Quell- als auch im Zielkernel aktiviert sein.
\english{Allow kexec to hand over state across kernels by generating and passing additional metadata to the target kernel.
This is useful to keep data or state alive across the kexec.
For this to work, both source and target kernels need to have this option enabled.}
\subsubsection{kernel crash dumps}
CONFIG\_CRASH\_DUMP [=y] \textbf{[Y]}\\
Erstellen Sie nach dem Start durch kexec einen Absturz-Dump.
Dies sollte normalerweise nur in speziellen Absturz-Dump-Kerneln eingestellt werden, die mit kexec-tools in den Hauptkernel in einen speziell reservierten Bereich geladen und später nach einem Absturz von kdump/kexec ausgeführt werden.
Der Absturz-Dump-Kernel muss mit PHYSICAL\_START auf eine Speicheradresse kompiliert werden, die nicht vom Hauptkernel oder BIOS verwendet wird, oder er muss als verschiebbares Image (CONFIG\_RELOCATABLE=y) erstellt werden.
Weitere Details finden Sie unter Documentation/admin-guide/kdump/kdump.rst\\
Für s390 aktiviert diese Option auch zfcpdump.\\
Siehe auch $<$file:Documentation/arch/s390/zfcpdump.rst$>$
\english{Generate crash dump after being started by kexec.
This should be normally only set in special crash dump kernels which are loaded in the main kernel with kexec-tools into a specially reserved region and then later executed after a crash by kdump/kexec.
The crash dump kernel must be compiled to a memory address not used by the main kernel or BIOS using PHYSICAL\_START, or it must be built as a relocatable image (CONFIG\_RELOCATABLE=y).
For more details see Documentation/admin-guide/kdump/kdump.rst\\
For s390, this option also enables zfcpdump.\\
See also $<$file:Documentation/arch/s390/zfcpdump.rst$>$}
\subsubsection{kexec crash dumps}
CONFIG\_KEXEC\_DUMP [=y] \textbf{[Y]}\\
@@ -1963,3 +1999,40 @@ This value is combined with NR\_CPUS\_DEFAULT and multiplied by sizeof(Elf64\_Ph
The value 8192, for example, covers a (sparsely populated) 1TiB system consisting of 128MiB memblocks, while resulting in an elfcorehdr memory buffer/segment size under 1MiB.
This represents a sane choice to accommodate both baremetal and virtual machine configurations.\\
For the kexec\_load() syscall path, CRASH\_MAX\_MEMORY\_RANGES is part of the computation behind the value provided through the /sys/kernel/crash\_elfcorehdr\_size attribute.}
%1.54
\subsection{Live Update and Kexec Handover \texorpdfstring{$\rightarrow$}{->} \tiny{seit 6.19}}
\textit{Live-Update und Kexec-Übergabe}
\subsubsection{kexec handover \tiny{seit 6.16}}
CONFIG\_KEXEC\_HANDOVER [=y] \textbf{[Y]}\\
Ermöglichen Sie kexec die Übergabe des Status zwischen Kerneln, indem Sie zusätzliche Metadaten generieren und an den Zielkernel übergeben.
Dies ist nützlich, um Daten oder den Status über kexec hinweg aufrechtzuerhalten.
Damit dies funktioniert, muss diese Option sowohl im Quell- als auch im Zielkernel aktiviert sein.
\english{Allow kexec to hand over state across kernels by generating and passing additional metadata to the target kernel.
This is useful to keep data or state alive across the kexec.
For this to work, both source and target kernels need to have this option enabled.}
\paragraph{Enable Kexec Handover debug checks \tiny{seit 6.18}}$~$\\
CONFIG\_KEXEC\_HANDOVER\_DEBUG [=n] \textbf{[N]}\\
Diese Option aktiviert zusätzliche Plausibilitätsprüfungen für das Kexec-Handover-Subsystem.
Da die KHO-Leistung in Live-Update-Szenarien von entscheidender Bedeutung ist und der zusätzliche Code möglicherweise zu einem Mehraufwand führt, ist diese Option nur optional aktiviert.
\english{This option enables extra sanity checks for the Kexec Handover subsystem.
Since, KHO performance is crucial in live update scenarios and the extra code might be adding overhead it is only optionally enabled.}
\paragraph{kexec handover debugfs interface \tiny{seit 6.19}}$~$\\
CONFIG\_KEXEC\_HANDOVER\_DEBUGFS [=y] \textbf{[Y]}\\
Ermöglicht die Steuerung der Kexec-Übergabe des Device Tree über die Debugfs-Schnittstelle, d.\,h. die Fertigstellung des Status oder den Abbruch der Fertigstellung.
Ermöglicht außerdem die Überprüfung der KHO-Fdt-Bäume mit den Debugfs-Binärblobs.
\english{Allow to control kexec handover device tree via debugfs interface, i.e. finalize the state or aborting the finalization.
Also, enables inspecting the KHO fdt trees with the debugfs binary blobs.}
\paragraph{Enable kexec handover by default \tiny{seit 6.19}}$~$\\
CONFIG\_KEXEC\_HANDOVER\_ENABLE\_DEFAULT [=n] \textbf{[N]}\\
Ermöglicht standardmäßig die Kexec-Übergabe.
Dadurch muss \glqq kho=on\grqq{} nicht explizit in der Kernel-Befehlszeile übergeben werden.\\
Dies ist nützlich für Systeme, bei denen KHO eine Voraussetzung für andere Funktionen wie Live Update ist, da so sichergestellt wird, dass der Mechanismus immer aktiv ist.\\
Das Standardverhalten kann beim Booten weiterhin durch Übergeben von \glqq kho=off\grqq{} überschrieben werden.
\english{Enable Kexec Handover by default. This avoids the need to explicitly pass 'kho=on' on the kernel command line.\\
This is useful for systems where KHO is a prerequisite for other features, such as Live Update, ensuring the mechanism is always active.\\
The default behavior can still be overridden at boot time by passing 'kho=off'.}