From f3241b8e83062a99bd41e959ce4fe70747fb5879 Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Tue, 15 Apr 2025 02:42:55 +0200 Subject: [PATCH] ADD english texts to section 01/03 --- documentation/linux_configuration.pdf | 4 +- .../linux_configuration_01_general_setup.tex | 78 ++++++++++ ...uration_03_processor_type_and_features.tex | 141 ++++++++++++++++-- 3 files changed, 206 insertions(+), 17 deletions(-) diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index d82fe81..0e1785a 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:7da7c3c9954522e3d3732f1376db4fcf7e0becf34fc3399deb1c822afa11c711 -size 3248600 +oid sha256:ad4fcf311c2fe33ce4e9e89e2b518464dc293c456ed8780e24a7882aa093bf46 +size 3268151 diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex index 114c638..043aac6 100644 --- a/documentation/linux_configuration_01_general_setup.tex +++ b/documentation/linux_configuration_01_general_setup.tex @@ -1926,6 +1926,10 @@ Normalerweise wird die bootconfig-Datei mit dem initrd-Image geladen. Wenn das S 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. +\english{Embed a bootconfig file given by BOOT\_CONFIG\_EMBED\_FILE in the kernel. +Usually, the bootconfig file is loaded with the initrd image. +But if the system doesn't support initrd, this option will help you by embedding a bootconfig file while building the kernel.\\ +If unsure, say N} %1.40 Preserve cpio archive mtimes in initramfs \subsection{Preserve cpio archive mtimes in initramfs} @@ -1935,6 +1939,9 @@ Wenn diese Option aktiviert ist, übernehmen die extrahierten cpio-Einträge die wobei die mtime-Einstellung des Verzeichnisses aufgeschoben wird, bis nach der Erstellung aller untergeordneten Einträge.\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{Each entry in an initramfs cpio archive carries an mtime value. +When enabled, extracted cpio items take this mtime, with directory mtime setting deferred until after creation of any child entries.\\ +If unsure, say Y.} %1.41 Compiler optimization level \subsection{Compiler optimization level \texorpdfstring{$\rightarrow$}{->}} @@ -1945,11 +1952,14 @@ 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. +\english{This is the default optimization level for the kernel, building with the ``-O2'' compiler flag for best performance and most +helpful compile-time warnings.} \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. +\english{Choosing this option will pass ``-Os'' to your compiler resulting in a smaller kernel.} %1.42 Configure standard kernel features (expert users) \subsection{Configure standard kernel features (expert users)} @@ -1958,6 +1968,9 @@ 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. +\english{This option allows certain base kernel options and settings to be disabled or tweaked. +This is for specialized environments which can tolerate a ``non-standard'' kernel. +Only use this if you really know what you are doing.} %1.42.1 Enable 16-bit UID system calls \subsubsection{Enable 16-bit UID system calls} @@ -2266,6 +2279,11 @@ 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. +\english{Test the basic functions and performance of some interfaces, such as kallsyms\_lookup\_name. +It also calculates the compression rate of the kallsyms compression algorithm for the current symbol set.\\ +Start self-test automatically after system startup. +Suggest executing ``dmesg | grep kallsyms\_selftest'' to collect test results. +``finish'' is displayed in the last line, indicating that the test is complete.} \subsubsection{Include all symbols in kallsyms} CONFIG\_KALLSYMS\_ALL \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ @@ -2280,6 +2298,14 @@ Diese Option stellt sicher, dass alle Symbole in das Kernel-Image geladen werden kann sie \qty{300}{\kibi\byte} oder etwas Ähnliches betragen).\\ Sagen Sie N, es sei denn, Sie brauchen wirklich alle Symbole, oder Kernel-Live-Patching. +\english{Normally kallsyms only contains the symbols of functions for nicer OOPS messages and backtraces +(i.e., symbols from the text and inittext sections). +This is sufficient for most cases. +And only if you want to enable kernel live patching, or other less common use cases (e.g., when a debugger is used) all symbols are required +(i.e., names of variables from the data sections, etc).\\ +This option makes sure that all symbols are loaded into the kernel image (i.e., symbols from all sections) in cost of increased kernel +size (depending on the kernel configuration, it may be 300KiB or something like this).\\ +Say N unless you really need all symbols, or kernel live patching.} %1.50 \subsection{Kernel Performance Events And Counters \texorpdfstring{$\rightarrow$}{->}} @@ -2306,18 +2332,33 @@ 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. +\english{Enable kernel support for various performance events provided by software and hardware.\\ +Software events are supported either built-in or via the use of generic tracepoints.\\ +Most modern CPUs support performance events via performance counter registers. +These registers count the number of certain types of hw events: such as instructions executed, cachemisses suffered, or branches mis-predicted -- +without slowing down the kernel or applications. +These registers can also trigger interrupts when a threshold number of events have passed -- and +can thus be used to profile the code that runs on that CPU.\\ +The Linux Performance Event subsystem provides an abstraction of these software and hardware event capabilities, available via a +system call and used by the ``perf'' utility in tools/perf/. +It provides per task and per CPU counters, and it provides event capabilities on top of those.\\ +Say Y if unsure.} \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. +\english{Use vmalloc memory to back perf mmap() buffers.\\ +Mostly useful for debugging the vmalloc code on platforms that don't require it.\\ +Say N if unsure.} %1.51 \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. +\english{Say Y here to enable the extended profiling support mechanisms used by profilers.} %1.52 \subsection{Rust support} @@ -2349,6 +2390,13 @@ ordnungsgemäß heruntergefahren wird, seien Sie also nicht überrascht, wenn di 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. +\english{kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. +It is like a reboot but it is independent of the system firmware. +And like a reboot you can start any kernel with it, not just Linux.\\ +The name comes from the similarity to the exec system call.\\ +It is an ongoing process to be certain the hardware in a machine is properly shutdown, so do not be surprised if this code does not +initially work for you. +As of this writing the exact hardware interface is strongly in flux, so no good recommendation can be made.} \subsubsection{Enable kexec file based system call} CONFIG\_KEXEC\_FILE [=y] \textbf{[Y]}\\ @@ -2356,6 +2404,9 @@ CONFIG\_KEXEC\_FILE [=y] \textbf{[Y]}\\ 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. +\english{This is new version of kexec system call. +This system call is file based and takes file descriptors as system call argument for kernel and initramfs as opposed to list of segments as +accepted by kexec system call.} \paragraph{Verify kernel signature during kexec\_file\_load() syscall}$~$\\ CONFIG\_KEXEC\_SIG [=y] \textbf{[Y]}\\ @@ -2365,20 +2416,27 @@ Sie aktivieren auch KEXEC\_SIG\_FORCE, aber wenn es eine Signatur gibt, die übe 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. +\english{This option makes the kexec\_file\_load() syscall check for a valid signature of the kernel image. +The image can still be loaded without a valid signature unless you also enable KEXEC\_SIG\_FORCE, though if +there's a signature that we can check, then it must be valid.\\ +In addition to this option, you need to enable signature verification for the corresponding kernel image type being loaded in order for this to work.} \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. +\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]}\\ Aktivierung der Unterstützung von bzImage für die Signaturprüfung. +\english{Enable bzImage signature verification support.} \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 +\english{Jump between original kernel and kexeced kernel and invoke code in physical address mode via KEXEC} \subsubsection{kexec crash dumps} CONFIG\_KEXEC\_DUMP [=y] \textbf{[Y]}\\ @@ -2392,6 +2450,14 @@ 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$>$ +\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$>$} \paragraph{Update the crash elfcorehdr on system configuration changes}$~$\\ CONFIG\_CRASH\_HOTPLUG [=y] \textbf{[Y]}\\ @@ -2400,6 +2466,10 @@ Speicherbereiche enthält, die bei einem Absturz gelöscht werden sollen) als Re 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. +\english{Enable direct update to the crash elfcorehdr (which contains the list of CPUs and memory regions to be dumped upon a crash) +in response to hot plug/unplug or online/offline of CPUs or memory. +This is a much more advanced approach than userspace attempting that.\\ +If unsure, say Y.} \subparagraph{Specify the maximum number of memory regions for the elfcorehdr}$~$\\ CONFIG\_CRASH\_MAX\_MEMORY\_RANGES [=\num{8192}] \textbf{[8192]}\\ @@ -2415,3 +2485,11 @@ 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. +\english{For the kexec\_file\_load() syscall path, specify the maximum number of memory regions that the elfcorehdr buffer / segment can accommodate. +These regions are obtained via walk\_system\_ram\_res(); eg. the `System RAM' entries in /proc/iomem. +This value is combined with NR\_CPUS\_DEFAULT and multiplied by sizeof(Elf64\_Phdr) to determine the final elfcorehdr memory buffer/segment size. +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.} diff --git a/documentation/linux_configuration_03_processor_type_and_features.tex b/documentation/linux_configuration_03_processor_type_and_features.tex index 40ad02b..764125a 100644 --- a/documentation/linux_configuration_03_processor_type_and_features.tex +++ b/documentation/linux_configuration_03_processor_type_and_features.tex @@ -58,12 +58,12 @@ gesperrt und können nicht auf die alten APIC-Modi zurückgreifen, wenn SGX oder sind. Ohne Aktivierung dieser Option booten sie mit stark eingeschränkter Funktionalität.\\ \sout{Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N.} \english{This enables x2apic support on CPUs that have this feature.\\ - This allows 32-bit apic IDs (so it can support very large systems), - and accesses the local apic via MSRs not via mmio.\\ - Some Intel systems circa 2022 and later are locked into x2APIC mode and can not fall - back to the legacy APIC modes if SGX or TDX are enabled in the BIOS. - They will boot with very reduced functionality without enabling this option.\\ - If you don't know what to do here, say N.} +This allows 32-bit apic IDs (so it can support very large systems), +and accesses the local apic via MSRs not via mmio.\\ +Some Intel systems circa 2022 and later are locked into x2APIC mode and can not fall +back to the legacy APIC modes if SGX or TDX are enabled in the BIOS. +They will boot with very reduced functionality without enabling this option.\\ +If you don't know what to do here, say N.} \note{Sollte unterstützt werden, kann innerhalb von menuconfig gar nicht deaktiviert werden.} %3.3 Enable MSI and MSI-X delivery by posted interrupts @@ -163,8 +163,7 @@ depending on the value of CONFIG\_64BIT.\\[.5em] \item ScaleMP vSMP \item SGI Ultraviolet \end{itemize} -If you have one of these systems, or if you want to build a generic distribution kernel, say Y here -- otherwise say N. -} +If you have one of these systems, or if you want to build a generic distribution kernel, say Y here -- otherwise say N.} %3.8 Intel Low Power Subsystem Support \subsection{Intel Low Power Subsystem Support} @@ -276,6 +275,7 @@ However, when run without a hypervisor the kernel is theoretically slower and sl 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. +\english{Enable to debug paravirt\_ops internals. Specifically, BUG if a paravirt\_op is missing when it is called.} \subsubsection{Paravirtualization layer for spinlocks} CONFIG\_PARAVIRT\_SPINLOCKS [=y] \textbf{[Y]}\\ @@ -285,15 +285,22 @@ 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. +\english{Paravirtualized spinlocks allow a pvops backend to replace the spinlock implementation with something virtualization-friendly +(for example, block the virtual CPU rather than spinning).\\ +It has a minimal impact on native kernels and gives a nice performance benefit on paravirtualized KVM / Xen kernels.\\ +If you are unsure how to answer this question, answer 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. +\english{This is the Linux Xen port. +Enabling this will allow the kernel to boot in a paravirtualized environment under the Xen hypervisor.} \paragraph{Xen PV guest support}$~$\\ CONFIG\_XEN\_PV [=y] \textbf{[Y]}\\ Der Betrieb als Xen PV-Gast wird unterstützt. +\english{Support running as a Xen PV guest.} \subparagraph{Limit Xen pv-domain memory to 512GB}$~$\\ CONFIG\_XEN\_512GB [=y] \textbf{[Y]}\\ @@ -303,28 +310,39 @@ mit mehr als 512~GB~RAM. Diese Option steuert die Standardeinstellung des Kernel 512~GB oder mehr zu verwenden. Es ist jederzeit möglich, die Standardeinstellung durch Angabe des Boot-Parameters \texttt{xen\_512gb\_limit} zu ändern. +\english{Limit paravirtualized user domains to 512GB of RAM.\\ +The Xen tools and crash dump analysis tools might not support pv-domains with more than 512 GB of RAM. +This option controls the default setting of the kernel to use only up to 512 GB or more. +It is always possible to change the default via specifying the boot parameter ``xen\_512gb\_limit''.} \paragraph{Xen PVHVM guest support}$~$\\ CONFIG\_XEN\_PVHVM\_GUEST [=y] \textbf{[Y]}\\ Der Betrieb als Xen PVHVM-Gast wird unterstützt. +\english{Support running as a Xen PVHVM guest.} \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. +Aktivieren Sie die Statistikausgabe und verschiedene Tuning-Optionen in debugfs. +Das Aktivieren dieser Option kann zu einem erheblichen Leistungs-Overhead führen. +\english{Enable statistics output and various tuning options in debugfs. Enabling this option may incur a significant performance overhead.} \paragraph{Xen PVH guest support}$~$\\ CONFIG\_XEN\_PVH [=y] \textbf{[Y]}\\ Der Betrieb als Xen PVH-Gast wird unterstützt. +\english{Support for running as a Xen PVH guest.} \subsubsection{Xen Dom0 support} CONFIG\_XEN\_DOM0 [=y] \textbf{[Y]}\\ Der Betrieb als Xen Dom0-Gast wird unterstützt. +\english{Support running as a Xen Dom0 guest.} \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. +\english{Use safe (not faulting) MSR access functions even if the MSR access should not fault anyway. +The default can be changed by using the ``xen\_msr\_safe'' boot parameter.} \subsubsection{KVM Guest support (including kvmclock)} CONFIG\_KVM\_GUEST [=y] \textbf{[Y]}\\ @@ -332,16 +350,21 @@ Diese Option ermöglicht verschiedene Optimierungen für die Ausführung unter d 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. +\english{This option enables various optimizations for running under the KVM hypervisor. +It includes a paravirtualized clock, so that instead of relying on a PIT (or probably other) emulation by the underlying device model, +the host provides the guest with timing infrastructure such as time of day, and system time} \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. +\english{If virtualized under KVM, disable host haltpoll.} \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. +\english{This option enables the PVH entry point for guest virtual machines as specified in the x86/HVM direct boot ABI.} \subsubsection{Paravirtual steal time accounting} CONFIG\_PARAVIRT\_TIME\_ACCOUNTING [=y] \textbf{[Y]}\\ @@ -350,12 +373,18 @@ Granularität zu aktivieren. Die Zeit, die für die Ausführung anderer Aufgaben 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. +\english{Select this option to enable fine granularity task steal time accounting. +Time spent executing other tasks in parallel with the current vCPU is discounted from the vCPU power. +To account for that, there can be a small performance impact.\\ +If in doubt, say N here.} \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. +\english{This option allows to run Linux as guest in a Jailhouse non-root cell. +You can leave this option disabled if you only want to start Jailhouse and run Linux afterwards in the root cell.} \subsubsection{ACRN Guest support} CONFIG\_ACRN\_GUEST [=y] \textbf{[Y]}\\ @@ -363,14 +392,22 @@ 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/}. +\english{This option allows to run Linux as guest in the ACRN hypervisor. +ACRN is a flexible, lightweight reference open-source hypervisor, built with real-time and safety-criticality in mind. +It is built for embedded IOT with small footprint and real-time features. +More details can be found in \url{https://projectacrn.org/}.} -\subsubsection{Intel TDX (Trust Domain Extensions) - Guest Support} +\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. +\english{Support running as a guest under Intel TDX. +Without this support, the guest kernel can not boot or run under TDX. +TDX includes memory encryption and integrity capabilities which protect the confidentiality and integrity of guest memory contents and CPU state. +TDX guests are protected from some attacks from the VMM.} %3.13 \subsection{Processor family (Core 2/newer Xeon) \texorpdfstring{$\rightarrow$}{->}} @@ -413,6 +450,26 @@ Hier sind die empfohlenen Einstellungen für höchste Geschwindigkeit: 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: +\english{This is the processor type of your CPU. +This information is used for optimizing purposes. +In order to compile a kernel that can run on all supported x86 CPU types (albeit not optimally fast), you can specify ``486" here.\\ +Note that the 386 is no longer supported, this includes AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, UMC 486SX-S and the NexGen Nx586.\\ +The kernel will not necessarily run on earlier architectures than the one you have chosen, e.g. a Pentium optimized kernel will run on +a PPro, but not necessarily on a i486.\\ +Here are the settings recommended for greatest speed:\\ +``486'' for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.; +``586'' for generic Pentium CPUs lacking the TSC (time stamp counter) register.; +``Pentium-Classic'' for the Intel Pentium.; ``Pentium-MMX'' for the Intel Pentium MMX.; +``Pentium-Pro'' for the Intel Pentium Pro.; ``Pentium-II'' for the Intel Pentium II or pre-Coppermine Celeron.; +``Pentium-III'' for the Intel Pentium III or Coppermine Celeron.; ``Pentium-4'' for the Intel Pentium 4 or P4-based Celeron.; +``K6'' for the AMD K6, K6-II and K6-III (aka K6-3D).; ``Athlon'' for the AMD K7 family (Athlon/Duron/Thunderbird).; +``Opteron/Athlon64/Hammer/K8'' for all K8 and newer AMD CPUs.; ``Crusoe'' for the Transmeta Crusoe series.; +``Efficeon'' for the Transmeta Efficeon series.; ``Winchip-C6'' for original IDT Winchip.; ``Winchip-2'' for IDT Winchips with 3dNow! capabilities.; +``AMD Elan'' for the 32-bit AMD Elan embedded CPU.; ``GeodeGX1'' for Geode GX1 (Cyrix MediaGX).; ``Geode GX/LX'' For AMD Geode GX and LX processors.; +``CyrixIII/VIA C3'' for VIA Cyrix III or VIA C3.; ``VIA C3-2'' for VIA C3-2 ``Nehemiah'' (model 9 and above).; +``VIA C7'' for VIA C7.; ``Intel P4'' for the Pentium 4/Netburst microarchitecture.; ``Core 2/newer Xeon'' for all core2 and newer Intel CPUs.; +``Intel Atom'' for the Atom-microarchitecture CPUs.; ``Generic-x86-64'' for a kernel which runs on any x86-64 CPU.\\ +See each option's help text for additional details. If you don't know what to do, choose ``486''.} \subsubsection{Opteron/Athlon64/Hammer/K8} CONFIG\_MK8 [=n] \textbf{[N]}\\ @@ -576,10 +633,14 @@ If unsure, say N.} CONFIG\_NR\_CPUS \colorbox{yellow!80}{[=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. +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. +\english{This allows you to specify the maximum number of CPUs which this kernel will support. +If CPUMASK\_OFFSTACK is enabled, the maximum supported value is 8192, otherwise the maximum value is 512. +The minimum value which makes sense is 2.\\ +This is purely to save memory: each supported CPU adds about 8KB to the kernel image.} \subsection{Cluster scheduler support} CONFIG\_SCHED\_CLUSTER \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ @@ -587,6 +648,8 @@ Die Unterstützung des Cluster-Schedulers verbessert die Entscheidungsfindung de 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. +\english{Cluster scheduler support improves the CPU scheduler's decision making when dealing with machines that have clusters of CPUs. +Cluster usually means a couple of CPUs which are placed closely by sharing mid-level caches, last-level cache tags or internal busses.} \note{Da wir normalerweise keinen Cluster haben, hier N.} %3.20 @@ -595,6 +658,9 @@ 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. +\english{Multi-core scheduler support improves the CPU scheduler's decision making when dealing with multi-core CPU chips +at a cost of slightly increased overhead in some places. +If unsure say N here.} \note{Y, alle modernen CPUs sind multicore.} \subsubsection{CPU core priorities scheduler support} @@ -665,18 +731,22 @@ 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. +\english{Enable support for /dev/mcelog which is needed by the old mcelog userspace logging daemon. +Consider switching to the new generation rasdaemon solution.} \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). +\english{Additional support for intel specific MCE features such as the thermal monitor.} \note{Einschalten für Intel-CPUs} \subsubsection{AMD MCE features} -CONFIG\_X86\_MCE\_AMD [=y] \textbf{[N]}\\ +CONFIG\_X86\_MCE\_AMD \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Zusätzliche Unterstützung für AMD-spezifische MCE-Funktionen wie den DRAM-Fehlerschwellenwert (DRAM Error Threshold). -\note{Einschalten für AMD-CPUs} +\english{Additional support for AMD specific MCE features such as the DRAM Error Threshold.} +\note{Einschalten für AMD-CPUs, da wir eine Intel-CPU haben, N.} %3.23 \subsection{Machine check injector support} @@ -684,11 +754,13 @@ CONFIG\_X86\_MCE\_INJECT \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ 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. +\english{Provide support for injecting machine checks for testing purposes. +If you don't know what a machine check is and you don't do kernel QA it is safe to say n.} \note{Das ist nur für Entwickler interessant, wir können anstatt ein Modul zu generieren N für Nein sagen.} %3.24 \subsection{Performance monitoring \texorpdfstring{$\rightarrow$}{->}} -Leistungsüberwachung +\textit{Leistungsüberwachung} %3.24.1 \subsubsection{Intel uncore performance events} @@ -722,6 +794,9 @@ 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. +\english{Provide power reporting mechanism support for AMD processors.\\ +Currently, it leverages X86\_FEATURE\_ACC\_POWER (CPUID Fn8000\_0007\_EDX[12]) interface to calculate the +average power consumption on Family 15h processors.} \subsubsection{AMD Uncore performance events} CONFIG\_PERF\_EVENTS\_AMD\_UNCORE [=m] \textbf{[M]}\\ @@ -729,11 +804,14 @@ Unterstützung für AMD-Uncore-Leistungsereignisse für die Verwendung mit z.\,B \texttt{perf stat -e amd\_l3/\dots/,amd\_df/\dots/}.\\ Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{amd-uncore} genannt. +\english{Include support for AMD uncore performance events for use with e.g., perf stat -e amd\_l3/.../,amd\_df/.../.\\ +To compile this driver as a module, choose M here: the module will be called `amd-uncore'.} \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. +\english{Enable AMD Zen3 branch sampling support (BRS) which samples up to 16~consecutive taken branches in registers.} %3.25 \subsection{Enable support for 16-bit segments} @@ -806,6 +884,9 @@ Dieses Gerät ermöglicht privilegierten Prozessen den Zugriff auf die modellspe 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. +\english{This device gives privileged processes access to the x86 Model-Specific Registers (MSRs). +It is a character device with major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. +MSR accesses are directed to a specific CPU on multi-processor systems.} %3.30 \subsection{/dev/cpu/*/cpuid - CPU information support} @@ -813,6 +894,8 @@ 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}. +\english{This device gives processes access to the x86 CPUID instruction to be executed on a specific processor. +It is a character device with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to /dev/cpu/31/cpuid.} %3.31 \subsection{Enable 5-level page tables support} @@ -822,6 +905,11 @@ bis zu 128~PiB virtueller Adressraum und 4~PiB physikalischer Adressraum. Es wir 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. +\english{5-level paging enables access to larger address space: up to 128 PiB of virtual address space and 4 PiB of physical address space.\\ +It will be supported by future Intel CPUs.\\ +A kernel with the option enabled can be booted on machines that support 4- or 5-level paging.\\ +See Documentation/arch/x86/x86\_64/5level-paging.rst for more information.\\ +Say N if unsure.} \note{Wir verwenden keine so großen Maschinen, also N. 4-Level mit \qty{256}{\tebi\byte} ist momentan ausreichend.} %3.32 @@ -836,9 +924,11 @@ the effectiveness of preserving large and huge page mappings when mapping protec %3.33 \subsection{AMD Secure Memory Encryption (SME) support} -CONFIG\_AMD\_MEM\_ENCRYPT [=y] \textbf{[N]}\\ +CONFIG\_AMD\_MEM\_ENCRYPT \colorbox{yellow!80}{[=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. +\english{Say yes to enable support for the encryption of system memory. +This requires an AMD processor that supports Secure Memory Encryption (SME).} \subsubsection{Activate AMD Secure Memory Encryption (SME) by default} CONFIG\_AMD\_MEM\_ENCRYPT\_ACTIVE\_BY\_DEFAULT [=n] \textbf{[N]}\\ @@ -870,10 +960,15 @@ 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. +\english{Enable AMD NUMA node topology detection. +You should say Y here if you have a multi processor AMD system. +This uses an old method to read the NUMA configuration directly from the builtin Northbridge of Opteron. +It is recommended to use X86\_64\_ACPI\_NUMA instead, which also takes priority if both are compiled in.} \subsubsection{ACPI NUMA detection} CONFIG\_X86\_64\_ACOU\_NUMA [=y] \textbf{[Y]}\\ Aktivieren Sie die auf ACPI SRAT basierende Knoten-Topologie-Erkennung. +\english{Enable ACPI SRAT based node topology detection.} \paragraph{NUMA emulation}$~$\\ CONFIG\_NUMA\_EMU [=n] \textbf{[N]}\\ @@ -892,6 +987,9 @@ 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. +\english{This option enables a sysfs memory/probe interface for testing. +See Documentation/admin-guide/mm/memory-hotplug.rst for more information. +If you are unsure how to answer this question, answer N.} \subsection{Support non-standard NVDIMMs and ADR protected memory} CONFIG\_X86\_PMEM\_LEGACY \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ @@ -900,6 +998,9 @@ 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. +\english{Treat memory marked using the non-standard e820 type of 12 as used by the Intel Sandy Bridge-EP reference BIOS as protected memory. +The kernel will offer these regions to the `pmem' driver so they can be used for persistent storage.\\ +Say Y if unsure.} \note{Verwenden wir nicht, deshalb ein N für Nein.} \subsection{Check for low memory corruption} @@ -919,11 +1020,21 @@ wenn eine wiederholte BIOS-verursachte Beschädigung stets denselben Speicher be \parbox{445\unitlength}{Hinweis: Kann ausgeschaltet werden, wenn im \texttt{journalctl} niemals \glqq corrupted low memory\grqq{} erscheint.} } +\english{Periodically check for memory corruption in low memory, which is suspected to be caused by BIOS. +Even when enabled in the configuration, it is disabled at runtime. +Enable it by setting ``memory\_corruption\_check=1'' on the kernel command line. +By default it scans the low 64k of memory every 60 seconds; see the memory\_corruption\_check\_size and +memory\_corruption\_check\_period parameters in Documentation/admin-guide/kernel-parameters.rst to adjust this.\\ +When enabled with the default parameters, this option has almost no overhead, as it reserves a relatively small amount of memory and scans it infrequently. +It both detects corruption and prevents it from affecting the running system.\\ +It is, however, intended as a diagnostic tool; if repeatable BIOS-originated corruption always affects the same memory, +you can use memmap= to prevent the kernel from using that memory.} \note{Wir setzen dies auf N für Nein, da auch die obengenannte Meldung nie kommt.} \subsubsection{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. +\english{Set whether the default state of memory\_corruption\_check is on or off.} \subsubsection{MTRR (Memory Type Range Register) support} CONFIG\_MTRR [=y] \textbf{[Y]}\\