ADD english text to 06 upto 10, minor fixes

This commit is contained in:
2025-04-20 11:57:00 +02:00
parent 3fd276c3f4
commit 545d25e3a2
7 changed files with 399 additions and 45 deletions

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:752f3b2965466d1858f2f56d54ff8d0e8fa29d245ae6d4101e625485367c080a oid sha256:f3b73093ee9c5b965dabe88cbdd8f94e507b03e722243b50ebeb254906825ce6
size 3316022 size 3348694

View File

@@ -12,6 +12,7 @@
%\includeonly{ %\includeonly{
%linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities, %linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities,
%linux_configuration_05_power_management_and_acpi_options, %linux_configuration_05_power_management_and_acpi_options,
%linux_configuration_09_general_architecture-dependent_options,
%linux_configuration_13_memory_management_options, %linux_configuration_13_memory_management_options,
%linux_configuration_14_networking_support, %linux_configuration_14_networking_support,
%linux_configuration_15_device_drivers, %linux_configuration_15_device_drivers,

View File

@@ -795,29 +795,43 @@ This sets the frequency statically to the highest frequency supported by the CPU
CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_POWERSAVE [=n] \textbf{[N]}\\ 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 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. von der CPU unterstützte Frequenz eingestellt.
\english{Use the CPUFreq governor `powersave' as default.
This sets the frequency statically to the lowest frequency supported by the CPU.}
\paragraph{userspace}$~$\\ \paragraph{userspace}$~$\\
CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_USERSPACE [=n] \textbf{[N]}\\ 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 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 oder ein Userspace-Programm soll die CPU dynamisch einstellen können, ohne den Userspace-Governor manuell
aktivieren zu müssen. aktivieren zu müssen.
\english{Use the CPUFreq governor `userspace' as default.
This allows you to set the CPU frequency manually or when a userspace program shall be able to set the CPU dynamically
without having to enable the userspace governor manually.}
\paragraph{schedutil}$~$\\ \paragraph{schedutil}$~$\\
CONFIG\_CPU\_FREQ\_DEFAULT\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ 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 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{}. der Hilfe zu diesem Gouverneur nach. Der Fallback-Regler ist \glqq performance\grqq{}.
\english{Use the `schedutil' CPUFreq governor by default.
If unsure, have a look at the help section of that governor.
The fallback governor will be `performance'.}
\subsubsection{`performance' governor} \subsubsection{`performance' governor}
CONFIG\_CPU\_FREQ\_GOV\_PERFORMANCE [=y] \textbf{[Y]}\\ 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 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. als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_performance} heißen.
Im Zweifelsfall sagen Sie Y. Im Zweifelsfall sagen Sie Y.
\english{This cpufreq governor sets the frequency statically to the highest available CPU frequency.\\
To compile this driver as a module, choose M here: the module will be called \texttt{cpufreq\_performance}.\\
If in doubt, say Y.}
\subsubsection{`powersave' governor} \subsubsection{`powersave' governor}
CONFIG\_CPU\_FREQ\_GOV\_POWERSAVE [=y] \textbf{[Y]}\\ 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 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. als Modul zu kompilieren, wählen Sie hier M: Das Modul wird \texttt{cpufreq\_powersave} heißen.
Im Zweifelsfall wählen Sie Y. Im Zweifelsfall wählen Sie Y.
\english{This cpufreq governor sets the frequency statically to the lowest available CPU frequency.\\
To compile this driver as a module, choose M here: the module will be called \texttt{cpufrequ\_powersave}.\\
If in doubt, say Y.}
\subsubsection{`userspace' governor for userspace frequency scaling} \subsubsection{`userspace' governor for userspace frequency scaling}
CONFIG\_CPU\_FREQ\_GOV\_USERSPACE [=y] \textbf{[Y]}\\ CONFIG\_CPU\_FREQ\_GOV\_USERSPACE [=y] \textbf{[Y]}\\
@@ -825,6 +839,10 @@ Aktivieren Sie diesen cpufreq-Governor, wenn Sie die CPU-Frequenz entweder manue
ein Userspace-Programm in der Lage sein soll, die CPU dynamisch einzustellen, wie bei 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: 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. Das Modul wird \texttt{cpufreq\_userspace} heißen. Im Zweifelsfall sagen Sie Y.
\english{Enable this cpufreq governor when you either want to set the CPU frequency manually or when
a userspace program shall be able to set the CPU dynamically, like on LART \url{http://www.lartmaker.nl/}.\\
To compile this driver as a module, choose M here: the module will be called \texttt{cpufreq\_userspace}.
If in doubt, say Y.}
\subsubsection{`ondemand' cpufreq policy governor} \subsubsection{`ondemand' cpufreq policy governor}
CONFIG\_CPU\_FREQ\_GOV\_ONDEMAND [=y] \textbf{[Y]}\\ CONFIG\_CPU\_FREQ\_GOV\_ONDEMAND [=y] \textbf{[Y]}\\
@@ -834,6 +852,12 @@ Die Unterstützung für diesen Gouverneur hängt von der Fähigkeit der CPU ab,
(d.\,h. Frequenzübergänge mit sehr geringer Latenzzeit). Um diesen Treiber als Modul zu kompilieren, (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. 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. Details finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. Im Zweifelsfall sagen Sie N.
\english{`ondemand' -- This driver adds a dynamic cpufreq policy governor.
The governor does a periodic polling and changes frequency based on the CPU utilization.
The support for this governor depends on CPU capability to do fast frequency switching (i.e, very low latency frequency transitions).\\
To compile this driver as a module, choose M here: the module will be called \texttt{cpufreq\_ondemand}.\\
For details, take a look at $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$.\\
If in doubt, say N.}
\subsubsection{`conservative' cpufreq governor} \subsubsection{`conservative' cpufreq governor}
CONFIG\_CPU\_FREQ\_GOV\_CONSERVATIVE [=y] \textbf{[Y]}\\ CONFIG\_CPU\_FREQ\_GOV\_CONSERVATIVE [=y] \textbf{[Y]}\\
@@ -846,6 +870,14 @@ in Betracht ziehen. Wenn Sie jedoch einen Laptop, einen PDA oder sogar einen AMD
der CPU), werden Sie wahrscheinlich diesen Regler verwenden wollen. Um diesen Treiber als Modul zu kompilieren, 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.\\ 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. Einzelheiten finden Sie in $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$.\\Im Zweifelsfall sagen Sie N.
\english{`conservative' -- this driver is rather similar to the `ondemand' governor both in its source code and its purpose,
the difference is its optimisation for better suitability in a battery powered environment.
The frequency is gracefully increased and decreased rather than jumping to 100\% when speed is required.\\
If you have a desktop machine then you should really be considering the `ondemand' governor instead,
however if you are using a laptop, PDA or even an AMD64 based computer (due to the unacceptable step-by-step latency issues
between the minimum and maximum frequency transitions in the CPU) you will probably want to use this governor.\\
To compile this driver as a module, choose M here: the module will be called \texttt{cpufreq\_conservative}.
For details, take a look at $<$file:Documentation/admin-guide/pm/cpufreq.rst$>$. If in doubt, say N.}
\subsubsection{`schedutil' cpufreq policy governor} \subsubsection{`schedutil' cpufreq policy governor}
CONFIG\_CPU\_FREQ\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\ CONFIG\_CPU\_FREQ\_GOV\_SCHEDUTIL [=y] \textbf{[Y]}\\
@@ -855,9 +887,14 @@ Auslastung und Kapazität ist. Wenn die Auslastung frequenzinvariant ist, ist di
zur maximal verfügbaren Frequenz. Wenn dies nicht der Fall ist, ist sie proportional zur aktuellen Frequenz der CPU. 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~\%.\\ Der Kipppunkt der Frequenz liegt in beiden Fällen bei einer Auslastung/Kapazität von 80~\%.\\
Im Zweifelsfall sagen Sie N. Im Zweifelsfall sagen Sie N.
\english{This governor makes decisions based on the utilization data provided by the scheduler.
It sets the CPU frequency to be proportional to the utilization/capacity ratio coming from the scheduler.
If the utilization is frequency-invariant, the new frequency is also proportional to the maximum available frequency.
If that is not the case, it is proportional to the current frequency of the CPU.
The frequency tipping point is at utilization/capacity equal to 80\% in both cases. If in doubt, say N.}
\subsubsection*{*** CPU frequency scaling drivers ***} \subsubsection*{*** CPU frequency scaling drivers ***}
(Treiber zur Skalierung der CPU-Frequenz) \textit{Treiber zur Skalierung der CPU-Frequenz}
\subsubsection{Intel P state control} \subsubsection{Intel P state control}
CONFIG\_X86\_INTEL\_PSTATE [=y] \textbf{[Y]}\\ CONFIG\_X86\_INTEL\_PSTATE [=y] \textbf{[Y]}\\
@@ -865,6 +902,10 @@ Dieser Treiber bietet einen P-Status für Intel-Core-Prozessoren. Der Treiber im
Gouverneur und wird der Skalierungstreiber und Gouverneur für Sandy-Bridge-Prozessoren werden. 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.\\ Wenn dieser Treiber aktiviert ist, wird er der bevorzugte Skalierungstreiber für Sandy-Bridge-Prozessoren.\\
Im Zweifelsfall sagen Sie N. Im Zweifelsfall sagen Sie N.
\english{This driver provides a P state for Intel core processors.
The driver implements an internal governor and will become the scaling driver and governor for Sandy bridge processors.\\
When this driver is enabled it will become the preferred scaling driver for Sandy bridge processors.\\
If in doubt, say N.}
\subsubsection{Processor Clocking Control interface driver} \subsubsection{Processor Clocking Control interface driver}
CONFIG\_X86\_PCC\_CPUFREQ [=y] \textbf{[Y]}\\ CONFIG\_X86\_PCC\_CPUFREQ [=y] \textbf{[Y]}\\
@@ -872,6 +913,10 @@ Dieser Treiber bietet Unterstützung für die PCC-Schnittstelle. Einzelheiten fi
$<$file:Documentation/admin-guide/pm/cpufreq\_drivers.rst$>$. Um diesen Treiber als Modul zu kompilieren, $<$file:Documentation/admin-guide/pm/cpufreq\_drivers.rst$>$. Um diesen Treiber als Modul zu kompilieren,
wählen Sie hier M: wählen Sie hier M:
Das Modul wird \texttt{pcc-cpufreq} heißen. Im Zweifelsfall sagen Sie N. Das Modul wird \texttt{pcc-cpufreq} heißen. Im Zweifelsfall sagen Sie N.
\english{This driver adds support for the PCC interface.\\
For details, take a look at: $<$file:Documentation/admin-guide/pm/cpufreq\_drivers.rst$>$.
To compile this driver as a module, choose M here: the module will be called \texttt{pcc-cpufreq}.
If in doubt, say N.}
\subsubsection{AMD Processor P-State driver} \subsubsection{AMD Processor P-State driver}
CONFIG\_X86\_AMD\_PSTATE [=y] \textbf{[Y]}\\ CONFIG\_X86\_AMD\_PSTATE [=y] \textbf{[Y]}\\
@@ -880,6 +925,9 @@ Prozessorleistung anstelle der alten Leistungsstufen verwendet. In den ACPI-Tabe
\_CPC vorhanden sein.\\ \_CPC vorhanden sein.\\
Details finden Sie unter: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$. Details finden Sie unter: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$.
Im Zweifelsfall sagen Sie N. Im Zweifelsfall sagen Sie N.
\english{This driver adds a CPUFreq driver which utilizes a fine grain processor performance frequency control range instead of legacy performance levels.
\_CPC needs to be present in the ACPI tables of the system.\\
For details, take a look at: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$. If in doubt, say N.}
\paragraph{AMD Processor P-State default mode}$~$\\ \paragraph{AMD Processor P-State default mode}$~$\\
CONFIG\_X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3] \textbf{[3]}\\ CONFIG\_X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3] \textbf{[3]}\\
@@ -895,6 +943,13 @@ Für Details, siehe: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$.\\
Symbol: X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3]\\ Symbol: X86\_AMD\_PSTATE\_DEFAULT\_MODE [=3]\\
Type : Ganzzahl (integer)\\ Type : Ganzzahl (integer)\\
Bereich (range): [1 4] Bereich (range): [1 4]
\english{Select the default mode the amd-pstate driver will use on supported hardware.
The value set has the following meanings:\\
\indent 1 $->$ Disabled\\
\indent 2 $->$ Passive\\
\indent 3 $->$ Active (EPP)\\
\indent 4 $->$ Guided\\
For details, take a look at: $<$file:Documentation/admin-guide/pm/amd-pstate.rst$>$.}
\subsubsection{selftest for AMD Processor P-State driver} \subsubsection{selftest for AMD Processor P-State driver}
CONFIG\_X86\_AMD\_PSTATE\_UT [=m] \textbf{[M]}\\ CONFIG\_X86\_AMD\_PSTATE\_UT [=m] \textbf{[M]}\\
@@ -904,6 +959,12 @@ unterstützt. Wenn X86\_AMD\_PSTATE deaktiviert ist, kann es den Benutzern sagen
amd-pstate Treiber laufen kann, bitte setzen Sie X86\_AMD\_PSTATE aktiviert. 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 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. aktiviert werden, um Testfälle auszuführen und dann die Testergebnisse zu vergleichen.
\english{This kernel module is used for testing. It's safe to say M here.\\
It can also be built-in without X86\_AMD\_PSTATE enabled.
Currently, only tests for amd-pstate are supported.
If X86\_AMD\_PSTATE is set disabled, it can tell the users test can only run on amd-pstate driver, please set X86\_AMD\_PSTATE enabled.
In the future, comparison tests will be added.
It can set amd-pstate disabled and set acpi-cpufreq enabled to run test cases, then compare the test results.}
\subsubsection{ACPI Processor P-State driver} \subsubsection{ACPI Processor P-State driver}
CONFIG\_X86\_ACPI\_CPUFREQ [=m] \textbf{[M]}\\ CONFIG\_X86\_ACPI\_CPUFREQ [=m] \textbf{[M]}\\
@@ -912,6 +973,11 @@ Dieser Treiber unterstützt auch Intel Enhanced Speedstep und neuere AMD-CPUs. U
zu kompilieren, wählen Sie hier M: zu kompilieren, wählen Sie hier M:
Das Modul wird \texttt{acpi-cpufreq} heißen.\\ Das Modul wird \texttt{acpi-cpufreq} heißen.\\
Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall sagen Sie N. Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall sagen Sie N.
\english{This driver adds a CPUFreq driver which utilizes the ACPI Processor Performance States.
This driver also supports Intel Enhanced Speedstep and newer AMD CPUs.\\
To compile this driver as a module, choose M here: the module will be called acpi-cpufreq.
For details, take a look at $<$file:Documentation/cpu-freq/$>$.\\
If in doubt, say N.}
\paragraph{Legacy cpb sysfs knob support for AMD CPUs}$~$\\ \paragraph{Legacy cpb sysfs knob support for AMD CPUs}$~$\\
CONFIG\_X86\_ACPI\_CPUFREQ\_CPB [=y] \textbf{[Y]}\\ CONFIG\_X86\_ACPI\_CPUFREQ\_CPB [=y] \textbf{[Y]}\\
@@ -920,6 +986,10 @@ um die Core Performance Boosting-Funktion von AMD-CPUs zu deaktivieren. Diese Da
allgemeineren \glqq boost\grqq{}-Eintrag abgelöst. allgemeineren \glqq boost\grqq{}-Eintrag abgelöst.
Wenn Sie diese Option aktivieren, stellt der acpi\_cpufreq-Treiber aus Kompatibilitätsgründen den alten 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. Eintrag zusätzlich zum neuen \glqq boost\grqq{}-Eintrag bereit.
\english{The powernow-k8 driver used to provide a sysfs knob called ``cpb''
to disable the Core Performance Boosting feature of AMD CPUs.
This file has now been superseded by the more generic ``boost'' entry.\\
By enabling this option the acpi\_cpufreq driver provides the old entry in addition to the new boost ones, for compatibility reasons.}
\subsubsection{AMD Opteron/Athlon64 PowerNow!} \subsubsection{AMD Opteron/Athlon64 PowerNow!}
CONFIG\_X86\_POWERNOW\_K8 [=m] \textbf{[M]}\\ CONFIG\_X86\_POWERNOW\_K8 [=m] \textbf{[M]}\\
@@ -927,6 +997,10 @@ Dies fügt den CPUFreq-Treiber für K8/frühe Opteron/Athlon64-Prozessoren hinzu
neuere Prozessoren ist jetzt in acpi-cpufreq enthalten. Um diesen Treiber als Modul zu kompilieren, 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.\\ wählen Sie hier M: Das Modul wird \texttt{powernow-k8} heißen.\\
Details finden Sie in $<$file:Documentation/cpu-freq/$>$. Details finden Sie in $<$file:Documentation/cpu-freq/$>$.
\english{This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
Support for K10 and newer processors is now in acpi-cpufreq.\\
To compile this driver as a module, choose M here: the module will be called \texttt{powernow-k8}.\\
For details, take a look at $<$file:Documentation/cpu-freq/$>$.}
\subsubsection{AMD frequency sensitivity feedback powersave bias} \subsubsection{AMD frequency sensitivity feedback powersave bias}
CONFIG\_X86\_AMD\_FREQ\_SENSITIVITY [=m] \textbf{[M]}\\ CONFIG\_X86\_AMD\_FREQ\_SENSITIVITY [=m] \textbf{[M]}\\
@@ -938,6 +1012,12 @@ CPU-gebundene Arbeitslasten sind empfindlicher, d.\,h. sie werden bei einer Freq
Speicher-/IO-gebundene Arbeitslasten reagieren weniger empfindlich, d.\,h. sie werden nicht unbedingt besser, Speicher-/IO-gebundene Arbeitslasten reagieren weniger empfindlich, d.\,h. sie werden nicht unbedingt besser,
wenn die Frequenz erhöht wird.\\ wenn die Frequenz erhöht wird.\\
Im Zweifelsfall sagen Sie N. Im Zweifelsfall sagen Sie N.
\english{This adds AMD-specific powersave bias function to the ondemand governor, which allows it to make more
power-conscious frequency change decisions based on feedback from hardware (available on AMD Family 16h and above).\\
Hardware feedback tells software how ``sensitive'' to frequency changes the CPUs' workloads are.
CPU-bound workloads will be more sensitive -- they will perform better as frequency increases.
Memory/IO-bound workloads will be less sensitive -- they will not necessarily perform better as frequency increases.\\
If in doubt, say N.}
\subsubsection{Intel Enhanced SpeedStep (deprecated)} \subsubsection{Intel Enhanced SpeedStep (deprecated)}
CONFIG\_X86\_SPEEDSTEP\_CENTRINO [=n] \textbf{[N]}\\ CONFIG\_X86\_SPEEDSTEP\_CENTRINO [=n] \textbf{[N]}\\
@@ -947,9 +1027,15 @@ 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 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.\\ 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. Details finden Sie unter $<$file:Documentation/cpu-freq/$>$. Im Zweifelsfall wählen Sie N.
\english{This is deprecated and this functionality is now merged into acpi\_cpufreq (X86\_ACPI\_CPUFREQ).
Use that driver instead of speedstep\_centrino.
This adds the CPUFreq driver for Enhanced SpeedStep enabled mobile CPUs.
This means Intel Pentium M (Centrino) CPUs or 64bit enabled Intel Xeons.\\
To compile this driver as a module, choose M here: the module will be called \texttt{speedstep-centrino}.\\
For details, take a look at $<$file:Documentation/cpu-freq/$>$. If in doubt, say N.}
\subsubsection{Intel Pentium 4 clock modulation} \subsubsection{Intel Pentium 4 clock modulation}
CONFIG\_X86\_P4\_CLOCKMOD [=m] \textbf{[N]}\\ CONFIG\_X86\_P4\_CLOCKMOD \colorbox{yellow!80}{[=m] \textbf{[N]}}\\
Dies fügt den CPUFreq-Treiber für Intel Pentium 4 / XEON Prozessoren hinzu. Wenn er aktiviert ist, 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 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 verwendet werden, wenn eine sehr niedrige Leistung benötigt wird, da er starke Verlangsamungen und spürbare
@@ -958,12 +1044,18 @@ Um diesen Treiber als Modul zu kompilieren, wählen Sie hier M:
Das Modul wird \texttt{p4-clockmod} genannt.\\ Das Modul wird \texttt{p4-clockmod} genannt.\\
Für Details werfen Sie einen Blick auf $<$file:Documentation/cpu-freq/$>$. Wenn Sie sich nicht absolut Für Details werfen Sie einen Blick auf $<$file:Documentation/cpu-freq/$>$. Wenn Sie sich nicht absolut
sicher sind, wählen Sie N. sicher sind, wählen Sie N.
\english{This adds the CPUFreq driver for Intel Pentium 4 / XEON processors.
When enabled it will lower CPU temperature by skipping clocks.\\
This driver should be only used in exceptional circumstances when very low power is needed because it causes severe slowdowns and noticeable latencies.
Normally Speedstep should be used instead.\\
To compile this driver as a module, choose M here: the module will be called \texttt{p4-clockmod}.\\
For details, take a look at $<$file:Documentation/cpu-freq/$>$. Unless you are absolutely sure say N.}
\subsubsection*{*** shared options ***} \subsubsection*{*** shared options ***}
(gemeinsame Optionen) \textit{gemeinsame Optionen}
\subsection{CPU Idle \texorpdfstring{$\rightarrow$}{->}} \subsection{CPU Idle \texorpdfstring{$\rightarrow$}{->}}
(CPU im Leerlauf) \textit{CPU im Leerlauf}
\subsubsection{CPU idle PM support} \subsubsection{CPU idle PM support}
CONFIG\_CPU\_IDLE [=y] \textbf{[Y]}\\ CONFIG\_CPU\_IDLE [=y] \textbf{[Y]}\\
@@ -971,14 +1063,19 @@ CPU idle ist ein allgemeiner Mechanismus zur Unterstützung der softwaregesteuer
Prozessorleistung im Leerlauf. Es umfasst modulare plattformübergreifende Regler, die während 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. 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. PM steht für \glqq power management\grqq{} -- Verwaltung der Prozessorleistung.
\english{CPU idle is a generic framework for supporting software-controlled idle processor power management.
It includes modular cross-platform governors that can be swapped during runtime.\\
If you're using an ACPI-enabled platform, you should say Y here.}
\paragraph{Ladder governor (for periodic timer tick)}$~$\\ \paragraph{Ladder governor (for periodic timer tick)}$~$\\
CONFIG\_CPU\_IDLE\_GOV\_LADDER [=y] \textbf{[Y]}\\ CONFIG\_CPU\_IDLE\_GOV\_LADDER [=y] \textbf{[Y]}\\
\textit{Für diese Option gibt es keine Hilfe.} Für diese Option gibt es keine Hilfe.
\english{There is no help available for this option.}
\paragraph{Menu governor (for tickless system)}$~$\\ \paragraph{Menu governor (for tickless system)}$~$\\
CONFIG\_CPU\_IDLE\_GOV\_MENU [=y] \textbf{[Y]}\\ CONFIG\_CPU\_IDLE\_GOV\_MENU [=y] \textbf{[Y]}\\
\textit{Für diese Option gibt es keine Hilfe.} Für diese Option gibt es keine Hilfe.
\english{There is no help available for this option.}
\paragraph{Timer events oriented (TEO) governor (for tickless systems)}$~$\\ \paragraph{Timer events oriented (TEO) governor (for tickless systems)}$~$\\
CONFIG\_CPU\_IDLE\_GOV\_TEO [=y] \textbf{[Y]}\\ CONFIG\_CPU\_IDLE\_GOV\_TEO [=y] \textbf{[Y]}\\
@@ -986,20 +1083,30 @@ Dieser Gouverneur implementiert eine vereinfachte Methode zur Auswahl des Ruhezu
Timer-Ereignisse konzentriert und keine Steigerung der Interaktivität bewirkt. Timer-Ereignisse konzentriert und keine Steigerung der Interaktivität bewirkt.
Einige Arbeitslasten profitieren davon, und es sollte im Allgemeinen sicher zu verwenden sein.\\ 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. Sagen Sie hier Y, wenn Sie mit den Alternativen nicht zufrieden sind.
\english{This governor implements a simplified idle state selection method focused on timer events and does not do any interactivity boosting.\\
Some workloads benefit from using it and it generally should be safe to use.
Say Y here if you are not happy with the alternatives.}
\paragraph{Haltpoll governor (for virtualized systems)}$~$\\ \paragraph{Haltpoll governor (for virtualized systems)}$~$\\
CONFIG\_CPU\_IDLE\_GOV\_HALTPOLL [=y] \textbf{[Y]}\\ CONFIG\_CPU\_IDLE\_GOV\_HALTPOLL [=y] \textbf{[Y]}\\
Dieser Gouverneur implementiert die Auswahl des Leerlaufzustands von haltpoll, der in Verbindung mit 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, 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. bevor der Leerlaufzustand erreicht wird. Einige virtualisierte Arbeitslasten profitieren von dieser Funktion.
\english{This governor implements haltpoll idle state selection, to be used in conjunction with the haltpoll cpuidle driver,
allowing for polling for a certain amount of time before entering idle state.\\
Some virtualized workloads benefit from using it.}
\paragraph{Halt poll cpuidle driver}$~$\\ \paragraph{Halt poll cpuidle driver}$~$\\
CONFIG\_HALTPOLL\_CPUIDLE [=m] \textbf{[N]}\\ CONFIG\_HALTPOLL\_CPUIDLE \colorbox{yellow!80}{[=m] \textbf{[N]}}\\
Diese Option aktiviert den \glqq halt poll cpuidle\grqq{}-Treiber, der eine Abfrage vor dem Anhalten 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). im Gast ermöglicht (effizienter als die Abfrage im Host über halt\_poll\_ns für einige Szenarien).
\english{This option enables halt poll cpuidle driver, which allows to poll before halting in the guest
(more efficient than polling in the host via halt\_poll\_ns for some scenarios).}
\subsection{CPUidle Driver for Intel Processors} \subsection{CPUidle Driver for Intel Processors}
CONFIG\_INTEL\_IDLE [=y] \textbf{[Y]}\\ 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. 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, Der acpi\_idle-Treiber kann zur gleichen Zeit konfiguriert werden, um Prozessoren zu behandeln,
die intel\_idle nicht unterstützt. die intel\_idle nicht unterstützt.
\english{Enable intel\_idle, a cpuidle driver that includes knowledge of native Intel hardware idle features.
The acpi\_idle driver can be configured at the same time, in order to handle processors intel\_idle does not support.}

View File

@@ -7,6 +7,7 @@
CONFIG\_PCI\_MMCONFIG [=y] \textbf{[Y]}\\ CONFIG\_PCI\_MMCONFIG [=y] \textbf{[Y]}\\
(Unterstützung des mmconfig PCI"=Konfigurationsraumzugriffs)\\ (Unterstützung des mmconfig PCI"=Konfigurationsraumzugriffs)\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Read CNB20LE Host Bridge Windows} \subsection{Read CNB20LE Host Bridge Windows}
CONFIG\_PCI\_CNB20LE\_QUIRK [=n] \textbf{[N]}\\ CONFIG\_PCI\_CNB20LE\_QUIRK [=n] \textbf{[N]}\\
@@ -18,6 +19,10 @@ Sie sollten N sagen, es sei denn, Sie wissen, dass Sie dies benötigen.
This allows PCI hotplug to work on systems with the CNB20LE chipset which do not have ACPI.\\ This allows PCI hotplug to work on systems with the CNB20LE chipset which do not have ACPI.\\
There's no public spec for this chipset, and this functionality is known to be incomplete.\\ There's no public spec for this chipset, and this functionality is known to be incomplete.\\
You should say N unless you know you need this.} You should say N unless you know you need this.}
\english{Read the PCI windows out of the CNB20LE host bridge.
This allows PCI hotplug to work on systems with the CNB20LE chipset which do not have ACPI.\\
There's no public spec for this chipset, and this functionality is known to be incomplete.
You should say N unless you know you need this.}
\subsection{ISA bus support on modern systems} \subsection{ISA bus support on modern systems}
CONFIG\_ISA\_BUS [=n] \textbf{[N]}\\ CONFIG\_ISA\_BUS [=n] \textbf{[N]}\\

View File

@@ -75,6 +75,9 @@ CONFIG\_X86\_SGX\_KVM [=y] \textbf{[Y]}\\
Ermöglicht KVM-Gästen, SGX-Enklaven zu erstellen. Dies schließt die Unterstützung ein, 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, \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. z.\,B. /dev/sgx\_vepc, freizugeben. Wenn Sie unsicher sind, sagen Sie N.
\english{Enables KVM guests to create SGX enclaves.\\
This includes support to expose ``raw'' unreclaimable enclave memory to guests via a device node, e.g. /dev/sgx\_vepc.
If unsure, say N.}
\subsubsection{KVM for AMD processors support} \subsubsection{KVM for AMD processors support}
CONFIG\_KVM\_AMD [=m] \textbf{[M]}\\ CONFIG\_KVM\_AMD [=m] \textbf{[M]}\\
@@ -82,11 +85,16 @@ Bietet Unterstützung für KVM auf Prozessoren, die mit Intels VT-Erweiterungen,
Bietet Unterstützung für KVM auf AMD-Prozessoren, die mit den AMD-V (SVM)-Erweiterungen 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: ausgestattet sind. Um dies als Modul zu kompilieren, wählen Sie hier M:
Das Modul wird \texttt{kvm-amd} genannt. Das Modul wird \texttt{kvm-amd} genannt.
\english{Provides support for KVM on AMD processors equipped with the AMD-V (SVM) extensions.\\
To compile this as a module, choose M here: the module will be called \texttt{kvm-amd}.}
\paragraph{AMD Secure Encrypted Virtualization (SEV) support}$~$\\ \paragraph{AMD Secure Encrypted Virtualization (SEV) support}$~$\\
CONFIG\_KVM\_AMD\_SEV [=y] \textbf{[N]}\\ CONFIG\_KVM\_AMD\_SEV [=y] \textbf{[N]}\\
Bietet Unterstützung für den Start von verschlüsselten VMs (SEV) und verschlüsselten VMs 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. mit verschlüsseltem Status (SEV-ES) auf AMD-Prozessoren.
\english{Provides support for launching encrypted VMs which use Secure Encrypted Virtualization (SEV),
Secure Encrypted Virtualization with Encrypted State (SEV-ES), and Secure Encrypted Virtualization with
Secure Nested Paging (SEV-SNP) technologies on AMD processors.}
\subsubsection{System Management Mode emulation} \subsubsection{System Management Mode emulation}
CONFIG\_KVM\_SMM [=y] \textbf{[Y]}\\ CONFIG\_KVM\_SMM [=y] \textbf{[Y]}\\

View File

@@ -1,3 +1,6 @@
%since Linux 6.14
% linux_configuration_09_general_architecture-dependent_options.tex
\section{General architecture-dependent options \texorpdfstring{$\rightarrow$}{->}} \section{General architecture-dependent options \texorpdfstring{$\rightarrow$}{->}}
(Allgemeine architekturabhängige Optionen) (Allgemeine architekturabhängige Optionen)
@@ -6,7 +9,11 @@ CONFIG\_KPROBES [=y] \textbf{[Y]}\\
Mit Kprobes können Sie an fast jeder Kerneladresse trappen und eine Callback-Funktion ausführen. 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. register\_kprobe() legt einen Probepoint fest und spezifiziert den Callback.
Kprobes ist nützlich für Kernel-Debugging, nicht-intrusive Instrumentierung und Tests.\\ Kprobes ist nützlich für Kernel-Debugging, nicht-intrusive Instrumentierung und Tests.\\
Im Zweifelsfall sagen Sie "N". Im Zweifelsfall sagen Sie N.
\english{Kprobes allows you to trap at almost any kernel address and execute a callback function.
register\_kprobe() establishes a probepoint and specifies the callback.
Kprobes is useful for kernel debugging, non-intrusive instrumentation and testing.
If in doubt, say ``N''.}
\subsection{Optimize very unlikely/likely branches} \subsection{Optimize very unlikely/likely branches}
CONFIG\_JUMP\_LABEL [=y] \textbf{[Y]}\\ CONFIG\_JUMP\_LABEL [=y] \textbf{[Y]}\\
@@ -21,14 +28,25 @@ Diese Technik senkt den Overhead und die Belastung der Verzweigungsvorhersage de
den Kernel im Allgemeinen schneller. Die Aktualisierung der Bedingung ist zwar langsamer, aber das 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 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). Compiler-Flags hinzugefügt werden, die Größe des Kernels leicht erhöhen).
\english{This option enables a transparent branch optimization that makes certain almost-always-true or almost-always-false branch
conditions even cheaper to execute within the kernel.\\
Certain performance-sensitive kernel code, such as trace points, scheduler functionality,
networking code and KVM have such branches and include support for this optimization technique.\\
If it is detected that the compiler has support for ``asm goto'', the kernel will compile such branches with just a nop instruction.
When the condition flag is toggled to true, the nop will be converted to a jump instruction to execute the conditional block of instructions.\\
This technique lowers overhead and stress on the branch prediction of the processor and generally makes the kernel faster.
The update of the condition is slower, but those are always very rare.\\
( On 32-bit x86, the necessary options added to the compiler flags may increase the size of the kernel slightly. )}
\subsubsection{Static key selftest} \subsubsection{Static key selftest}
CONFIG\_STATIC\_KEYS\_SELFTEST [=n] \textbf{[N]}\\ CONFIG\_STATIC\_KEYS\_SELFTEST [=n] \textbf{[N]}\\
Bootzeit-Selbsttest des Branch-Patching-Codes. Bootzeit-Selbsttest des Branch-Patching-Codes.
\english{Boot time self-test of the branch patching code.}
\subsection{Static call selftest} \subsection{Static call selftest}
CONFIG\_STATIC\_CALL\_SELFTEST [=n] \textbf{[N]}\\ CONFIG\_STATIC\_CALL\_SELFTEST [=n] \textbf{[N]}\\
Bootzeit-Selbsttest des Call-Patching-Codes. Bootzeit-Selbsttest des Call-Patching-Codes.
\english{Boot time self-test of the call patching code.}
\subsection{Enable seccomp to safely execute untrusted bytecode} \subsection{Enable seccomp to safely execute untrusted bytecode}
CONFIG\_SECCOMP [=n] \textbf{[N]}\\ CONFIG\_SECCOMP [=n] \textbf{[N]}\\
@@ -39,6 +57,12 @@ Lese-/Schreib-Syscalls unterstützen, ist es möglich, diese Anwendungen mit sec
Adressraum zu isolieren. Sobald seccomp über prctl(PR\_SET\_SECCOMP) oder den seccomp()-Syscall 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 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. Syscalls ausführen, die für jeden seccomp-Modus definiert sind. Wenn Sie unsicher sind, sagen Sie Y.
\english{This kernel feature is useful for number crunching applications that may need to handle untrusted bytecode during their execution.
By using pipes or other transports made available to the process as file descriptors supporting the read/write syscalls,
it's possible to isolate those applications in their own address space using seccomp.
Once seccomp is enabled via prctl(PR\_SET\_SECCOMP) or the seccomp() syscall, it cannot be disabled and the task is only allowed to execute
a few safe syscalls defined by each seccomp mode.\\
If unsure, say Y.}
\subsubsection{Show seccomp filter cache status in /proc/pid/seccomp\_cache} \subsubsection{Show seccomp filter cache status in /proc/pid/seccomp\_cache}
CONFIG\_SECCOMP\_CACHE\_DEBUG [=n] \textbf{[N]}\\ CONFIG\_SECCOMP\_CACHE\_DEBUG [=n] \textbf{[N]}\\
@@ -47,6 +71,12 @@ seccomp-Cache-Daten. Das Dateiformat kann sich ändern. Zum Lesen der Datei ist
CAP\_SYS\_ADMIN erforderlich. Diese Option ist nur zur Fehlersuche gedacht. CAP\_SYS\_ADMIN erforderlich. Diese Option ist nur zur Fehlersuche gedacht.
Die Aktivierung birgt das Risiko, dass ein Angreifer die seccomp-Filterlogik ableiten kann.\\ Die Aktivierung birgt das Risiko, dass ein Angreifer die seccomp-Filterlogik ableiten kann.\\
Wenn Sie unsicher sind, sagen Sie N. Wenn Sie unsicher sind, sagen Sie N.
\english{This enables the /proc/pid/seccomp\_cache interface to monitor seccomp cache data.
The file format is subject to change.
Reading the file requires CAP\_SYS\_ADMIN.\\
This option is for debugging only.
Enabling presents the risk that an adversary may be able to infer the seccomp filter logic.\\
If unsure, say N.}
\subsection{Stack Protector buffer overflow detection} \subsection{Stack Protector buffer overflow detection}
CONFIG\_STACKPROTECTOR [=y] \textbf{[Y]}\\ CONFIG\_STACKPROTECTOR [=y] \textbf{[Y]}\\
@@ -59,8 +89,17 @@ Canary-Wert, was erkannt wird und der Angriff wird dann durch eine Kernel-Panik
Bei Funktionen, die ein 8-Byte- oder größeres Zeichenarray auf dem Stack haben, wird die Logik 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, 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}). 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 Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa \qty{3}{\percent}
3\% aller Kernel-Funktionen hinzu, was die Kernel-Codegröße um etwa 0,3\% erhöht. aller Kernel-Funktionen hinzu, was die Kernel-Codegröße um etwa \qty{0,3}{\percent} erhöht.
\english{This option turns on the ``stack-protector'' GCC feature.
This feature puts, at the beginning of functions, a canary value on the stack just before the return address,
and validates the value just before actually returning.
Stack based buffer overflows (that need to overwrite this return address) now also overwrite the canary, which gets detected
and the attack is then neutralized via a kernel panic.\\
Functions will have the stack-protector canary logic added if they have an 8-byte or larger character array on the stack.\\
This feature requires gcc version 4.2 or above, or a distribution gcc with the feature backported (``-fstack-protector'').
On an x86 ``defconfig'' build, this feature adds canary checks to about 3\% of all kernel functions,
which increases kernel code size by about 0.3\%.}
\subsubsection{Strong Stack Protector} \subsubsection{Strong Stack Protector}
CONFIG\_STACKPROTECTOR\_STRONG [=y] \textbf{[Y]}\\ CONFIG\_STACKPROTECTOR\_STRONG [=y] \textbf{[Y]}\\
@@ -73,20 +112,70 @@ Funktionsarguments verwendet
\end{itemize} \end{itemize}
Diese Funktion erfordert gcc Version 4.9 oder höher, oder eine gcc-Distribution, die die Funktion 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}). 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 Auf einem x86-\glqq defconfig\grqq{}-Build fügt diese Funktion Canary-Prüfungen zu etwa \qty{20}{\percent} aller
Kernel-Funktionen hinzu, was die Größe des Kernel-Codes um etwa 2\% erhöht. Kernel-Funktionen hinzu, was die Größe des Kernel-Codes um etwa \qty{2}{\percent} erhöht.
\english{Functions will have the stack-protector canary logic added in any of the following conditions:\\
-- local variable's address used as part of the right hand side of an assignment or function argument\\
-- local variable is an array (or union containing an array), regardless of array type or length\\
-- uses register local variables\\
This feature requires gcc version 4.9 or above, or a distribution gcc with the feature backported (``-fstack-protector-strong'').\\
On an x86 ``defconfig'' build, this feature adds canary checks to about 20\% of all kernel functions,
which increases the kernel code size by about 2\%.}
\subsection{Link Time Optimization (LTO) () \texorpdfstring{$\rightarrow$}{->}} \subsection{Link Time Optimization (LTO) () \texorpdfstring{$\rightarrow$}{->}}
\textit{Optimierung der Verbindungszeit}
Diese Option aktiviert die Verbindungszeitoptimierung (Link Time Optimization, LTO), die es dem Compiler ermöglicht, Binärdateien global zu optimieren.
Wenn Sie sich nicht sicher sind, wählen Sie LTO\_NONE. Beachten Sie, dass LTO sehr ressourcenintensiv ist, daher ist sie standardmäßig deaktiviert.
\english{This option enables Link Time Optimization (LTO), which allows the compiler to optimize binaries globally.\\
If unsure, select LTO\_NONE. Note that LTO is very resource-intensive so it's disabled by default.}
\subsubsection{None} \subsubsection{None}
CONFIG\_LTO\_NONE [=y] \textbf{[Y]}\\ CONFIG\_LTO\_NONE [=y] \textbf{[Y]}\\
Erstellen Sie den Kernel normal, ohne Link Time Optimization (LTO). Erstellen Sie den Kernel normal, ohne Link Time Optimization (LTO).
\english{Build the kernel normally, without Link Time Optimization (LTO).}
\subsection{Number of bits to use for ASLR of mmap base address}
CONFIG\_ARCH\_MMAP\_RND\_BITS [=32] \textbf{[32]}\\*
Dieser Wert kann verwendet werden, um die Anzahl der Bits auszuwählen, die zur Bestimmung des zufälligen Offsets zur Basisadresse
von vma-Regionen verwendet werden, die aus mmap-Zuweisungen resultieren.
Dieser Wert wird durch die von der Architektur unterstützten Mindest- und Höchstwerte begrenzt.
Dieser Wert kann nach dem Booten mit dem Tunable /proc/sys/vm/mmap\_rnd\_bits geändert werden.
\english{This value can be used to select the number of bits to use to determine the random offset
to the base address of vma regions resulting from mmap allocations.
This value will be bounded by the architecture's minimum and maximum supported values.\\
This value can be changed after boot using the /proc/sys/vm/mmap\_rnd\_bits tunable}
\subsection{Number of bits to use for ASLR of mmap base address for compatible applications}
CONFIG\_ARCH\_MMAP\_RND\_CAMPAT\_BITS [=16] \textbf{[16]}\\*
Dieser Wert kann verwendet werden, um die Anzahl der Bits auszuwählen, die zur Bestimmung des zufälligen Offsets zur Basisadresse
von vma-Regionen verwendet werden, die aus mmap-Zuweisungen resultieren.
Dieser Wert wird durch die von der Architektur unterstützten Mindest- und Höchstwerte begrenzt.
Dieser Wert kann nach dem Booten mit dem Tunable /proc/sys/vm/mmap\_rnd\_bits geändert werden.
\english{This value can be used to select the number of bits to use to determine the random offset to the base
address of vma regions resulting from mmap allocations for compatible applications
This value will be bounded by the architecture's minimum and maximum supported values.\\
This value can be changed after boot using the /proc/sys/vm/mmap\_rnd\_compat\_bits tunable}
\subsection{MMU page size () \texorpdfstring{$\rightarrow$}{->}}
Für diese Option ist keine Hilfe verfügbar.
\english{There is no help available for this option.}
\subsubsection{4KiB pages}
CONFIG\_PAGE\_SIZE\_4KB [=y] \textbf{[Y]}\\*
Diese Option wählt die Standard-Linux-Seitengröße von \qty{4}{\kibi\byte} und ist auf vielen Architekturen die einzige verfügbare Option.
Die Verwendung von 4KiB Seitengröße minimiert den Speicherverbrauch und wird daher für Systeme mit wenig Speicher empfohlen.
Einige Software, die für x86-Systeme geschrieben wurde, geht von falschen Annahmen bezüglich der Seitengröße aus und läuft nur auf \qty{4}{\kibi\byte}-Seiten.
\english{This option select the standard 4KiB Linux page size and the only available option on many architectures.
Using 4KiB page size will minimize memory consumption and is therefore recommended for low memory systems.
Some software that is written for x86 systems makes incorrect assumptions about the page size and only runs on 4KiB pages.}
\subsection{Provide system calls for 32-bit time\_t} \subsection{Provide system calls for 32-bit time\_t}
CONFIG\_COMPAT\_32BIT\_TIME [=y] \textbf{[Y]}\\ CONFIG\_COMPAT\_32BIT\_TIME [=y] \textbf{[Y]}\\
Dies ermöglicht die Unterstützung von 32 Bit time\_t zusätzlich zur Unterstützung von 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 64~Bit time\_t. Dies ist auf allen 32-Bit-Architekturen und 64-Bit-Architekturen als Teil
der Kompatibilitäts-Syscall-Behandlung relevant. der Kompatibilitäts-Syscall-Behandlung relevant.
\english{This enables 32 bit time\_t support in addition to 64 bit time\_t support.
This is relevant on all 32-bit architectures, and 64-bit architectures as part of compat syscall handling.}
\subsection{Use a virtually-mapped stack} \subsection{Use a virtually-mapped stack}
CONFIG\_VMAP\_STACK [=y] \textbf{[Y]}\\ CONFIG\_VMAP\_STACK [=y] \textbf{[Y]}\\
@@ -95,6 +184,9 @@ Dies führt dazu, dass Kernel-Stack-Überläufe sofort abgefangen werden und kei
diagnostizierende Korruption verursachen. Um dies mit Software-KASAN-Modi zu verwenden, muss die 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 Architektur die Unterstützung von virtuellen Mappings mit echtem Schattenspeicher unterstützen
und KASAN\_VMALLOC muss aktiviert sein. und KASAN\_VMALLOC muss aktiviert sein.
\english{Enable this if you want the use virtually-mapped kernel stacks with guard pages.
This causes kernel stack overflows to be caught immediately rather than causing difficult-to-diagnose corruption.\\
To use this with software KASAN modes, the architecture must support backing virtual mappings with real shadow memory, and KASAN\_VMALLOC must be enabled.}
\subsection{Support for randomizing kernel stack offset on syscall entry} \subsection{Support for randomizing kernel stack offset on syscall entry}
CONFIG\_RANDOMIZE\_KSTACK\_OFFSET [=y] \textbf{[Y]}\\ CONFIG\_RANDOMIZE\_KSTACK\_OFFSET [=y] \textbf{[Y]}\\
@@ -105,12 +197,19 @@ Die Funktion wird über den Kernel-Boot-Parameter \texttt{randomize\_kstack\_off
und hat, wenn sie ausgeschaltet ist, aufgrund der Verwendung von statischen Verzweigungen und hat, wenn sie ausgeschaltet ist, aufgrund der Verwendung von statischen Verzweigungen
(siehe JUMP\_LABEL) keinen Overhead.\\ (siehe JUMP\_LABEL) keinen Overhead.\\
Wenn Sie unsicher sind, sagen Sie Y. Wenn Sie unsicher sind, sagen Sie Y.
\english{The kernel stack offset can be randomized (after pt\_regs) by roughly 5 bits of entropy,
frustrating memory corruption attacks that depend on stack address determinism or cross-syscall address exposures.\\
The feature is controlled via the ``randomize\_kstack\_offset=on/off'' kernel boot param,
and if turned off has zero overhead due to its use of static branches (see JUMP\_LABEL).\\
If unsure, say Y.}
\subsubsection{Default state of kernel stack offset randomization} \subsubsection{Default state of kernel stack offset randomization}
CONFIG\_RANDOMIZE\_KSTACK\_OFFSET\_DEFAULT [=y] \textbf{[Y]}\\ CONFIG\_RANDOMIZE\_KSTACK\_OFFSET\_DEFAULT [=y] \textbf{[Y]}\\
Die Randomisierung des Kernel-Stack-Offsets wird durch den Kernel-Boot-Parameter\\ 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 \texttt{randomize\_kstack\_offset=on/off} gesteuert, und diese Konfiguration wählt den
Standard-Boot-Status. Standard-Boot-Status.
\english{Kernel stack offset randomization is controlled by kernel boot param ``randomize\_kstack\_offset=on/off'',
and this config chooses the default boot state.}
\subsection{Locking event counts collection} \subsection{Locking event counts collection}
CONFIG\_LOCK\_EVENT\_COUNTS [=y] \textbf{[Y]}\\ CONFIG\_LOCK\_EVENT\_COUNTS [=y] \textbf{[Y]}\\
@@ -118,6 +217,9 @@ Ermöglicht eine leichtgewichtige Zählung verschiedener sperrungsbezogener Erei
mit minimalen Auswirkungen auf die Leistung. Dies verringert die Wahrscheinlichkeit, dass sich mit minimalen Auswirkungen auf die Leistung. Dies verringert die Wahrscheinlichkeit, dass sich
das Anwendungsverhalten aufgrund von Zeitunterschieden ändert. Die Zählungen werden über das Anwendungsverhalten aufgrund von Zeitunterschieden ändert. Die Zählungen werden über
debugfs gemeldet. debugfs gemeldet.
\english{Enable light-weight counting of various locking related events in the system with minimal performance impact.
This reduces the chance of application behavior change because of timing differences.
The counts are reported via debugfs.}
\subsection{GCOV-based kernel profiling \texorpdfstring{$\rightarrow$}{->}} \subsection{GCOV-based kernel profiling \texorpdfstring{$\rightarrow$}{->}}
(GCOV-basierte Kernel-Profilierung) (GCOV-basierte Kernel-Profilierung)
@@ -140,12 +242,25 @@ und:\\
\indent \texttt{GCOV\_PROFILE := n}\\[.5em] \indent \texttt{GCOV\_PROFILE := n}\\[.5em]
Beachten Sie, dass das debugfs-Dateisystem gemountet sein muss, um auf die Profilerstellungsdaten Beachten Sie, dass das debugfs-Dateisystem gemountet sein muss, um auf die Profilerstellungsdaten
zugreifen zu können. zugreifen zu können.
\english{This option enables gcov-based code profiling (e.g. for code coverage measurements).\\
If unsure, say N.\\
Additionally specify CONFIG\_GCOV\_PROFILE\_ALL=y to get profiling data for the entire kernel.
To enable profiling for specific files or directories, add a line similar to the following to the respective Makefile:\\
For a single file (e.g. main.o): GCOV\_PROFILE\_main.o := y\\
For all files in one directory: GCOV\_PROFILE := y\\
To exclude files from being profiled even when CONFIG\_GCOV\_PROFILE\_ALL is specified, use:\\
GCOV\_PROFILE\_main.o := n\\
and: GCOV\_PROFILE := n\\
Note that the debugfs filesystem has to be mounted to access profiling data.}
\subsection{GCC plugins \texorpdfstring{$\rightarrow$}{->}} \subsection{GCC plugins \texorpdfstring{$\rightarrow$}{->}}
CONFIG\_GCC\_PLUGINS [=y] \textbf{[Y]}\\ CONFIG\_GCC\_PLUGINS [=y] \textbf{[Y]}\\
GCC-Plugins sind ladbare Module, die zusätzliche Funktionen für den Compiler bereitstellen. 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.\\ Sie sind nützlich für die Laufzeitinstrumentierung und die statische Analyse.\\
Siehe Documentation/kbuild/gcc-plugins.rst für Details. Siehe Documentation/kbuild/gcc-plugins.rst für Details.
\english{GCC plugins are loadable modules that provide extra features to the compiler.
They are useful for runtime instrumentation and static analysis.\\
See Documentation/kbuild/gcc-plugins.rst for details.}
\subsubsection{Generate some entropy during boot and runtime} \subsubsection{Generate some entropy during boot and runtime}
CONFIG\_GCC\_PLUGIN\_LATENT\_ENTROPY [=n] \textbf{[N]}\\ CONFIG\_GCC\_PLUGIN\_LATENT\_ENTROPY [=n] \textbf{[N]}\\
@@ -161,4 +276,11 @@ Dieses Plugin wurde von grsecurity/PaX portiert. Mehr Informationen unter:
\begin{itemize} \begin{itemize}
\item[] \url{https://grsecurity.net/} \item[] \url{https://grsecurity.net/}
\item[] \url{https://pax.grsecurity.net/} \item[] \url{https://pax.grsecurity.net/}
\end{itemize} \end{itemize}\vspace{-0.5em}\mbox{}\vspace{-1em}
\english{By saying Y here the kernel will instrument some kernel code to extract some entropy from both original and artificially created program state.
This will help especially embedded systems where there is little `natural' source of entropy normally.
The cost is some slowdown of the boot process (about 0.5\%) and fork and irq processing.\\
Note that entropy extracted this way is not cryptographically secure!\\
This plugin was ported from grsecurity/PaX. More information at:\\
* \url{https://grsecurity.net/}\\
* \url{https://pax.grsecurity.net/}}

View File

@@ -1,3 +1,6 @@
% since Linux 6.14
% linux_configuration_10_enable_loadable_module_support.tex
\section{Enable loadable module support \texorpdfstring{$\rightarrow$}{->}} \section{Enable loadable module support \texorpdfstring{$\rightarrow$}{->}}
CONFIG\_MODULES [=y] \textbf{[Y]}\\ CONFIG\_MODULES [=y] \textbf{[Y]}\\
Kernel-Module sind kleine Stücke kompilierten Codes, die in den laufenden Kernel eingefügt werden können, Kernel-Module sind kleine Stücke kompilierten Codes, die in den laufenden Kernel eingefügt werden können,
@@ -12,31 +15,51 @@ Wenn Sie hier Y angeben, müssen Sie \texttt{make modules\_install} ausführen,
/lib/modules/ abzulegen, wo sie von modprobe gefunden werden können (möglicherweise müssen Sie dazu /lib/modules/ abzulegen, wo sie von modprobe gefunden werden können (möglicherweise müssen Sie dazu
root sein). root sein).
Wenn Sie unsicher sind, sagen Sie Y. Wenn Sie unsicher sind, sagen Sie Y.
\english{Kernel modules are small pieces of compiled code which can be inserted in the running kernel, rather than being permanently built into the kernel.
You use the ``modprobe'' tool to add (and sometimes remove) them.
If you say Y here, many parts of the kernel can be built as modules (by answering M instead of Y where indicated):
this is most useful for infrequently used options which are not required for booting.
For more information, see the man pages for modprobe, lsmod, modinfo, insmod and rmmod.\\
If you say Y here, you will need to run ``make modules\_install'' to put the modules under /lib/modules/ where modprobe can find them
(you may need to be root to do this).
If unsure, say Y.}
\subsection{Module debugging} \subsection{Module debugging}
CONFIG\_MODULE\_DEBUG [=n] \textbf{[N]}\\ CONFIG\_MODULE\_DEBUG [=n] \textbf{[N]}\\
Ermöglicht das Aktivieren/Deaktivieren von Funktionen, die Ihnen beim Debuggen von Modulen helfen können. Ermöglicht das Aktivieren/Deaktivieren von Funktionen, die Ihnen beim Debuggen von Modulen helfen können.
Auf Produktionssystemen benötigen Sie diese Optionen nicht. Auf Produktionssystemen benötigen Sie diese Optionen nicht.
\english{Allows you to enable / disable features which can help you debug modules.
You don't need these options on production systems.}
\subsection{Forced module loading} \subsection{Forced module loading}
CONFIG\_MODULE\_FORCE\_LOAD [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_FORCE\_LOAD [=y] \textbf{[Y]}\\
Erlaubt das Laden von Modulen ohne Versionsinformationen (z.\,B. \texttt{modprobe --force}). 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 Erzwungenes Laden von Modulen setzt das \glq F\grq{} (forced) taint Flag und ist normalerweise eine wirklich
schlechte Idee. schlechte Idee.
\english{Allow loading of modules without version information (ie. \texttt{modprobe --force}.
Forced module loading sets the `F' (forced) taint flag and is usually a really bad idea.}
\subsection{Module unloading} \subsection{Module unloading}
CONFIG\_MODULE\_UNLOAD [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_UNLOAD [=y] \textbf{[Y]}\\
Ohne diese Option können Sie keine Module entladen (beachten Sie, dass einige Module möglicherweise 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. ohnehin nicht entladbar sind), was Ihren Kernel kleiner, schneller und einfacher macht.
Wenn Sie unsicher sind, sagen Sie Y. Wenn Sie unsicher sind, sagen Sie Y.
\english{Without this option you will not be able to unload any modules (note that some modules may not be unloadable anyway),
which makes your kernel smaller, faster and simpler.
If unsure, say Y.}
\subsubsection{Forced module unloading} \subsubsection{Forced module unloading}
CONFIG\_MODULE\_FORCE\_UNLOAD [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_FORCE\_UNLOAD \colorbox{yellow!80}{[=y] \textbf{[N]}}\\
Mit dieser Option können Sie das Entladen eines Moduls erzwingen, auch wenn der Kernel es für unsicher 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 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}). 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, Dies ist hauptsächlich für Kernel-Entwickler und verzweifelte Benutzer gedacht. Wenn Sie unsicher sind,
sagen Sie N. sagen Sie N.
\english{This option allows you to force a module to unload, even if the kernel believes it is unsafe:
the kernel will remove the module without waiting for anyone to stop using it (using the -f option to rmmod).
This is mainly for kernel developers and desperate users. If unsure, say N.}
\note{Wir haben nicht vor, an Modulen zu entwickeln, deshalb N.}
\subsubsection{Tainted module unload tracking} \subsubsection{Tainted module unload tracking}
CONFIG\_MODULE\_UNLOAD\_TAINT\_TRACKING [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_UNLOAD\_TAINT\_TRACKING [=y] \textbf{[Y]}\\
@@ -44,6 +67,9 @@ Mit dieser Option können Sie eine Aufzeichnung über jedes entladene Modul füh
beschädigt hat. Zusätzlich zur Anzeige einer Liste der verknüpften (oder geladenen) Module, z.\,B. 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 bei der Erkennung einer schlechten Seite (siehe bad\_page()), werden auch die oben genannten
Details angezeigt. Wenn Sie unsicher sind, sagen Sie N. Details angezeigt. Wenn Sie unsicher sind, sagen Sie N.
\english{This option allows you to maintain a record of each unloaded module that tainted the kernel.
In addition to displaying a list of linked (or loaded) modules e.g. on detection of a bad page (see bad\_page()),
the aforementioned details are also shown. If unsure, say N.}
\subsection{Module versioning support} \subsection{Module versioning support}
CONFIG\_MODVERSIONS [=n] \textbf{[N]}\\ CONFIG\_MODVERSIONS [=n] \textbf{[N]}\\
@@ -52,6 +78,10 @@ hier Y angeben, ist es manchmal möglich, Module zu verwenden, die für andere K
indem Sie genügend Informationen zu den Modulen hinzufügen, um (hoffentlich) alle Änderungen zu erkennen, 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.\\ die sie mit dem von Ihnen verwendeten Kernel inkompatibel machen würden.\\
Wenn Sie unsicher sind, sagen Sie N. Wenn Sie unsicher sind, sagen Sie N.
\english{Usually, you have to use modules compiled with your kernel.
Saying Y here makes it sometimes possible to use modules compiled for different kernels, by adding enough information
to the modules to (hopefully) spot any changes which would make them incompatible with the kernel you are running.
If unsure, say N.}
\subsection{Source checksum for all modules} \subsection{Source checksum for all modules}
CONFIG\_MODULE\_SRCVERSION\_ALL [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_SRCVERSION\_ALL [=y] \textbf{[Y]}\\
@@ -60,6 +90,10 @@ ihre modinfo-Sektion eingefügt, das eine Summe der Quelldateien enthält, aus d
Dies hilft den Betreuern, genau zu sehen, welche Quelle verwendet wurde, um ein Modul zu bauen 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 (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. ein solches \glqq srcversion\grqq{}-Feld für alle Module erstellt. Wenn Sie unsicher sind, sagen Sie N.
\english{Modules which contain a MODULE\_VERSION get an extra ``srcversion'' field inserted into their modinfo section,
which contains a sum of the source files which made it.
This helps maintainers see exactly which source was used to build a module (since others sometimes change the module source without updating the version).
With this option, such a ``srcversion'' field will be created for all modules. If unsure, say N.}
\subsection{Module signature verification} \subsection{Module signature verification}
CONFIG\_MODULE\_SIG [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_SIG [=y] \textbf{[Y]}\\
@@ -74,79 +108,140 @@ Lockdown-Policy ladbar sein.
Signieren NICHT gestrippt wird. Dies schließt den Debuginfo-Strip ein, der von einigen Paketierern 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 (wie z.\,B. rpmbuild) durchgeführt wird, sowie die Einbindung in ein initramfs, das die Modulgröße
reduzieren möchte. reduzieren möchte.
\english{Check modules for valid signatures upon load: the signature is simply appended to the module.
For more information see $<$file:Documentation/admin-guide/module-signing.rst$>$.\\
Note that this option adds the OpenSSL development packages as a kernel build dependency so that the signing tool can use its crypto library.\\
You should enable this option if you wish to use either CONFIG\_SECURITY\_LOCKDOWN\_LSM or lockdown functionality imposed via another LSM --
otherwise unsigned modules will be loadable regardless of the lockdown policy.\\
!!!WARNING!!! If you enable this option, you MUST make sure that the module DOES NOT get stripped after being signed.
This includes the debuginfo strip done by some packagers (such as rpmbuild) and inclusion into an initramfs that wants the module size reduced.}
\subsubsection{Require modules to be validly signed} \subsubsection{Require modules to be validly signed}
CONFIG\_MODULE\_SIG\_FORCE [=n] \textbf{[N]}\\ CONFIG\_MODULE\_SIG\_FORCE [=n] \textbf{[N]}\\
Ablehnung von unsignierten Modulen oder signierten Modulen, für die wir keinen Schlüssel haben. 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. Ohne diesen Schlüssel werden solche Module den Kernel einfach verunreinigen.
\english{Reject unsigned modules or signed modules for which we don't have a key.
Without this, such modules will simply taint the kernel.}
\subsubsection{Automatically sign all modules} \subsubsection{Automatically sign all modules}
CONFIG\_MODULE\_SIG\_ALL [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_SIG\_ALL [=y] \textbf{[Y]}\\
Signiere alle Module während make modules\_install. Ohne diese Option müssen die Module manuell 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. signiert werden, und zwar mit dem Werkzeug scripts/sign-file.
\english{Sign all modules during make modules\_install. Without this option, modules must be signed manually, using the scripts/sign-file tool.}
\subsection{Which hash algorithm should modules be signed with? () \texorpdfstring{$\rightarrow$}{->}} %\subsection{Which hash algorithm should modules be signed with? () \texorpdfstring{$\rightarrow$}{->}}
\subsection{Hash algorithm to sign modules \texorpdfstring{$\rightarrow$}{->}}
Damit wird festgelegt, welche Art von Hashing-Algorithmus bei der Signaturerstellung verwendet wird. 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 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, 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. um die Signatur dieses Moduls zu überprüfen.
\english{This determines which sort of hashing algorithm will be used during signature generation.
This algorithm \_must\_ be built into the kernel directly so that signature verification can take place.
It is not possible to load a signed module containing the algorithm to check the signature on that module.}
\subsubsection{Sign modules with SHA-1} \subsubsection{Sign modules with SHA-1}
CONFIG\_MODULE\_SIG\_SHA1 [=n] \textbf{[N]}\\ CONFIG\_MODULE\_SIG\_SHA1 [=n] \textbf{[N]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsubsection{Sign modules with SHA-224} \subsubsection{Sign modules with SHA-224}
CONFIG\_MODULE\_SIG\_SHA224 [=n] \textbf{[N]}\\ CONFIG\_MODULE\_SIG\_SHA224 [=n] \textbf{[N]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsubsection{Sign modules with SHA-256} \subsubsection{Sign modules with SHA-256}
CONFIG\_MODULE\_SIG\_SHA256 [=n] \textbf{[N]}\\ CONFIG\_MODULE\_SIG\_SHA256 [=n] \textbf{[N]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsubsection{Sign modules with SHA-384} \subsubsection{Sign modules with SHA-384}
CONFIG\_MODULE\_SIG\_SHA384 [=n] \textbf{[N]}\\ CONFIG\_MODULE\_SIG\_SHA384 [=n] \textbf{[N]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsubsection{Sign modules with SHA-512} \subsubsection{Sign modules with SHA-512}
CONFIG\_MODULE\_SIG\_SHA512 [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_SIG\_SHA512 [=y] \textbf{[Y]}\\
\textit{Für diese Option gibt es keine Hilfe.} \textit{Für diese Option gibt es keine Hilfe.}
\english{There is no help available for this option.}
\subsection{Module compression}
Modulkomprimierung aktivieren, um die Größe der Modul-Binärdateien auf der Festplatte zu reduzieren.
Dies ist vollständig kompatibel mit signierten Modulen.
Das Werkzeug, das für die Arbeit mit Modulen verwendet wird, muss den ausgewählten Kompressionstyp unterstützen.
\texttt{kmod} KANN gzip, xz und zstd unterstützen.
Andere Werkzeuge haben möglicherweise eine eingeschränkte Auswahl der unterstützten Typen. \\
Beachten Sie, dass es für Module innerhalb einer initrd oder initramfs effizienter ist, stattdessen die gesamte ramdisk zu komprimieren. \\
Wenn Sie unsicher sind, wählen Sie N.
%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'.
\english{Enable module compression to reduce on-disk size of module binaries.
This is fully compatible with signed modules.\\
The tool used to work with modules needs to support the selected compression type.
kmod MAY support gzip, xz and zstd.
Other tools might have a limited selection of the supported types.\\
Note that for modules inside an initrd or initramfs, it's more efficient to compress the whole ramdisk instead.\\
If unsure, say N.}
\subsection{Module compression mode} \subsubsection{Module compression type () \texorpdfstring{$\rightarrow$}{->}}
Mit dieser Option können Sie den Algorithmus auswählen, der zur Komprimierung von Modulen verwendet Auswahl des unterstützten Algorithmus für die Modulkomprimierung.
wird, wenn \texttt{make modules\_install} ausgeführt wird. (oder Sie können wählen, dass Module \english{Choose the supported algorithm for module compression.}
ü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} %\subsubsection{None}
CONFIG\_MODULE\_COMPRESSION\_NONE [=n] \textbf{[N]}\\ %CONFIG\_MODULE\_COMPRESSION\_NONE [=n] \textbf{[N]}\\
Komprimieren Sie die Module nicht. Die installierten Module sind mit der Endung .ko versehen. %Komprimieren Sie die Module nicht. Die installierten Module sind mit der Endung .ko versehen.
\subsubsection{GZIP} \paragraph{GZIP}\mbox{}\\
CONFIG\_MODULE\_COMPRESSION\_GZIP [=n] \textbf{[N]}\\ CONFIG\_MODULE\_COMPRESSION\_GZIP [=n] \textbf{[N]}\\*
Komprimieren Sie Module mit GZIP. Die installierten Module sind mit der Endung .ko.gz versehen. Komprimieren Sie Module mit GZIP. Die installierten Module sind mit der Endung \texttt{.ko.gz} versehen.
\subsubsection{XZ} \english{Support modules compressed with GZIP. The installed modules are suffixed with .ko.gz.}
CONFIG\_MODULE\_COMPRESSION\_XZ [=n] \textbf{[N]}\\ \paragraph{XZ}\mbox{}\\
Komprimieren Sie Module mit XZ. Die installierten Module sind mit der Endung .ko.xz versehen. CONFIG\_MODULE\_COMPRESSION\_XZ [=n] \textbf{[N]}\\*
\subsubsection{ZSTD} Komprimieren Sie Module mit XZ. Die installierten Module sind mit der Endung \texttt{.ko.xz} versehen.
CONFIG\_MODULE\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\ \english{Support modules compressed with XZ. The installed modules are suffixed with .ko.xz.}
Komprimieren Sie Module mit ZSTD. Die installierten Module sind mit der Endung .ko.zst versehen. \paragraph{ZSTD}\mbox{}\\
CONFIG\_MODULE\_COMPRESS\_ZSTD [=y] \textbf{[Y]}\\*
Komprimieren Sie Module mit ZSTD. Die installierten Module sind mit der Endung \texttt{.ko.zst} versehen.
\english{Support modules compressed with ZSTD. The installed modules are suffixed with .ko.zst.}
\subsection{Support in-kernel module decompression} \subsubsection{Automatically compress all modules}
CONFIG\_MODULE\_DECOMPRESS [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_COMPRESS\_ALL [=y] \textbf{[Y]}\\*
Alle Module während \texttt{make modules\_install} komprimieren.\\
Ihr Build-System muss das entsprechende Komprimierungswerkzeug für den gewählten Komprimierungstyp bereitstellen.
Externe Module werden während der Installation ebenfalls auf die gleiche Weise komprimiert.
\english{Compress all modules during `make modules\_install'.\\
Your build system needs to provide the appropriate compression tool for the selected compression type.
External modules will also be compressed in the same way during the installation.}
\subsubsection{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 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 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. für das Load Pinning aktiviert ist. Wenn Sie unsicher sind, sagen Sie N.
\english{Support for decompressing kernel modules by the kernel itself instead of relying on userspace to perform this task.
Useful when load pinning security policy is enabled.\\
If unsure, say N.}
\subsection{Allow loading of modules with missing namespace imports} \subsection{Allow loading of modules with missing namespace imports}
CONFIG\_MODULE\_ALLOW\_MISSING\_NAMESPACE\_IMPORTS [=y] \textbf{[Y]}\\ CONFIG\_MODULE\_ALLOW\_MISSING\_NAMESPACE\_IMPORTS [=y] \textbf{[Y]}\\*
Symbole, die mit EXPORT\_SYMBOL\_NS*() exportiert werden, gelten als in einem Namespace exportiert. 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 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 über MODULE\_IMPORT\_NS() importieren. Es gibt keinen technischen Grund, korrekte
Namespace-Importe zu erzwingen, aber es schafft Konsistenz zwischen Symbolen, die Namespaces 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 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. Anforderung und hebt die Durchsetzung beim Laden eines Moduls auf. Wenn Sie unsicher sind, sagen Sie N.
\english{Symbols exported with EXPORT\_SYMBOL\_NS*() are considered exported in a namespace.
A module that makes use of a symbol exported with such a namespace is required to import the namespace via MODULE\_IMPORT\_NS("").\\
There is no technical reason to enforce correct namespace imports, but it creates consistency between
symbols defining namespaces and users importing namespaces they make use of.
This option relaxes this requirement and lifts the enforcement when loading a module.\\
If unsure, say N.}
\subsection{Path to modprobe binary} \subsection{Path to modprobe binary}
CONFIG\_MODPROBE\_PATH [=/sbin/modprobe] \textbf{[/sbin/modprobe]}\\ CONFIG\_MODPROBE\_PATH [=/sbin/modprobe] \textbf{[/sbin/modprobe]}\\
@@ -156,3 +251,19 @@ User\-space-Dienst\-pro\-gramms
zu finden ist. Dies kann zur Laufzeit über die sysctl-Datei /proc/sys/kernel/modprobe geändert werden. 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, 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). Module anzufordern, ausgeschaltet (der Userspace kann jedoch weiterhin explizit Module laden).
\english{When kernel code requests a module, it does so by calling the ``modprobe'' userspace utility.
This option allows you to set the path where that binary is found.
This can be changed at runtime via the sysctl file /proc/sys/kernel/modprobe.
Setting this to the empty string removes the kernel's ability to request modules (but userspace can still load modules explicitly).}
\subsection{Trim unused exported kernel symbols}
CONFIG\_TRIM\_UNUSED\_KSYMS [=n] \textbf{[N]}\\*
Der Kernel und einige Module stellen viele Symbole für andere Module über EXPORT\_SYMBOL() und Varianten zur Verfügung.
Je nach den in Ihrer Kernelkonfiguration ausgewählten Modulen werden viele dieser exportierten Symbole möglicherweise nie verwendet. Mit dieser Option können unbenutzte exportierte Symbole aus dem Build entfernt werden. Im Gegenzug bietet dies dem Compiler mehr Möglichkeiten (insbesondere bei der Verwendung von LTO), den Code zu optimieren und die Binärgröße zu reduzieren.
Dies könnte auch einige Sicherheitsvorteile mit sich bringen. Wenn Sie unsicher sind oder wenn Sie Out-of-Tree-Module bauen müssen, sagen Sie N.
\english{The kernel and some modules make many symbols available for other modules to use via EXPORT\_SYMBOL() and variants.
Depending on the set of modules being selected in your kernel configuration, many of those exported symbols might never be used.\\
This option allows for unused exported symbols to be dropped from the build.
In turn, this provides the compiler more opportunities (especially when using LTO) for optimizing the code and reducing binary size.
This might have some security advantages as well.\\
If unsure, or if you need to build out-of-tree modules, say N.}