%
% Thomas Kuschel 2023-2025
\newcommand{\version}{V6.16}
% preconditions:
% install on ARCH linux:
%  pacman -S texlive-plaingeneric
%  pacman -S texlive-binextra
%  pacman -S texlive-langgerman
%  pacman -S hyphen hyphen-de
%  pacman -S texlive-mathscience

\includeonly{
	%linux_configuration_01_general_setup,
	%linux_configuration_02_64-bit_kernel,
	%linux_configuration_03_processor_type_and_features,
	%linux_configuration_04_mitigations_for_cpu_vulnerabilities,
	%linux_configuration_05_power_management_and_acpi_options,
	%linux_configuration_06_bus_options,
	%linux_configuration_07_binary_emulations,
	%linux_configuration_08_virtualization,
	%linux_configuration_09_general_architecture-dependent_options,
	%linux_configuration_10_enable_loadable_module_support,
	linux_configuration_11_enable_the_block_layer,
	%linux_configuration_12_executable_file_formats,
	%linux_configuration_13_memory_management_options,
	%linux_configuration_14_networking_support,
	%linux_configuration_15_device_drivers,
	%linux_configuration_16_file_systems,
	%linux_configuration_17_security_options,
	%linux_configuration_18_cryptographic_API
}%

\documentclass[10pt,a4paper]{article}
%\documentclass[12pt,a4paper]{report}
\usepackage[a4paper,margin=25mm]{geometry}
\usepackage[english, ngerman]{babel} %Verwendung von \glqq \qrgg{}; ngerman als default (zuerst)
\usepackage{hyperref}
\usepackage{.linux_configuration_hyphenation} %Datei mit Vorschlägen zur Silbentrennung einbetten
%% \usepackage{ulem} %strike through with /sout{}
\usepackage{ulem}
% to get rid off the warning with \texttt{ \{ \} }
%\usepackage{lmodern}
%\usepackage{textcomp}
% using \colorbox with !%%
\usepackage{framed, xcolor}
% Hurenkinder und Schusterjungen verhindern
%\clubpenalty10000
%\widowpenalty10000
%\displaywidowpenalty=10000

% microtype
\usepackage[tracking=smallcaps,letterspace=50]{microtype}

% Math mode with value and units framework, e.g. for 15.11.18.1
\usepackage{siunitx}
%\sisetup{
%	locale=DE,
%	exponent-to-prefix=true,
%	range-independent-prefix=true,
%	per-mode=symbol
%}
\sisetup{%
	locale = DE,
	detect-all,
	detect-weight = true,
	output-complex-root = \mathrm{j},%output j instead of i
	complex-phase-command = \phase,% using Steinmetz
	complex-root-position = before-number,% using j234 instead of 234j
	mode = math,
	per-mode = symbol
}
% Ein Font, der auch $\varDelta$ usw. unterstützt:
%\usepackage{kpfonts}

%\usepackage{mathptmx}
%Palatino: The mathpazo package provides Palatino with small caps.
%\usepackage{mathpazo}
%Charter: You can use the charter package for the Charter font, which also includes small caps.
%\usepackage{charter}
%Libertine: The libertine package provides the Libertine font with small caps.
%\usepackage{libertine}
%Baskerville: The baskerville package allows you to use the Baskerville font with small caps.
%\usepackage{baskervillef}
%Garamond: The garamond package provides the Garamond font with small caps.
%\usepackage{CormorantGaramond}

%\renewcommand{\texttt}[1]{%
%  \begingroup
%  \ttfamily
%  \begingroup\lccode`~=`/\lowercase{\endgroup\def~}{/\discretionary{}{}{}}%
%  \begingroup\lccode`~=`[\lowercase{\endgroup\def~}{[\discretionary{}{}{}}%
%  \begingroup\lccode`~=`.\lowercase{\endgroup\def~}{.\discretionary{}{}{}}%
%  \catcode`/=\active\catcode`[=\active\catcode`.=\active
%  \scantokens{#1\noexpand}%
%  \endgroup
%}
%\DeclareFontFamily{\encodingdefault}{\ttdefault}{\hyphenchar\font=`\-}
%\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}

\newcommand{\english}[1]{\\[0.3em]\begin{small}\textit{\selectlanguage{english}#1}\end{small}}
\newcommand{\note}[1]{\\[0.3em]\begin{scriptsize}#1\end{scriptsize}}

\hypersetup{
	pdftitle={Linux Konfiguration in deutscher Sprache},
	pdfsubject={(c) KW4NZ, Tom},
	pdfauthor={Thomas Kuschel},
	pdfkeywords={Linux Kernel, make, menuconfig, menucfg, makepkg, Arch, Dell, configuration}
}
% The following is to use subparagraph without intending:
\makeatletter
\renewcommand\subparagraph{%
 \@startsection {subparagraph}{5}{\z@ }{3.25ex \@plus 1ex
 \@minus .2ex}{-1em}{\normalfont \normalsize \bfseries }}%
\newcounter{subsubparagraph}[subparagraph]
\renewcommand\thesubsubparagraph{%
 \thesubparagraph.\@arabic\c@subsubparagraph}
\newcommand\subsubparagraph{%
 \@startsection {subsubparagraph}	% counter
							  {6}	% level
			  {\z@ }%{\parindent}	% no indent%indent
 {3.25ex \@plus 1ex \@minus .2ex}	% beforeskip
						   {-1em}	% afterskip
	{\normalfont\normalsize\bfseries}}
\newcommand\l@subsubparagraph{\@dottedtocline{6}{10em}{5em}}
\newcommand{\subsubparagraphmark}[1]{}
\def\toclevel@subsubparagraph{6}

\newcounter{subsubsubparagraph}[subsubparagraph]
\renewcommand\thesubsubsubparagraph{%
 \thesubsubparagraph.\@arabic\c@subsubsubparagraph}
\newcommand\subsubsubparagraph{%
 \@startsection {subsubsubparagraph} % counter
								 {7} % level
							  {\z@ } % no indent
	{3.25ex \@plus 1ex \@minus .2ex} % beforeskip
							  {-1em} % afterskip
	{\normalfont\normalsize\bfseries}}
\newcommand\l@subsubsubparagraph{\@dottedtocline{7}{10em}{5em}}
\newcommand{\subsubsubparagraphmark}[1]{}
\def\toclevel@subsubsubparagraph{7}

\newcounter{subsubsubsubparagraph}[subsubsubparagraph]
\renewcommand\thesubsubsubsubparagraph{%
 \thesubsubsubparagraph.\@arabic\c@subsubsubsubparagraph}
\newcommand\subsubsubsubparagraph{%
 \@startsection {subsubsubsubparagraph} % counter
								 {8} % level
							  {\z@ } % no indent
	{3.25ex \@plus 1ex \@minus .2ex} % beforeskip
							  {-1em} % afterskip
	{\normalfont\normalsize\bfseries}}
\newcommand\l@subsubsubsubparagraph{\@dottedtocline{8}{10em}{5em}}
\newcommand{\subsubsubsubparagraphmark}[1]{}
\def\toclevel@subsubsubsubparagraph{8}

\newcounter{subfiveparagraph}[subsubsubsubparagraph]
\renewcommand\thesubfiveparagraph{%
\thesubsubsubsubparagraph.\@arabic\c@subfiveparagraph}
\newcommand\subfiveparagraph{%
 \@startsection {subfiveparagraph} % counter
								 {9} % level
							  {\z@ } % no indent
	{3.25ex \@plus 1ex \@minus .2ex} % beforeskip
							  {-1em} % afterskip
	{\normalfont\normalsize\bfseries}}
\newcommand\l@subfiveparagraph{\@dottedtocline{8}{10em}{5em}}
\newcommand{\subfiveparagraphmark}[1]{}
\def\toclevel@subfiveparagraph{9}
\makeatother
\setcounter{secnumdepth}{9}% numbering down to paragraphs, subparagraphs
%% use one, two ore more columns 
\usepackage{multicol}
%% Line numbers may be useful during collaboration and review, using \linenumbers
\usepackage[left]{lineno}

\begin{document}
%0.x
\linenumbers
\section*{Linux Configuration \version}
\subsection{Einführung}
Dieses Dokument dient zur Beschreibung von diversen Einstellungen
bei der Konfiguration zum Beispiel mittels \texttt{make nconfig} oder \texttt{make menuconfig} unter Linux.\\
Es wird nicht näher darauf eingegangen, wie der Kernel kompiliert wird
oder welche Voreinstellungen, Programme usw. zum Kompilieren benötigt werden.
Abweichungen zur bestehenden Arch-Linux-Konfiguration werden immer \colorbox{yellow!80}{gelb}
markiert.\\
Original Texte, sofern geliefert (englischer Sprache) werden \textit{kursiv} und
etwas kleiner geschrieben. 
Zu Beginn der jeweiligen Konfigurationszeile wird der Standardwert
(Default) angezeigt. Mein Vorschlag folgt danach.\\
Zum Beispiel bei CONFIG\_WERROR~\colorbox{yellow!80}{[=n]~\textbf{[Y]}}\\
Hier ist der Standardwert ein Nein [n], meine persönliche Einstellung ein Ja [Y].

\subsection{Konfiguration für ein verteiltes Kompilieren auf mehreren Rechnern}
Sie sollten schon einiges an Erfahrung mit dem Kompilieren unter Linux mitbringen.
Wenn Sie mit Linux Arch arbeiten, muss auf jedem Rechner das Programm \texttt{distcc} installiert sein.
Man unterscheidet nun den \textbf{Client} auf dem üblicherweise das Kompilat erstellt wird und
die weiteren beteiligten Rechner als \textbf{Volunteers}.\\
Nähere Informationen siehe \url{https://wiki.archlinux.org/title/Distcc}.
\\[2em]
\textit{\copyright KW4NZ, Thomas Kuschel\\Wenn Sie Korrekturen wünschen,
dann schicken Sie dies mit Erläuterungen und dem Hinweis auf die obenstehende
Version \version ~an:
\href{mailto:oe1tkt@gmail.com}{oe1tkt@gmail.com}\\
\pdftexbanner
}

%1 %\section{General setup \( \rightarrow \) }
\include{linux_configuration_01_general_setup}
%2
\include{linux_configuration_02_64-bit_kernel}
%3
\include{linux_configuration_03_processor_type_and_features}
%4
\include{linux_configuration_04_mitigations_for_cpu_vulnerabilities}
%5
\include{linux_configuration_05_power_management_and_acpi_options}
%6
\include{linux_configuration_06_bus_options}
%7
\include{linux_configuration_07_binary_emulations}
%8
\include{linux_configuration_08_virtualization}
%9
\include{linux_configuration_09_general_architecture-dependent_options}
%10
\include{linux_configuration_10_enable_loadable_module_support}
%11
\include{linux_configuration_11_enable_the_block_layer}
%12
\include{linux_configuration_12_executable_file_formats}
%13
\include{linux_configuration_13_memory_management_options}
%14
\include{linux_configuration_14_networking_support}
%15
\include{linux_configuration_15_device_drivers}
%16
\include{linux_configuration_16_file_systems}
%17
\include{linux_configuration_17_security_options}
%18
\include{linux_configuration_18_cryptographic_API}
%19
\include{linux_configuration_19_library_routines}
%20
\include{linux_configuration_20_kernel_hacking}
\end{document}
